diff --git a/longhorn-system/longhorn-default-settings.yaml b/longhorn-system/longhorn-default-settings.yaml
index 55a3477..01ff51a 100644
--- a/longhorn-system/longhorn-default-settings.yaml
+++ b/longhorn-system/longhorn-default-settings.yaml
@@ -1,3 +1,24 @@
+# Source: longhorn/templates/default-setting.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: longhorn-default-setting
+  namespace: longhorn-system
+  labels:
+    app.kubernetes.io/name: longhorn
+    helm.sh/chart: longhorn-1.8.0
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/instance: longhorn
+    app.kubernetes.io/version: v1.8.0
+data:
+  default-setting.yaml: |-
+    default-data-path: /var/lib/longhorn/
+    storage-minimal-available-percentage: 10
+    storage-reserved-percentage-for-default-disk: 10
+    default-replica-count: 2
+    default-data-locality: best-effort
+    priority-class: longhorn-critical
+    disable-revision-counter: true
 ---
 # Source: longhorn/templates/default-setting.yaml
 apiVersion: v1
@@ -16,7 +37,24 @@ data:
     default-data-path: /var/lib/longhorn/
     storage-minimal-available-percentage: 10
     storage-reserved-percentage-for-default-disk: 10
-    default-replica-count: 1
+    default-replica-count: 2
     default-data-locality: best-effort
     priority-class: longhorn-critical
     disable-revision-counter: true
+---
+# Source: longhorn/templates/default-resource.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: longhorn-default-resource
+  namespace: longhorn-system
+  labels:
+    app.kubernetes.io/name: longhorn
+    helm.sh/chart: longhorn-1.8.0
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/instance: longhorn
+    app.kubernetes.io/version: v1.8.0
+data:
+  default-resource.yaml: |-
+    backup-target: s3://cloud-cluster-longhorn-backup@us-east-1/
+    backup-target-credential-secret: oracle-cloud-secret
diff --git a/longhorn-system/longhorn.yaml b/longhorn-system/longhorn.yaml
index 6ea349c..df91327 100644
--- a/longhorn-system/longhorn.yaml
+++ b/longhorn-system/longhorn.yaml
@@ -1,3 +1,7 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+  name: longhorn-system
 ---
 # Source: longhorn/templates/priorityclass.yaml
 apiVersion: scheduling.k8s.io/v1
@@ -54,45 +58,6 @@ metadata:
     app.kubernetes.io/instance: longhorn
     app.kubernetes.io/version: v1.8.0
 ---
-# Source: longhorn/templates/default-resource.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: longhorn-default-resource
-  namespace: longhorn-system
-  labels:
-    app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.8.0
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.8.0
-data:
-  default-resource.yaml: |-
-    backup-target: s3://backupbucket@us-east-1/
-    backup-target-credential-secret: minio-secret
----
-# Source: longhorn/templates/default-setting.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: longhorn-default-setting
-  namespace: longhorn-system
-  labels:
-    app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.8.0
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.8.0
-data:
-  default-setting.yaml: |-
-    default-data-path: /var/lib/longhorn/
-    storage-minimal-available-percentage: 10
-    storage-reserved-percentage-for-default-disk: 10
-    default-replica-count: 1
-    default-data-locality: best-effort
-    priority-class: longhorn-critical
-    disable-revision-counter: true
----
 # Source: longhorn/templates/storageclass.yaml
 apiVersion: v1
 kind: ConfigMap
@@ -148,176 +113,182 @@ spec:
     listKind: BackingImageDataSourceList
     plural: backingimagedatasources
     shortNames:
-    - lhbids
+      - lhbids
     singular: backingimagedatasource
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: The current state of the pod used to provision the backing image
-        file from source
-      jsonPath: .status.currentState
-      name: State
-      type: string
-    - description: The data source type
-      jsonPath: .spec.sourceType
-      name: SourceType
-      type: string
-    - description: The node the backing image file will be prepared on
-      jsonPath: .spec.nodeID
-      name: Node
-      type: string
-    - description: The disk the backing image file will be prepared on
-      jsonPath: .spec.diskUUID
-      name: DiskUUID
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta1
-    schema:
-      openAPIV3Schema:
-        description: BackingImageDataSource is where Longhorn stores backing image
-          data source object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            x-kubernetes-preserve-unknown-fields: true
-          status:
-            x-kubernetes-preserve-unknown-fields: true
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
-  - additionalPrinterColumns:
-    - description: The system generated UUID of the provisioned backing image file
-      jsonPath: .spec.uuid
-      name: UUID
-      type: string
-    - description: The current state of the pod used to provision the backing image
-        file from source
-      jsonPath: .status.currentState
-      name: State
-      type: string
-    - description: The data source type
-      jsonPath: .spec.sourceType
-      name: SourceType
-      type: string
-    - description: The backing image file size
-      jsonPath: .status.size
-      name: Size
-      type: string
-    - description: The node the backing image file will be prepared on
-      jsonPath: .spec.nodeID
-      name: Node
-      type: string
-    - description: The disk the backing image file will be prepared on
-      jsonPath: .spec.diskUUID
-      name: DiskUUID
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: BackingImageDataSource is where Longhorn stores backing image
-          data source object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: BackingImageDataSourceSpec defines the desired state of the
-              Longhorn backing image data source
-            properties:
-              checksum:
-                type: string
-              diskPath:
-                type: string
-              diskUUID:
-                type: string
-              fileTransferred:
-                type: boolean
-              nodeID:
-                type: string
-              parameters:
-                additionalProperties:
+    - additionalPrinterColumns:
+        - description:
+            The current state of the pod used to provision the backing image
+            file from source
+          jsonPath: .status.currentState
+          name: State
+          type: string
+        - description: The data source type
+          jsonPath: .spec.sourceType
+          name: SourceType
+          type: string
+        - description: The node the backing image file will be prepared on
+          jsonPath: .spec.nodeID
+          name: Node
+          type: string
+        - description: The disk the backing image file will be prepared on
+          jsonPath: .spec.diskUUID
+          name: DiskUUID
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta1
+      schema:
+        openAPIV3Schema:
+          description:
+            BackingImageDataSource is where Longhorn stores backing image
+            data source object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              x-kubernetes-preserve-unknown-fields: true
+            status:
+              x-kubernetes-preserve-unknown-fields: true
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
+    - additionalPrinterColumns:
+        - description: The system generated UUID of the provisioned backing image file
+          jsonPath: .spec.uuid
+          name: UUID
+          type: string
+        - description:
+            The current state of the pod used to provision the backing image
+            file from source
+          jsonPath: .status.currentState
+          name: State
+          type: string
+        - description: The data source type
+          jsonPath: .spec.sourceType
+          name: SourceType
+          type: string
+        - description: The backing image file size
+          jsonPath: .status.size
+          name: Size
+          type: string
+        - description: The node the backing image file will be prepared on
+          jsonPath: .spec.nodeID
+          name: Node
+          type: string
+        - description: The disk the backing image file will be prepared on
+          jsonPath: .spec.diskUUID
+          name: DiskUUID
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description:
+            BackingImageDataSource is where Longhorn stores backing image
+            data source object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description:
+                BackingImageDataSourceSpec defines the desired state of the
+                Longhorn backing image data source
+              properties:
+                checksum:
                   type: string
-                type: object
-              sourceType:
-                enum:
-                - download
-                - upload
-                - export-from-volume
-                - restore
-                - clone
-                type: string
-              uuid:
-                type: string
-            type: object
-          status:
-            description: BackingImageDataSourceStatus defines the observed state of
-              the Longhorn backing image data source
-            properties:
-              checksum:
-                type: string
-              currentState:
-                type: string
-              ip:
-                type: string
-              message:
-                type: string
-              ownerID:
-                type: string
-              progress:
-                type: integer
-              runningParameters:
-                additionalProperties:
+                diskPath:
                   type: string
-                nullable: true
-                type: object
-              size:
-                format: int64
-                type: integer
-              storageIP:
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+                diskUUID:
+                  type: string
+                fileTransferred:
+                  type: boolean
+                nodeID:
+                  type: string
+                parameters:
+                  additionalProperties:
+                    type: string
+                  type: object
+                sourceType:
+                  enum:
+                    - download
+                    - upload
+                    - export-from-volume
+                    - restore
+                    - clone
+                  type: string
+                uuid:
+                  type: string
+              type: object
+            status:
+              description:
+                BackingImageDataSourceStatus defines the observed state of
+                the Longhorn backing image data source
+              properties:
+                checksum:
+                  type: string
+                currentState:
+                  type: string
+                ip:
+                  type: string
+                message:
+                  type: string
+                ownerID:
+                  type: string
+                progress:
+                  type: integer
+                runningParameters:
+                  additionalProperties:
+                    type: string
+                  nullable: true
+                  type: object
+                size:
+                  format: int64
+                  type: integer
+                storageIP:
+                  type: string
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -340,183 +311,187 @@ spec:
     listKind: BackingImageManagerList
     plural: backingimagemanagers
     shortNames:
-    - lhbim
+      - lhbim
     singular: backingimagemanager
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: The current state of the manager
-      jsonPath: .status.currentState
-      name: State
-      type: string
-    - description: The image the manager pod will use
-      jsonPath: .spec.image
-      name: Image
-      type: string
-    - description: The node the manager is on
-      jsonPath: .spec.nodeID
-      name: Node
-      type: string
-    - description: The disk the manager is responsible for
-      jsonPath: .spec.diskUUID
-      name: DiskUUID
-      type: string
-    - description: The disk path the manager is using
-      jsonPath: .spec.diskPath
-      name: DiskPath
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta1
-    schema:
-      openAPIV3Schema:
-        description: BackingImageManager is where Longhorn stores backing image manager
-          object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            x-kubernetes-preserve-unknown-fields: true
-          status:
-            x-kubernetes-preserve-unknown-fields: true
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
-  - additionalPrinterColumns:
-    - description: The current state of the manager
-      jsonPath: .status.currentState
-      name: State
-      type: string
-    - description: The image the manager pod will use
-      jsonPath: .spec.image
-      name: Image
-      type: string
-    - description: The node the manager is on
-      jsonPath: .spec.nodeID
-      name: Node
-      type: string
-    - description: The disk the manager is responsible for
-      jsonPath: .spec.diskUUID
-      name: DiskUUID
-      type: string
-    - description: The disk path the manager is using
-      jsonPath: .spec.diskPath
-      name: DiskPath
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: BackingImageManager is where Longhorn stores backing image manager
-          object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: BackingImageManagerSpec defines the desired state of the
-              Longhorn backing image manager
-            properties:
-              backingImages:
-                additionalProperties:
-                  type: string
-                type: object
-              diskPath:
-                type: string
-              diskUUID:
-                type: string
-              image:
-                type: string
-              nodeID:
-                type: string
-            type: object
-          status:
-            description: BackingImageManagerStatus defines the observed state of the
-              Longhorn backing image manager
-            properties:
-              apiMinVersion:
-                type: integer
-              apiVersion:
-                type: integer
-              backingImageFileMap:
-                additionalProperties:
-                  properties:
-                    currentChecksum:
-                      type: string
-                    message:
-                      type: string
-                    name:
-                      type: string
-                    progress:
-                      type: integer
-                    realSize:
-                      format: int64
-                      type: integer
-                    senderManagerAddress:
-                      type: string
-                    sendingReference:
-                      type: integer
-                    size:
-                      format: int64
-                      type: integer
-                    state:
-                      type: string
-                    uuid:
-                      type: string
-                    virtualSize:
-                      format: int64
-                      type: integer
+    - additionalPrinterColumns:
+        - description: The current state of the manager
+          jsonPath: .status.currentState
+          name: State
+          type: string
+        - description: The image the manager pod will use
+          jsonPath: .spec.image
+          name: Image
+          type: string
+        - description: The node the manager is on
+          jsonPath: .spec.nodeID
+          name: Node
+          type: string
+        - description: The disk the manager is responsible for
+          jsonPath: .spec.diskUUID
+          name: DiskUUID
+          type: string
+        - description: The disk path the manager is using
+          jsonPath: .spec.diskPath
+          name: DiskPath
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta1
+      schema:
+        openAPIV3Schema:
+          description:
+            BackingImageManager is where Longhorn stores backing image manager
+            object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              x-kubernetes-preserve-unknown-fields: true
+            status:
+              x-kubernetes-preserve-unknown-fields: true
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
+    - additionalPrinterColumns:
+        - description: The current state of the manager
+          jsonPath: .status.currentState
+          name: State
+          type: string
+        - description: The image the manager pod will use
+          jsonPath: .spec.image
+          name: Image
+          type: string
+        - description: The node the manager is on
+          jsonPath: .spec.nodeID
+          name: Node
+          type: string
+        - description: The disk the manager is responsible for
+          jsonPath: .spec.diskUUID
+          name: DiskUUID
+          type: string
+        - description: The disk path the manager is using
+          jsonPath: .spec.diskPath
+          name: DiskPath
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description:
+            BackingImageManager is where Longhorn stores backing image manager
+            object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description:
+                BackingImageManagerSpec defines the desired state of the
+                Longhorn backing image manager
+              properties:
+                backingImages:
+                  additionalProperties:
+                    type: string
                   type: object
-                nullable: true
-                type: object
-              currentState:
-                type: string
-              ip:
-                type: string
-              ownerID:
-                type: string
-              storageIP:
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+                diskPath:
+                  type: string
+                diskUUID:
+                  type: string
+                image:
+                  type: string
+                nodeID:
+                  type: string
+              type: object
+            status:
+              description:
+                BackingImageManagerStatus defines the observed state of the
+                Longhorn backing image manager
+              properties:
+                apiMinVersion:
+                  type: integer
+                apiVersion:
+                  type: integer
+                backingImageFileMap:
+                  additionalProperties:
+                    properties:
+                      currentChecksum:
+                        type: string
+                      message:
+                        type: string
+                      name:
+                        type: string
+                      progress:
+                        type: integer
+                      realSize:
+                        format: int64
+                        type: integer
+                      senderManagerAddress:
+                        type: string
+                      sendingReference:
+                        type: integer
+                      size:
+                        format: int64
+                        type: integer
+                      state:
+                        type: string
+                      uuid:
+                        type: string
+                      virtualSize:
+                        format: int64
+                        type: integer
+                    type: object
+                  nullable: true
+                  type: object
+                currentState:
+                  type: string
+                ip:
+                  type: string
+                ownerID:
+                  type: string
+                storageIP:
+                  type: string
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -543,216 +518,221 @@ spec:
           path: /v1/webhook/conversion
           port: 9501
       conversionReviewVersions:
-      - v1beta2
-      - v1beta1
+        - v1beta2
+        - v1beta1
   group: longhorn.io
   names:
     kind: BackingImage
     listKind: BackingImageList
     plural: backingimages
     shortNames:
-    - lhbi
+      - lhbi
     singular: backingimage
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: The backing image name
-      jsonPath: .spec.image
-      name: Image
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta1
-    schema:
-      openAPIV3Schema:
-        description: BackingImage is where Longhorn stores backing image object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            x-kubernetes-preserve-unknown-fields: true
-          status:
-            x-kubernetes-preserve-unknown-fields: true
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
-  - additionalPrinterColumns:
-    - description: The system generated UUID
-      jsonPath: .status.uuid
-      name: UUID
-      type: string
-    - description: The source of the backing image file data
-      jsonPath: .spec.sourceType
-      name: SourceType
-      type: string
-    - description: The backing image file size in each disk
-      jsonPath: .status.size
-      name: Size
-      type: string
-    - description: The virtual size of the image (may be larger than file size)
-      jsonPath: .status.virtualSize
-      name: VirtualSize
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: BackingImage is where Longhorn stores backing image object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: BackingImageSpec defines the desired state of the Longhorn
-              backing image
-            properties:
-              checksum:
-                type: string
-              dataEngine:
-                default: v1
-                enum:
-                - v1
-                - v2
-                type: string
-              diskFileSpecMap:
-                additionalProperties:
-                  properties:
-                    dataEngine:
-                      enum:
-                      - v1
-                      - v2
-                      type: string
-                    evictionRequested:
-                      type: boolean
+    - additionalPrinterColumns:
+        - description: The backing image name
+          jsonPath: .spec.image
+          name: Image
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta1
+      schema:
+        openAPIV3Schema:
+          description: BackingImage is where Longhorn stores backing image object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              x-kubernetes-preserve-unknown-fields: true
+            status:
+              x-kubernetes-preserve-unknown-fields: true
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
+    - additionalPrinterColumns:
+        - description: The system generated UUID
+          jsonPath: .status.uuid
+          name: UUID
+          type: string
+        - description: The source of the backing image file data
+          jsonPath: .spec.sourceType
+          name: SourceType
+          type: string
+        - description: The backing image file size in each disk
+          jsonPath: .status.size
+          name: Size
+          type: string
+        - description: The virtual size of the image (may be larger than file size)
+          jsonPath: .status.virtualSize
+          name: VirtualSize
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description: BackingImage is where Longhorn stores backing image object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description:
+                BackingImageSpec defines the desired state of the Longhorn
+                backing image
+              properties:
+                checksum:
+                  type: string
+                dataEngine:
+                  default: v1
+                  enum:
+                    - v1
+                    - v2
+                  type: string
+                diskFileSpecMap:
+                  additionalProperties:
+                    properties:
+                      dataEngine:
+                        enum:
+                          - v1
+                          - v2
+                        type: string
+                      evictionRequested:
+                        type: boolean
+                    type: object
                   type: object
-                type: object
-              diskSelector:
-                items:
-                  type: string
-                type: array
-              disks:
-                additionalProperties:
-                  type: string
-                description: Deprecated. We are now using DiskFileSpecMap to assign
-                  different spec to the file on different disks.
-                type: object
-              minNumberOfCopies:
-                type: integer
-              nodeSelector:
-                items:
-                  type: string
-                type: array
-              secret:
-                type: string
-              secretNamespace:
-                type: string
-              sourceParameters:
-                additionalProperties:
-                  type: string
-                type: object
-              sourceType:
-                enum:
-                - download
-                - upload
-                - export-from-volume
-                - restore
-                - clone
-                type: string
-            type: object
-          status:
-            description: BackingImageStatus defines the observed state of the Longhorn
-              backing image status
-            properties:
-              checksum:
-                type: string
-              diskFileStatusMap:
-                additionalProperties:
-                  properties:
-                    dataEngine:
-                      enum:
-                      - v1
-                      - v2
-                      type: string
-                    lastStateTransitionTime:
-                      type: string
-                    message:
-                      type: string
-                    progress:
-                      type: integer
-                    state:
-                      type: string
+                diskSelector:
+                  items:
+                    type: string
+                  type: array
+                disks:
+                  additionalProperties:
+                    type: string
+                  description:
+                    Deprecated. We are now using DiskFileSpecMap to assign
+                    different spec to the file on different disks.
                   type: object
-                nullable: true
-                type: object
-              diskLastRefAtMap:
-                additionalProperties:
+                minNumberOfCopies:
+                  type: integer
+                nodeSelector:
+                  items:
+                    type: string
+                  type: array
+                secret:
                   type: string
-                nullable: true
-                type: object
-              ownerID:
-                type: string
-              realSize:
-                description: Real size of image in bytes, which may be smaller than
-                  the size when the file is a sparse file. Will be zero until known
-                  (e.g. while a backing image is uploading)
-                format: int64
-                type: integer
-              size:
-                format: int64
-                type: integer
-              uuid:
-                type: string
-              v2FirstCopyDisk:
-                type: string
-              v2FirstCopyStatus:
-                description: It is pending -> in-progress -> ready/failed
-                type: string
-              virtualSize:
-                description: Virtual size of image in bytes, which may be larger than
-                  physical size. Will be zero until known (e.g. while a backing image
-                  is uploading)
-                format: int64
-                type: integer
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+                secretNamespace:
+                  type: string
+                sourceParameters:
+                  additionalProperties:
+                    type: string
+                  type: object
+                sourceType:
+                  enum:
+                    - download
+                    - upload
+                    - export-from-volume
+                    - restore
+                    - clone
+                  type: string
+              type: object
+            status:
+              description:
+                BackingImageStatus defines the observed state of the Longhorn
+                backing image status
+              properties:
+                checksum:
+                  type: string
+                diskFileStatusMap:
+                  additionalProperties:
+                    properties:
+                      dataEngine:
+                        enum:
+                          - v1
+                          - v2
+                        type: string
+                      lastStateTransitionTime:
+                        type: string
+                      message:
+                        type: string
+                      progress:
+                        type: integer
+                      state:
+                        type: string
+                    type: object
+                  nullable: true
+                  type: object
+                diskLastRefAtMap:
+                  additionalProperties:
+                    type: string
+                  nullable: true
+                  type: object
+                ownerID:
+                  type: string
+                realSize:
+                  description:
+                    Real size of image in bytes, which may be smaller than
+                    the size when the file is a sparse file. Will be zero until known
+                    (e.g. while a backing image is uploading)
+                  format: int64
+                  type: integer
+                size:
+                  format: int64
+                  type: integer
+                uuid:
+                  type: string
+                v2FirstCopyDisk:
+                  type: string
+                v2FirstCopyStatus:
+                  description: It is pending -> in-progress -> ready/failed
+                  type: string
+                virtualSize:
+                  description:
+                    Virtual size of image in bytes, which may be larger than
+                    physical size. Will be zero until known (e.g. while a backing image
+                    is uploading)
+                  format: int64
+                  type: integer
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -775,159 +755,168 @@ spec:
     listKind: BackupBackingImageList
     plural: backupbackingimages
     shortNames:
-    - lhbbi
+      - lhbbi
     singular: backupbackingimage
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: The backing image name
-      jsonPath: .status.backingImage
-      name: BackingImage
-      type: string
-    - description: The backing image size
-      jsonPath: .status.size
-      name: Size
-      type: string
-    - description: The backing image backup upload finished time
-      jsonPath: .status.backupCreatedAt
-      name: BackupCreatedAt
-      type: string
-    - description: The backing image backup state
-      jsonPath: .status.state
-      name: State
-      type: string
-    - description: The last synced time
-      jsonPath: .status.lastSyncedAt
-      name: LastSyncedAt
-      type: string
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: BackupBackingImage is where Longhorn stores backing image backup
-          object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: BackupBackingImageSpec defines the desired state of the Longhorn
-              backing image backup
-            properties:
-              backingImage:
-                description: |-
-                  The backing image name.
-                type: string
-              backupTargetName:
-                description: The backup target name.
-                nullable: true
-                type: string
-              labels:
-                additionalProperties:
+    - additionalPrinterColumns:
+        - description: The backing image name
+          jsonPath: .status.backingImage
+          name: BackingImage
+          type: string
+        - description: The backing image size
+          jsonPath: .status.size
+          name: Size
+          type: string
+        - description: The backing image backup upload finished time
+          jsonPath: .status.backupCreatedAt
+          name: BackupCreatedAt
+          type: string
+        - description: The backing image backup state
+          jsonPath: .status.state
+          name: State
+          type: string
+        - description: The last synced time
+          jsonPath: .status.lastSyncedAt
+          name: LastSyncedAt
+          type: string
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description:
+            BackupBackingImage is where Longhorn stores backing image backup
+            object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description:
+                BackupBackingImageSpec defines the desired state of the Longhorn
+                backing image backup
+              properties:
+                backingImage:
+                  description: |-
+                    The backing image name.
                   type: string
-                description: The labels of backing image backup.
-                type: object
-              syncRequestedAt:
-                description: The time to request run sync the remote backing image
-                  backup.
-                format: date-time
-                nullable: true
-                type: string
-              userCreated:
-                description: |-
-                  Is this CR created by user through API or UI.
-                type: boolean
-            required:
-            - backingImage
-            - userCreated
-            type: object
-          status:
-            description: BackupBackingImageStatus defines the observed state of the
-              Longhorn backing image backup
-            properties:
-              backingImage:
-                description: The backing image name.
-                type: string
-              backupCreatedAt:
-                description: The backing image backup upload finished time.
-                type: string
-              checksum:
-                description: The checksum of the backing image.
-                type: string
-              compressionMethod:
-                description: Compression method
-                type: string
-              error:
-                description: The error message when taking the backing image backup.
-                type: string
-              labels:
-                additionalProperties:
+                backupTargetName:
+                  description: The backup target name.
+                  nullable: true
                   type: string
-                description: The labels of backing image backup.
-                nullable: true
-                type: object
-              lastSyncedAt:
-                description: The last time that the backing image backup was synced
-                  with the remote backup target.
-                format: date-time
-                nullable: true
-                type: string
-              managerAddress:
-                description: The address of the backing image manager that runs backing
-                  image backup.
-                type: string
-              messages:
-                additionalProperties:
+                labels:
+                  additionalProperties:
+                    type: string
+                  description: The labels of backing image backup.
+                  type: object
+                syncRequestedAt:
+                  description:
+                    The time to request run sync the remote backing image
+                    backup.
+                  format: date-time
+                  nullable: true
                   type: string
-                description: The error messages when listing or inspecting backing
-                  image backup.
-                nullable: true
-                type: object
-              ownerID:
-                description: The node ID on which the controller is responsible to
-                  reconcile this CR.
-                type: string
-              progress:
-                description: The backing image backup progress.
-                type: integer
-              secret:
-                description: Record the secret if this backup backing image is encrypted
-                type: string
-              secretNamespace:
-                description: Record the secret namespace if this backup backing image
-                  is encrypted
-                type: string
-              size:
-                description: The backing image size.
-                format: int64
-                type: integer
-              state:
-                description: |-
-                  The backing image backup creation state.
-                  Can be "", "InProgress", "Completed", "Error", "Unknown".
-                type: string
-              url:
-                description: The backing image backup URL.
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+                userCreated:
+                  description: |-
+                    Is this CR created by user through API or UI.
+                  type: boolean
+              required:
+                - backingImage
+                - userCreated
+              type: object
+            status:
+              description:
+                BackupBackingImageStatus defines the observed state of the
+                Longhorn backing image backup
+              properties:
+                backingImage:
+                  description: The backing image name.
+                  type: string
+                backupCreatedAt:
+                  description: The backing image backup upload finished time.
+                  type: string
+                checksum:
+                  description: The checksum of the backing image.
+                  type: string
+                compressionMethod:
+                  description: Compression method
+                  type: string
+                error:
+                  description: The error message when taking the backing image backup.
+                  type: string
+                labels:
+                  additionalProperties:
+                    type: string
+                  description: The labels of backing image backup.
+                  nullable: true
+                  type: object
+                lastSyncedAt:
+                  description:
+                    The last time that the backing image backup was synced
+                    with the remote backup target.
+                  format: date-time
+                  nullable: true
+                  type: string
+                managerAddress:
+                  description:
+                    The address of the backing image manager that runs backing
+                    image backup.
+                  type: string
+                messages:
+                  additionalProperties:
+                    type: string
+                  description:
+                    The error messages when listing or inspecting backing
+                    image backup.
+                  nullable: true
+                  type: object
+                ownerID:
+                  description:
+                    The node ID on which the controller is responsible to
+                    reconcile this CR.
+                  type: string
+                progress:
+                  description: The backing image backup progress.
+                  type: integer
+                secret:
+                  description: Record the secret if this backup backing image is encrypted
+                  type: string
+                secretNamespace:
+                  description:
+                    Record the secret namespace if this backup backing image
+                    is encrypted
+                  type: string
+                size:
+                  description: The backing image size.
+                  format: int64
+                  type: integer
+                state:
+                  description: |-
+                    The backing image backup creation state.
+                    Can be "", "InProgress", "Completed", "Error", "Unknown".
+                  type: string
+                url:
+                  description: The backing image backup URL.
+                  type: string
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -950,220 +939,223 @@ spec:
     listKind: BackupList
     plural: backups
     shortNames:
-    - lhb
+      - lhb
     singular: backup
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: The snapshot name
-      jsonPath: .status.snapshotName
-      name: SnapshotName
-      type: string
-    - description: The snapshot size
-      jsonPath: .status.size
-      name: SnapshotSize
-      type: string
-    - description: The snapshot creation time
-      jsonPath: .status.snapshotCreatedAt
-      name: SnapshotCreatedAt
-      type: string
-    - description: The backup state
-      jsonPath: .status.state
-      name: State
-      type: string
-    - description: The backup last synced time
-      jsonPath: .status.lastSyncedAt
-      name: LastSyncedAt
-      type: string
-    name: v1beta1
-    schema:
-      openAPIV3Schema:
-        description: Backup is where Longhorn stores backup object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            x-kubernetes-preserve-unknown-fields: true
-          status:
-            x-kubernetes-preserve-unknown-fields: true
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
-  - additionalPrinterColumns:
-    - description: The snapshot name
-      jsonPath: .status.snapshotName
-      name: SnapshotName
-      type: string
-    - description: The snapshot size
-      jsonPath: .status.size
-      name: SnapshotSize
-      type: string
-    - description: The snapshot creation time
-      jsonPath: .status.snapshotCreatedAt
-      name: SnapshotCreatedAt
-      type: string
-    - description: The backup target name
-      jsonPath: .status.backupTargetName
-      name: BackupTarget
-      type: string
-    - description: The backup state
-      jsonPath: .status.state
-      name: State
-      type: string
-    - description: The backup last synced time
-      jsonPath: .status.lastSyncedAt
-      name: LastSyncedAt
-      type: string
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: Backup is where Longhorn stores backup object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: BackupSpec defines the desired state of the Longhorn backup
-            properties:
-              backupMode:
-                description: |-
-                  The backup mode of this backup.
-                  Can be "full" or "incremental"
-                enum:
-                - full
-                - incremental
-                - ""
-                type: string
-              labels:
-                additionalProperties:
+    - additionalPrinterColumns:
+        - description: The snapshot name
+          jsonPath: .status.snapshotName
+          name: SnapshotName
+          type: string
+        - description: The snapshot size
+          jsonPath: .status.size
+          name: SnapshotSize
+          type: string
+        - description: The snapshot creation time
+          jsonPath: .status.snapshotCreatedAt
+          name: SnapshotCreatedAt
+          type: string
+        - description: The backup state
+          jsonPath: .status.state
+          name: State
+          type: string
+        - description: The backup last synced time
+          jsonPath: .status.lastSyncedAt
+          name: LastSyncedAt
+          type: string
+      name: v1beta1
+      schema:
+        openAPIV3Schema:
+          description: Backup is where Longhorn stores backup object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              x-kubernetes-preserve-unknown-fields: true
+            status:
+              x-kubernetes-preserve-unknown-fields: true
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
+    - additionalPrinterColumns:
+        - description: The snapshot name
+          jsonPath: .status.snapshotName
+          name: SnapshotName
+          type: string
+        - description: The snapshot size
+          jsonPath: .status.size
+          name: SnapshotSize
+          type: string
+        - description: The snapshot creation time
+          jsonPath: .status.snapshotCreatedAt
+          name: SnapshotCreatedAt
+          type: string
+        - description: The backup target name
+          jsonPath: .status.backupTargetName
+          name: BackupTarget
+          type: string
+        - description: The backup state
+          jsonPath: .status.state
+          name: State
+          type: string
+        - description: The backup last synced time
+          jsonPath: .status.lastSyncedAt
+          name: LastSyncedAt
+          type: string
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description: Backup is where Longhorn stores backup object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description: BackupSpec defines the desired state of the Longhorn backup
+              properties:
+                backupMode:
+                  description: |-
+                    The backup mode of this backup.
+                    Can be "full" or "incremental"
+                  enum:
+                    - full
+                    - incremental
+                    - ""
                   type: string
-                description: The labels of snapshot backup.
-                type: object
-              snapshotName:
-                description: The snapshot name.
-                type: string
-              syncRequestedAt:
-                description: The time to request run sync the remote backup.
-                format: date-time
-                nullable: true
-                type: string
-            type: object
-          status:
-            description: BackupStatus defines the observed state of the Longhorn backup
-            properties:
-              backupCreatedAt:
-                description: The snapshot backup upload finished time.
-                type: string
-              backupTargetName:
-                description: The backup target name.
-                type: string
-              compressionMethod:
-                description: Compression method
-                type: string
-              error:
-                description: The error message when taking the snapshot backup.
-                type: string
-              labels:
-                additionalProperties:
+                labels:
+                  additionalProperties:
+                    type: string
+                  description: The labels of snapshot backup.
+                  type: object
+                snapshotName:
+                  description: The snapshot name.
                   type: string
-                description: The labels of snapshot backup.
-                nullable: true
-                type: object
-              lastSyncedAt:
-                description: The last time that the backup was synced with the remote
-                  backup target.
-                format: date-time
-                nullable: true
-                type: string
-              messages:
-                additionalProperties:
+                syncRequestedAt:
+                  description: The time to request run sync the remote backup.
+                  format: date-time
+                  nullable: true
                   type: string
-                description: The error messages when calling longhorn engine on listing
-                  or inspecting backups.
-                nullable: true
-                type: object
-              newlyUploadDataSize:
-                description: Size in bytes of newly uploaded data
-                type: string
-              ownerID:
-                description: The node ID on which the controller is responsible to
-                  reconcile this backup CR.
-                type: string
-              progress:
-                description: The snapshot backup progress.
-                type: integer
-              reUploadedDataSize:
-                description: Size in bytes of reuploaded data
-                type: string
-              replicaAddress:
-                description: The address of the replica that runs snapshot backup.
-                type: string
-              size:
-                description: The snapshot size.
-                type: string
-              snapshotCreatedAt:
-                description: The snapshot creation time.
-                type: string
-              snapshotName:
-                description: The snapshot name.
-                type: string
-              state:
-                description: |-
-                  The backup creation state.
-                  Can be "", "InProgress", "Completed", "Error", "Unknown".
-                type: string
-              url:
-                description: The snapshot backup URL.
-                type: string
-              volumeBackingImageName:
-                description: The volume's backing image name.
-                type: string
-              volumeCreated:
-                description: The volume creation time.
-                type: string
-              volumeName:
-                description: The volume name.
-                type: string
-              volumeSize:
-                description: The volume size.
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+              type: object
+            status:
+              description: BackupStatus defines the observed state of the Longhorn backup
+              properties:
+                backupCreatedAt:
+                  description: The snapshot backup upload finished time.
+                  type: string
+                backupTargetName:
+                  description: The backup target name.
+                  type: string
+                compressionMethod:
+                  description: Compression method
+                  type: string
+                error:
+                  description: The error message when taking the snapshot backup.
+                  type: string
+                labels:
+                  additionalProperties:
+                    type: string
+                  description: The labels of snapshot backup.
+                  nullable: true
+                  type: object
+                lastSyncedAt:
+                  description:
+                    The last time that the backup was synced with the remote
+                    backup target.
+                  format: date-time
+                  nullable: true
+                  type: string
+                messages:
+                  additionalProperties:
+                    type: string
+                  description:
+                    The error messages when calling longhorn engine on listing
+                    or inspecting backups.
+                  nullable: true
+                  type: object
+                newlyUploadDataSize:
+                  description: Size in bytes of newly uploaded data
+                  type: string
+                ownerID:
+                  description:
+                    The node ID on which the controller is responsible to
+                    reconcile this backup CR.
+                  type: string
+                progress:
+                  description: The snapshot backup progress.
+                  type: integer
+                reUploadedDataSize:
+                  description: Size in bytes of reuploaded data
+                  type: string
+                replicaAddress:
+                  description: The address of the replica that runs snapshot backup.
+                  type: string
+                size:
+                  description: The snapshot size.
+                  type: string
+                snapshotCreatedAt:
+                  description: The snapshot creation time.
+                  type: string
+                snapshotName:
+                  description: The snapshot name.
+                  type: string
+                state:
+                  description: |-
+                    The backup creation state.
+                    Can be "", "InProgress", "Completed", "Error", "Unknown".
+                  type: string
+                url:
+                  description: The snapshot backup URL.
+                  type: string
+                volumeBackingImageName:
+                  description: The volume's backing image name.
+                  type: string
+                volumeCreated:
+                  description: The volume creation time.
+                  type: string
+                volumeName:
+                  description: The volume name.
+                  type: string
+                volumeSize:
+                  description: The volume size.
+                  type: string
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -1190,187 +1182,196 @@ spec:
           path: /v1/webhook/conversion
           port: 9501
       conversionReviewVersions:
-      - v1beta2
-      - v1beta1
+        - v1beta2
+        - v1beta1
   group: longhorn.io
   names:
     kind: BackupTarget
     listKind: BackupTargetList
     plural: backuptargets
     shortNames:
-    - lhbt
+      - lhbt
     singular: backuptarget
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: The backup target URL
-      jsonPath: .spec.backupTargetURL
-      name: URL
-      type: string
-    - description: The backup target credential secret
-      jsonPath: .spec.credentialSecret
-      name: Credential
-      type: string
-    - description: The backup target poll interval
-      jsonPath: .spec.pollInterval
-      name: LastBackupAt
-      type: string
-    - description: Indicate whether the backup target is available or not
-      jsonPath: .status.available
-      name: Available
-      type: boolean
-    - description: The backup target last synced time
-      jsonPath: .status.lastSyncedAt
-      name: LastSyncedAt
-      type: string
-    name: v1beta1
-    schema:
-      openAPIV3Schema:
-        description: BackupTarget is where Longhorn stores backup target object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            x-kubernetes-preserve-unknown-fields: true
-          status:
-            x-kubernetes-preserve-unknown-fields: true
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
-  - additionalPrinterColumns:
-    - description: The backup target URL
-      jsonPath: .spec.backupTargetURL
-      name: URL
-      type: string
-    - description: The backup target credential secret
-      jsonPath: .spec.credentialSecret
-      name: Credential
-      type: string
-    - description: The backup target poll interval
-      jsonPath: .spec.pollInterval
-      name: LastBackupAt
-      type: string
-    - description: Indicate whether the backup target is available or not
-      jsonPath: .status.available
-      name: Available
-      type: boolean
-    - description: The backup target last synced time
-      jsonPath: .status.lastSyncedAt
-      name: LastSyncedAt
-      type: string
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: BackupTarget is where Longhorn stores backup target object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: BackupTargetSpec defines the desired state of the Longhorn
-              backup target
-            properties:
-              backupTargetURL:
-                description: The backup target URL.
-                type: string
-              credentialSecret:
-                description: The backup target credential secret.
-                type: string
-              pollInterval:
-                description: The interval that the cluster needs to run sync with
-                  the backup target.
-                type: string
-              syncRequestedAt:
-                description: The time to request run sync the remote backup target.
-                format: date-time
-                nullable: true
-                type: string
-            type: object
-          status:
-            description: BackupTargetStatus defines the observed state of the Longhorn
-              backup target
-            properties:
-              available:
-                description: Available indicates if the remote backup target is available
-                  or not.
-                type: boolean
-              conditions:
-                description: Records the reason on why the backup target is unavailable.
-                items:
-                  properties:
-                    lastProbeTime:
-                      description: Last time we probed the condition.
-                      type: string
-                    lastTransitionTime:
-                      description: Last time the condition transitioned from one status
-                        to another.
-                      type: string
-                    message:
-                      description: Human-readable message indicating details about
-                        last transition.
-                      type: string
-                    reason:
-                      description: Unique, one-word, CamelCase reason for the condition's
-                        last transition.
-                      type: string
-                    status:
-                      description: |-
-                        Status is the status of the condition.
-                        Can be True, False, Unknown.
-                      type: string
-                    type:
-                      description: Type is the type of the condition.
-                      type: string
-                  type: object
-                nullable: true
-                type: array
-              lastSyncedAt:
-                description: The last time that the controller synced with the remote
-                  backup target.
-                format: date-time
-                nullable: true
-                type: string
-              ownerID:
-                description: The node ID on which the controller is responsible to
-                  reconcile this backup target CR.
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+    - additionalPrinterColumns:
+        - description: The backup target URL
+          jsonPath: .spec.backupTargetURL
+          name: URL
+          type: string
+        - description: The backup target credential secret
+          jsonPath: .spec.credentialSecret
+          name: Credential
+          type: string
+        - description: The backup target poll interval
+          jsonPath: .spec.pollInterval
+          name: LastBackupAt
+          type: string
+        - description: Indicate whether the backup target is available or not
+          jsonPath: .status.available
+          name: Available
+          type: boolean
+        - description: The backup target last synced time
+          jsonPath: .status.lastSyncedAt
+          name: LastSyncedAt
+          type: string
+      name: v1beta1
+      schema:
+        openAPIV3Schema:
+          description: BackupTarget is where Longhorn stores backup target object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              x-kubernetes-preserve-unknown-fields: true
+            status:
+              x-kubernetes-preserve-unknown-fields: true
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
+    - additionalPrinterColumns:
+        - description: The backup target URL
+          jsonPath: .spec.backupTargetURL
+          name: URL
+          type: string
+        - description: The backup target credential secret
+          jsonPath: .spec.credentialSecret
+          name: Credential
+          type: string
+        - description: The backup target poll interval
+          jsonPath: .spec.pollInterval
+          name: LastBackupAt
+          type: string
+        - description: Indicate whether the backup target is available or not
+          jsonPath: .status.available
+          name: Available
+          type: boolean
+        - description: The backup target last synced time
+          jsonPath: .status.lastSyncedAt
+          name: LastSyncedAt
+          type: string
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description: BackupTarget is where Longhorn stores backup target object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description:
+                BackupTargetSpec defines the desired state of the Longhorn
+                backup target
+              properties:
+                backupTargetURL:
+                  description: The backup target URL.
+                  type: string
+                credentialSecret:
+                  description: The backup target credential secret.
+                  type: string
+                pollInterval:
+                  description:
+                    The interval that the cluster needs to run sync with
+                    the backup target.
+                  type: string
+                syncRequestedAt:
+                  description: The time to request run sync the remote backup target.
+                  format: date-time
+                  nullable: true
+                  type: string
+              type: object
+            status:
+              description:
+                BackupTargetStatus defines the observed state of the Longhorn
+                backup target
+              properties:
+                available:
+                  description:
+                    Available indicates if the remote backup target is available
+                    or not.
+                  type: boolean
+                conditions:
+                  description: Records the reason on why the backup target is unavailable.
+                  items:
+                    properties:
+                      lastProbeTime:
+                        description: Last time we probed the condition.
+                        type: string
+                      lastTransitionTime:
+                        description:
+                          Last time the condition transitioned from one status
+                          to another.
+                        type: string
+                      message:
+                        description:
+                          Human-readable message indicating details about
+                          last transition.
+                        type: string
+                      reason:
+                        description:
+                          Unique, one-word, CamelCase reason for the condition's
+                          last transition.
+                        type: string
+                      status:
+                        description: |-
+                          Status is the status of the condition.
+                          Can be True, False, Unknown.
+                        type: string
+                      type:
+                        description: Type is the type of the condition.
+                        type: string
+                    type: object
+                  nullable: true
+                  type: array
+                lastSyncedAt:
+                  description:
+                    The last time that the controller synced with the remote
+                    backup target.
+                  format: date-time
+                  nullable: true
+                  type: string
+                ownerID:
+                  description:
+                    The node ID on which the controller is responsible to
+                    reconcile this backup target CR.
+                  type: string
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -1393,180 +1394,185 @@ spec:
     listKind: BackupVolumeList
     plural: backupvolumes
     shortNames:
-    - lhbv
+      - lhbv
     singular: backupvolume
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: The backup volume creation time
-      jsonPath: .status.createdAt
-      name: CreatedAt
-      type: string
-    - description: The backup volume last backup name
-      jsonPath: .status.lastBackupName
-      name: LastBackupName
-      type: string
-    - description: The backup volume last backup time
-      jsonPath: .status.lastBackupAt
-      name: LastBackupAt
-      type: string
-    - description: The backup volume last synced time
-      jsonPath: .status.lastSyncedAt
-      name: LastSyncedAt
-      type: string
-    name: v1beta1
-    schema:
-      openAPIV3Schema:
-        description: BackupVolume is where Longhorn stores backup volume object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            x-kubernetes-preserve-unknown-fields: true
-          status:
-            x-kubernetes-preserve-unknown-fields: true
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
-  - additionalPrinterColumns:
-    - description: The backup target name
-      jsonPath: .spec.backupTargetName
-      name: BackupTarget
-      type: string
-    - description: The backup volume creation time
-      jsonPath: .status.createdAt
-      name: CreatedAt
-      type: string
-    - description: The backup volume last backup name
-      jsonPath: .status.lastBackupName
-      name: LastBackupName
-      type: string
-    - description: The backup volume last backup time
-      jsonPath: .status.lastBackupAt
-      name: LastBackupAt
-      type: string
-    - description: The backup volume last synced time
-      jsonPath: .status.lastSyncedAt
-      name: LastSyncedAt
-      type: string
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: BackupVolume is where Longhorn stores backup volume object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: BackupVolumeSpec defines the desired state of the Longhorn
-              backup volume
-            properties:
-              backupTargetName:
-                description: The backup target name that the backup volume was synced.
-                nullable: true
-                type: string
-              syncRequestedAt:
-                description: The time to request run sync the remote backup volume.
-                format: date-time
-                nullable: true
-                type: string
-              volumeName:
-                description: The volume name that the backup volume was used to backup.
-                type: string
-            type: object
-          status:
-            description: BackupVolumeStatus defines the observed state of the Longhorn
-              backup volume
-            properties:
-              backingImageChecksum:
-                description: the backing image checksum.
-                type: string
-              backingImageName:
-                description: The backing image name.
-                type: string
-              createdAt:
-                description: The backup volume creation time.
-                type: string
-              dataStored:
-                description: The backup volume block count.
-                type: string
-              labels:
-                additionalProperties:
+    - additionalPrinterColumns:
+        - description: The backup volume creation time
+          jsonPath: .status.createdAt
+          name: CreatedAt
+          type: string
+        - description: The backup volume last backup name
+          jsonPath: .status.lastBackupName
+          name: LastBackupName
+          type: string
+        - description: The backup volume last backup time
+          jsonPath: .status.lastBackupAt
+          name: LastBackupAt
+          type: string
+        - description: The backup volume last synced time
+          jsonPath: .status.lastSyncedAt
+          name: LastSyncedAt
+          type: string
+      name: v1beta1
+      schema:
+        openAPIV3Schema:
+          description: BackupVolume is where Longhorn stores backup volume object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              x-kubernetes-preserve-unknown-fields: true
+            status:
+              x-kubernetes-preserve-unknown-fields: true
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
+    - additionalPrinterColumns:
+        - description: The backup target name
+          jsonPath: .spec.backupTargetName
+          name: BackupTarget
+          type: string
+        - description: The backup volume creation time
+          jsonPath: .status.createdAt
+          name: CreatedAt
+          type: string
+        - description: The backup volume last backup name
+          jsonPath: .status.lastBackupName
+          name: LastBackupName
+          type: string
+        - description: The backup volume last backup time
+          jsonPath: .status.lastBackupAt
+          name: LastBackupAt
+          type: string
+        - description: The backup volume last synced time
+          jsonPath: .status.lastSyncedAt
+          name: LastSyncedAt
+          type: string
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description: BackupVolume is where Longhorn stores backup volume object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description:
+                BackupVolumeSpec defines the desired state of the Longhorn
+                backup volume
+              properties:
+                backupTargetName:
+                  description: The backup target name that the backup volume was synced.
+                  nullable: true
                   type: string
-                description: The backup volume labels.
-                nullable: true
-                type: object
-              lastBackupAt:
-                description: The latest volume backup time.
-                type: string
-              lastBackupName:
-                description: The latest volume backup name.
-                type: string
-              lastModificationTime:
-                description: The backup volume config last modification time.
-                format: date-time
-                nullable: true
-                type: string
-              lastSyncedAt:
-                description: The last time that the backup volume was synced into
-                  the cluster.
-                format: date-time
-                nullable: true
-                type: string
-              messages:
-                additionalProperties:
+                syncRequestedAt:
+                  description: The time to request run sync the remote backup volume.
+                  format: date-time
+                  nullable: true
                   type: string
-                description: The error messages when call longhorn engine on list
-                  or inspect backup volumes.
-                nullable: true
-                type: object
-              ownerID:
-                description: The node ID on which the controller is responsible to
-                  reconcile this backup volume CR.
-                type: string
-              size:
-                description: The backup volume size.
-                type: string
-              storageClassName:
-                description: the storage class name of pv/pvc binding with the volume.
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+                volumeName:
+                  description: The volume name that the backup volume was used to backup.
+                  type: string
+              type: object
+            status:
+              description:
+                BackupVolumeStatus defines the observed state of the Longhorn
+                backup volume
+              properties:
+                backingImageChecksum:
+                  description: the backing image checksum.
+                  type: string
+                backingImageName:
+                  description: The backing image name.
+                  type: string
+                createdAt:
+                  description: The backup volume creation time.
+                  type: string
+                dataStored:
+                  description: The backup volume block count.
+                  type: string
+                labels:
+                  additionalProperties:
+                    type: string
+                  description: The backup volume labels.
+                  nullable: true
+                  type: object
+                lastBackupAt:
+                  description: The latest volume backup time.
+                  type: string
+                lastBackupName:
+                  description: The latest volume backup name.
+                  type: string
+                lastModificationTime:
+                  description: The backup volume config last modification time.
+                  format: date-time
+                  nullable: true
+                  type: string
+                lastSyncedAt:
+                  description:
+                    The last time that the backup volume was synced into
+                    the cluster.
+                  format: date-time
+                  nullable: true
+                  type: string
+                messages:
+                  additionalProperties:
+                    type: string
+                  description:
+                    The error messages when call longhorn engine on list
+                    or inspect backup volumes.
+                  nullable: true
+                  type: object
+                ownerID:
+                  description:
+                    The node ID on which the controller is responsible to
+                    reconcile this backup volume CR.
+                  type: string
+                size:
+                  description: The backup volume size.
+                  type: string
+                storageClassName:
+                  description: the storage class name of pv/pvc binding with the volume.
+                  type: string
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -1593,198 +1599,203 @@ spec:
           path: /v1/webhook/conversion
           port: 9501
       conversionReviewVersions:
-      - v1beta2
-      - v1beta1
+        - v1beta2
+        - v1beta1
   group: longhorn.io
   names:
     kind: EngineImage
     listKind: EngineImageList
     plural: engineimages
     shortNames:
-    - lhei
+      - lhei
     singular: engineimage
   preserveUnknownFields: false
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: State of the engine image
-      jsonPath: .status.state
-      name: State
-      type: string
-    - description: The Longhorn engine image
-      jsonPath: .spec.image
-      name: Image
-      type: string
-    - description: Number of resources using the engine image
-      jsonPath: .status.refCount
-      name: RefCount
-      type: integer
-    - description: The build date of the engine image
-      jsonPath: .status.buildDate
-      name: BuildDate
-      type: date
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta1
-    schema:
-      openAPIV3Schema:
-        description: EngineImage is where Longhorn stores engine image object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            x-kubernetes-preserve-unknown-fields: true
-          status:
-            x-kubernetes-preserve-unknown-fields: true
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
-  - additionalPrinterColumns:
-    - description: Compatibility of the engine image
-      jsonPath: .status.incompatible
-      name: Incompatible
-      type: boolean
-    - description: State of the engine image
-      jsonPath: .status.state
-      name: State
-      type: string
-    - description: The Longhorn engine image
-      jsonPath: .spec.image
-      name: Image
-      type: string
-    - description: Number of resources using the engine image
-      jsonPath: .status.refCount
-      name: RefCount
-      type: integer
-    - description: The build date of the engine image
-      jsonPath: .status.buildDate
-      name: BuildDate
-      type: date
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: EngineImage is where Longhorn stores engine image object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: EngineImageSpec defines the desired state of the Longhorn
-              engine image
-            properties:
-              image:
-                minLength: 1
-                type: string
-            required:
-            - image
-            type: object
-          status:
-            description: EngineImageStatus defines the observed state of the Longhorn
-              engine image
-            properties:
-              buildDate:
-                type: string
-              cliAPIMinVersion:
-                type: integer
-              cliAPIVersion:
-                type: integer
-              conditions:
-                items:
-                  properties:
-                    lastProbeTime:
-                      description: Last time we probed the condition.
-                      type: string
-                    lastTransitionTime:
-                      description: Last time the condition transitioned from one status
-                        to another.
-                      type: string
-                    message:
-                      description: Human-readable message indicating details about
-                        last transition.
-                      type: string
-                    reason:
-                      description: Unique, one-word, CamelCase reason for the condition's
-                        last transition.
-                      type: string
-                    status:
-                      description: |-
-                        Status is the status of the condition.
-                        Can be True, False, Unknown.
-                      type: string
-                    type:
-                      description: Type is the type of the condition.
-                      type: string
-                  type: object
-                nullable: true
-                type: array
-              controllerAPIMinVersion:
-                type: integer
-              controllerAPIVersion:
-                type: integer
-              dataFormatMinVersion:
-                type: integer
-              dataFormatVersion:
-                type: integer
-              gitCommit:
-                type: string
-              incompatible:
-                type: boolean
-              noRefSince:
-                type: string
-              nodeDeploymentMap:
-                additionalProperties:
+    - additionalPrinterColumns:
+        - description: State of the engine image
+          jsonPath: .status.state
+          name: State
+          type: string
+        - description: The Longhorn engine image
+          jsonPath: .spec.image
+          name: Image
+          type: string
+        - description: Number of resources using the engine image
+          jsonPath: .status.refCount
+          name: RefCount
+          type: integer
+        - description: The build date of the engine image
+          jsonPath: .status.buildDate
+          name: BuildDate
+          type: date
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta1
+      schema:
+        openAPIV3Schema:
+          description: EngineImage is where Longhorn stores engine image object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              x-kubernetes-preserve-unknown-fields: true
+            status:
+              x-kubernetes-preserve-unknown-fields: true
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
+    - additionalPrinterColumns:
+        - description: Compatibility of the engine image
+          jsonPath: .status.incompatible
+          name: Incompatible
+          type: boolean
+        - description: State of the engine image
+          jsonPath: .status.state
+          name: State
+          type: string
+        - description: The Longhorn engine image
+          jsonPath: .spec.image
+          name: Image
+          type: string
+        - description: Number of resources using the engine image
+          jsonPath: .status.refCount
+          name: RefCount
+          type: integer
+        - description: The build date of the engine image
+          jsonPath: .status.buildDate
+          name: BuildDate
+          type: date
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description: EngineImage is where Longhorn stores engine image object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description:
+                EngineImageSpec defines the desired state of the Longhorn
+                engine image
+              properties:
+                image:
+                  minLength: 1
+                  type: string
+              required:
+                - image
+              type: object
+            status:
+              description:
+                EngineImageStatus defines the observed state of the Longhorn
+                engine image
+              properties:
+                buildDate:
+                  type: string
+                cliAPIMinVersion:
+                  type: integer
+                cliAPIVersion:
+                  type: integer
+                conditions:
+                  items:
+                    properties:
+                      lastProbeTime:
+                        description: Last time we probed the condition.
+                        type: string
+                      lastTransitionTime:
+                        description:
+                          Last time the condition transitioned from one status
+                          to another.
+                        type: string
+                      message:
+                        description:
+                          Human-readable message indicating details about
+                          last transition.
+                        type: string
+                      reason:
+                        description:
+                          Unique, one-word, CamelCase reason for the condition's
+                          last transition.
+                        type: string
+                      status:
+                        description: |-
+                          Status is the status of the condition.
+                          Can be True, False, Unknown.
+                        type: string
+                      type:
+                        description: Type is the type of the condition.
+                        type: string
+                    type: object
+                  nullable: true
+                  type: array
+                controllerAPIMinVersion:
+                  type: integer
+                controllerAPIVersion:
+                  type: integer
+                dataFormatMinVersion:
+                  type: integer
+                dataFormatVersion:
+                  type: integer
+                gitCommit:
+                  type: string
+                incompatible:
                   type: boolean
-                nullable: true
-                type: object
-              ownerID:
-                type: string
-              refCount:
-                type: integer
-              state:
-                type: string
-              version:
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+                noRefSince:
+                  type: string
+                nodeDeploymentMap:
+                  additionalProperties:
+                    type: boolean
+                  nullable: true
+                  type: object
+                ownerID:
+                  type: string
+                refCount:
+                  type: integer
+                state:
+                  type: string
+                version:
+                  type: string
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -1807,386 +1818,389 @@ spec:
     listKind: EngineList
     plural: engines
     shortNames:
-    - lhe
+      - lhe
     singular: engine
   preserveUnknownFields: false
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: The current state of the engine
-      jsonPath: .status.currentState
-      name: State
-      type: string
-    - description: The node that the engine is on
-      jsonPath: .spec.nodeID
-      name: Node
-      type: string
-    - description: The instance manager of the engine
-      jsonPath: .status.instanceManagerName
-      name: InstanceManager
-      type: string
-    - description: The current image of the engine
-      jsonPath: .status.currentImage
-      name: Image
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta1
-    schema:
-      openAPIV3Schema:
-        description: Engine is where Longhorn stores engine object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            x-kubernetes-preserve-unknown-fields: true
-          status:
-            x-kubernetes-preserve-unknown-fields: true
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
-  - additionalPrinterColumns:
-    - description: The data engine of the engine
-      jsonPath: .spec.dataEngine
-      name: Data Engine
-      type: string
-    - description: The current state of the engine
-      jsonPath: .status.currentState
-      name: State
-      type: string
-    - description: The node that the engine is on
-      jsonPath: .spec.nodeID
-      name: Node
-      type: string
-    - description: The instance manager of the engine
-      jsonPath: .status.instanceManagerName
-      name: InstanceManager
-      type: string
-    - description: The current image of the engine
-      jsonPath: .status.currentImage
-      name: Image
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: Engine is where Longhorn stores engine object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: EngineSpec defines the desired state of the Longhorn engine
-            properties:
-              active:
-                type: boolean
-              backendStoreDriver:
-                description: Deprecated:Replaced by field `dataEngine`.
-                type: string
-              backupVolume:
-                type: string
-              dataEngine:
-                enum:
-                - v1
-                - v2
-                type: string
-              desireState:
-                type: string
-              disableFrontend:
-                type: boolean
-              engineImage:
-                description: 'Deprecated: Replaced by field `image`.'
-                type: string
-              frontend:
-                enum:
-                - blockdev
-                - iscsi
-                - nvmf
-                - ""
-                type: string
-              image:
-                type: string
-              logRequested:
-                type: boolean
-              nodeID:
-                type: string
-              replicaAddressMap:
-                additionalProperties:
+    - additionalPrinterColumns:
+        - description: The current state of the engine
+          jsonPath: .status.currentState
+          name: State
+          type: string
+        - description: The node that the engine is on
+          jsonPath: .spec.nodeID
+          name: Node
+          type: string
+        - description: The instance manager of the engine
+          jsonPath: .status.instanceManagerName
+          name: InstanceManager
+          type: string
+        - description: The current image of the engine
+          jsonPath: .status.currentImage
+          name: Image
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta1
+      schema:
+        openAPIV3Schema:
+          description: Engine is where Longhorn stores engine object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              x-kubernetes-preserve-unknown-fields: true
+            status:
+              x-kubernetes-preserve-unknown-fields: true
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
+    - additionalPrinterColumns:
+        - description: The data engine of the engine
+          jsonPath: .spec.dataEngine
+          name: Data Engine
+          type: string
+        - description: The current state of the engine
+          jsonPath: .status.currentState
+          name: State
+          type: string
+        - description: The node that the engine is on
+          jsonPath: .spec.nodeID
+          name: Node
+          type: string
+        - description: The instance manager of the engine
+          jsonPath: .status.instanceManagerName
+          name: InstanceManager
+          type: string
+        - description: The current image of the engine
+          jsonPath: .status.currentImage
+          name: Image
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description: Engine is where Longhorn stores engine object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description: EngineSpec defines the desired state of the Longhorn engine
+              properties:
+                active:
+                  type: boolean
+                backendStoreDriver:
+                  description: Deprecated:Replaced by field `dataEngine`.
                   type: string
-                type: object
-              requestedBackupRestore:
-                type: string
-              requestedDataSource:
-                type: string
-              revisionCounterDisabled:
-                type: boolean
-              salvageRequested:
-                type: boolean
-              snapshotMaxCount:
-                type: integer
-              snapshotMaxSize:
-                format: int64
-                type: string
-              unmapMarkSnapChainRemovedEnabled:
-                type: boolean
-              upgradedReplicaAddressMap:
-                additionalProperties:
+                backupVolume:
                   type: string
-                type: object
-              volumeName:
-                type: string
-              volumeSize:
-                format: int64
-                type: string
-            type: object
-          status:
-            description: EngineStatus defines the observed state of the Longhorn engine
-            properties:
-              backupStatus:
-                additionalProperties:
-                  properties:
-                    backupURL:
-                      type: string
-                    error:
-                      type: string
-                    progress:
-                      type: integer
-                    replicaAddress:
-                      type: string
-                    snapshotName:
-                      type: string
-                    state:
-                      type: string
-                  type: object
-                nullable: true
-                type: object
-              cloneStatus:
-                additionalProperties:
-                  properties:
-                    error:
-                      type: string
-                    fromReplicaAddress:
-                      type: string
-                    isCloning:
-                      type: boolean
-                    progress:
-                      type: integer
-                    snapshotName:
-                      type: string
-                    state:
-                      type: string
-                  type: object
-                nullable: true
-                type: object
-              conditions:
-                items:
-                  properties:
-                    lastProbeTime:
-                      description: Last time we probed the condition.
-                      type: string
-                    lastTransitionTime:
-                      description: Last time the condition transitioned from one status
-                        to another.
-                      type: string
-                    message:
-                      description: Human-readable message indicating details about
-                        last transition.
-                      type: string
-                    reason:
-                      description: Unique, one-word, CamelCase reason for the condition's
-                        last transition.
-                      type: string
-                    status:
-                      description: |-
-                        Status is the status of the condition.
-                        Can be True, False, Unknown.
-                      type: string
-                    type:
-                      description: Type is the type of the condition.
-                      type: string
-                  type: object
-                nullable: true
-                type: array
-              currentImage:
-                type: string
-              currentReplicaAddressMap:
-                additionalProperties:
+                dataEngine:
+                  enum:
+                    - v1
+                    - v2
                   type: string
-                nullable: true
-                type: object
-              currentSize:
-                format: int64
-                type: string
-              currentState:
-                type: string
-              endpoint:
-                type: string
-              instanceManagerName:
-                type: string
-              ip:
-                type: string
-              isExpanding:
-                type: boolean
-              lastExpansionError:
-                type: string
-              lastExpansionFailedAt:
-                type: string
-              lastRestoredBackup:
-                type: string
-              logFetched:
-                type: boolean
-              ownerID:
-                type: string
-              port:
-                type: integer
-              purgeStatus:
-                additionalProperties:
-                  properties:
-                    error:
-                      type: string
-                    isPurging:
-                      type: boolean
-                    progress:
-                      type: integer
-                    state:
-                      type: string
-                  type: object
-                nullable: true
-                type: object
-              rebuildStatus:
-                additionalProperties:
-                  properties:
-                    error:
-                      type: string
-                    fromReplicaAddress:
-                      type: string
-                    isRebuilding:
-                      type: boolean
-                    progress:
-                      type: integer
-                    state:
-                      type: string
-                  type: object
-                nullable: true
-                type: object
-              replicaModeMap:
-                additionalProperties:
+                desireState:
                   type: string
-                nullable: true
-                type: object
-              replicaTransitionTimeMap:
-                additionalProperties:
+                disableFrontend:
+                  type: boolean
+                engineImage:
+                  description: "Deprecated: Replaced by field `image`."
                   type: string
-                description: |-
-                  ReplicaTransitionTimeMap records the time a replica in ReplicaModeMap transitions from one mode to another (or
-                  from not being in the ReplicaModeMap to being in it). This information is sometimes required by other controllers
-                  (e.g. the volume controller uses it to determine the correct value for replica.Spec.lastHealthyAt).
-                type: object
-              restoreStatus:
-                additionalProperties:
-                  properties:
-                    backupURL:
-                      type: string
-                    currentRestoringBackup:
-                      type: string
-                    error:
-                      type: string
-                    filename:
-                      type: string
-                    isRestoring:
-                      type: boolean
-                    lastRestored:
-                      type: string
-                    progress:
-                      type: integer
-                    state:
-                      type: string
+                frontend:
+                  enum:
+                    - blockdev
+                    - iscsi
+                    - nvmf
+                    - ""
+                  type: string
+                image:
+                  type: string
+                logRequested:
+                  type: boolean
+                nodeID:
+                  type: string
+                replicaAddressMap:
+                  additionalProperties:
+                    type: string
                   type: object
-                nullable: true
-                type: object
-              salvageExecuted:
-                type: boolean
-              snapshotMaxCount:
-                type: integer
-              snapshotMaxSize:
-                format: int64
-                type: string
-              snapshots:
-                additionalProperties:
-                  properties:
-                    children:
-                      additionalProperties:
-                        type: boolean
-                      nullable: true
-                      type: object
-                    created:
-                      type: string
-                    labels:
-                      additionalProperties:
+                requestedBackupRestore:
+                  type: string
+                requestedDataSource:
+                  type: string
+                revisionCounterDisabled:
+                  type: boolean
+                salvageRequested:
+                  type: boolean
+                snapshotMaxCount:
+                  type: integer
+                snapshotMaxSize:
+                  format: int64
+                  type: string
+                unmapMarkSnapChainRemovedEnabled:
+                  type: boolean
+                upgradedReplicaAddressMap:
+                  additionalProperties:
+                    type: string
+                  type: object
+                volumeName:
+                  type: string
+                volumeSize:
+                  format: int64
+                  type: string
+              type: object
+            status:
+              description: EngineStatus defines the observed state of the Longhorn engine
+              properties:
+                backupStatus:
+                  additionalProperties:
+                    properties:
+                      backupURL:
                         type: string
-                      nullable: true
-                      type: object
-                    name:
-                      type: string
-                    parent:
-                      type: string
-                    removed:
-                      type: boolean
-                    size:
-                      type: string
-                    usercreated:
-                      type: boolean
+                      error:
+                        type: string
+                      progress:
+                        type: integer
+                      replicaAddress:
+                        type: string
+                      snapshotName:
+                        type: string
+                      state:
+                        type: string
+                    type: object
+                  nullable: true
                   type: object
-                nullable: true
-                type: object
-              snapshotsError:
-                type: string
-              started:
-                type: boolean
-              storageIP:
-                type: string
-              unmapMarkSnapChainRemovedEnabled:
-                type: boolean
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+                cloneStatus:
+                  additionalProperties:
+                    properties:
+                      error:
+                        type: string
+                      fromReplicaAddress:
+                        type: string
+                      isCloning:
+                        type: boolean
+                      progress:
+                        type: integer
+                      snapshotName:
+                        type: string
+                      state:
+                        type: string
+                    type: object
+                  nullable: true
+                  type: object
+                conditions:
+                  items:
+                    properties:
+                      lastProbeTime:
+                        description: Last time we probed the condition.
+                        type: string
+                      lastTransitionTime:
+                        description:
+                          Last time the condition transitioned from one status
+                          to another.
+                        type: string
+                      message:
+                        description:
+                          Human-readable message indicating details about
+                          last transition.
+                        type: string
+                      reason:
+                        description:
+                          Unique, one-word, CamelCase reason for the condition's
+                          last transition.
+                        type: string
+                      status:
+                        description: |-
+                          Status is the status of the condition.
+                          Can be True, False, Unknown.
+                        type: string
+                      type:
+                        description: Type is the type of the condition.
+                        type: string
+                    type: object
+                  nullable: true
+                  type: array
+                currentImage:
+                  type: string
+                currentReplicaAddressMap:
+                  additionalProperties:
+                    type: string
+                  nullable: true
+                  type: object
+                currentSize:
+                  format: int64
+                  type: string
+                currentState:
+                  type: string
+                endpoint:
+                  type: string
+                instanceManagerName:
+                  type: string
+                ip:
+                  type: string
+                isExpanding:
+                  type: boolean
+                lastExpansionError:
+                  type: string
+                lastExpansionFailedAt:
+                  type: string
+                lastRestoredBackup:
+                  type: string
+                logFetched:
+                  type: boolean
+                ownerID:
+                  type: string
+                port:
+                  type: integer
+                purgeStatus:
+                  additionalProperties:
+                    properties:
+                      error:
+                        type: string
+                      isPurging:
+                        type: boolean
+                      progress:
+                        type: integer
+                      state:
+                        type: string
+                    type: object
+                  nullable: true
+                  type: object
+                rebuildStatus:
+                  additionalProperties:
+                    properties:
+                      error:
+                        type: string
+                      fromReplicaAddress:
+                        type: string
+                      isRebuilding:
+                        type: boolean
+                      progress:
+                        type: integer
+                      state:
+                        type: string
+                    type: object
+                  nullable: true
+                  type: object
+                replicaModeMap:
+                  additionalProperties:
+                    type: string
+                  nullable: true
+                  type: object
+                replicaTransitionTimeMap:
+                  additionalProperties:
+                    type: string
+                  description: |-
+                    ReplicaTransitionTimeMap records the time a replica in ReplicaModeMap transitions from one mode to another (or
+                    from not being in the ReplicaModeMap to being in it). This information is sometimes required by other controllers
+                    (e.g. the volume controller uses it to determine the correct value for replica.Spec.lastHealthyAt).
+                  type: object
+                restoreStatus:
+                  additionalProperties:
+                    properties:
+                      backupURL:
+                        type: string
+                      currentRestoringBackup:
+                        type: string
+                      error:
+                        type: string
+                      filename:
+                        type: string
+                      isRestoring:
+                        type: boolean
+                      lastRestored:
+                        type: string
+                      progress:
+                        type: integer
+                      state:
+                        type: string
+                    type: object
+                  nullable: true
+                  type: object
+                salvageExecuted:
+                  type: boolean
+                snapshotMaxCount:
+                  type: integer
+                snapshotMaxSize:
+                  format: int64
+                  type: string
+                snapshots:
+                  additionalProperties:
+                    properties:
+                      children:
+                        additionalProperties:
+                          type: boolean
+                        nullable: true
+                        type: object
+                      created:
+                        type: string
+                      labels:
+                        additionalProperties:
+                          type: string
+                        nullable: true
+                        type: object
+                      name:
+                        type: string
+                      parent:
+                        type: string
+                      removed:
+                        type: boolean
+                      size:
+                        type: string
+                      usercreated:
+                        type: boolean
+                    type: object
+                  nullable: true
+                  type: object
+                snapshotsError:
+                  type: string
+                started:
+                  type: boolean
+                storageIP:
+                  type: string
+                unmapMarkSnapChainRemovedEnabled:
+                  type: boolean
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -2209,328 +2223,330 @@ spec:
     listKind: InstanceManagerList
     plural: instancemanagers
     shortNames:
-    - lhim
+      - lhim
     singular: instancemanager
   preserveUnknownFields: false
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: The state of the instance manager
-      jsonPath: .status.currentState
-      name: State
-      type: string
-    - description: The type of the instance manager (engine or replica)
-      jsonPath: .spec.type
-      name: Type
-      type: string
-    - description: The node that the instance manager is running on
-      jsonPath: .spec.nodeID
-      name: Node
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta1
-    schema:
-      openAPIV3Schema:
-        description: InstanceManager is where Longhorn stores instance manager object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            x-kubernetes-preserve-unknown-fields: true
-          status:
-            x-kubernetes-preserve-unknown-fields: true
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
-  - additionalPrinterColumns:
-    - description: The data engine of the instance manager
-      jsonPath: .spec.dataEngine
-      name: Data Engine
-      type: string
-    - description: The state of the instance manager
-      jsonPath: .status.currentState
-      name: State
-      type: string
-    - description: The type of the instance manager (engine or replica)
-      jsonPath: .spec.type
-      name: Type
-      type: string
-    - description: The node that the instance manager is running on
-      jsonPath: .spec.nodeID
-      name: Node
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: InstanceManager is where Longhorn stores instance manager object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: InstanceManagerSpec defines the desired state of the Longhorn
-              instance manager
-            properties:
-              dataEngine:
-                type: string
-              dataEngineSpec:
-                properties:
-                  v2:
+    - additionalPrinterColumns:
+        - description: The state of the instance manager
+          jsonPath: .status.currentState
+          name: State
+          type: string
+        - description: The type of the instance manager (engine or replica)
+          jsonPath: .spec.type
+          name: Type
+          type: string
+        - description: The node that the instance manager is running on
+          jsonPath: .spec.nodeID
+          name: Node
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta1
+      schema:
+        openAPIV3Schema:
+          description: InstanceManager is where Longhorn stores instance manager object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              x-kubernetes-preserve-unknown-fields: true
+            status:
+              x-kubernetes-preserve-unknown-fields: true
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
+    - additionalPrinterColumns:
+        - description: The data engine of the instance manager
+          jsonPath: .spec.dataEngine
+          name: Data Engine
+          type: string
+        - description: The state of the instance manager
+          jsonPath: .status.currentState
+          name: State
+          type: string
+        - description: The type of the instance manager (engine or replica)
+          jsonPath: .spec.type
+          name: Type
+          type: string
+        - description: The node that the instance manager is running on
+          jsonPath: .spec.nodeID
+          name: Node
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description: InstanceManager is where Longhorn stores instance manager object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description:
+                InstanceManagerSpec defines the desired state of the Longhorn
+                instance manager
+              properties:
+                dataEngine:
+                  type: string
+                dataEngineSpec:
+                  properties:
+                    v2:
+                      properties:
+                        cpuMask:
+                          type: string
+                      type: object
+                  type: object
+                image:
+                  type: string
+                nodeID:
+                  type: string
+                type:
+                  enum:
+                    - aio
+                    - engine
+                    - replica
+                  type: string
+              type: object
+            status:
+              description:
+                InstanceManagerStatus defines the observed state of the Longhorn
+                instance manager
+              properties:
+                apiMinVersion:
+                  type: integer
+                apiVersion:
+                  type: integer
+                backingImages:
+                  additionalProperties:
                     properties:
-                      cpuMask:
+                      currentChecksum:
+                        type: string
+                      diskUUID:
+                        type: string
+                      message:
+                        type: string
+                      name:
+                        type: string
+                      progress:
+                        type: integer
+                      size:
+                        format: int64
+                        type: integer
+                      state:
+                        type: string
+                      uuid:
                         type: string
                     type: object
-                type: object
-              image:
-                type: string
-              nodeID:
-                type: string
-              type:
-                enum:
-                - aio
-                - engine
-                - replica
-                type: string
-            type: object
-          status:
-            description: InstanceManagerStatus defines the observed state of the Longhorn
-              instance manager
-            properties:
-              apiMinVersion:
-                type: integer
-              apiVersion:
-                type: integer
-              backingImages:
-                additionalProperties:
-                  properties:
-                    currentChecksum:
-                      type: string
-                    diskUUID:
-                      type: string
-                    message:
-                      type: string
-                    name:
-                      type: string
-                    progress:
-                      type: integer
-                    size:
-                      format: int64
-                      type: integer
-                    state:
-                      type: string
-                    uuid:
-                      type: string
+                  nullable: true
                   type: object
-                nullable: true
-                type: object
-              currentState:
-                type: string
-              dataEngineStatus:
-                properties:
-                  v2:
+                currentState:
+                  type: string
+                dataEngineStatus:
+                  properties:
+                    v2:
+                      properties:
+                        cpuMask:
+                          type: string
+                      type: object
+                  type: object
+                instanceEngines:
+                  additionalProperties:
                     properties:
-                      cpuMask:
-                        type: string
+                      spec:
+                        properties:
+                          backendStoreDriver:
+                            description: Deprecated:Replaced by field `dataEngine`.
+                            type: string
+                          dataEngine:
+                            type: string
+                          name:
+                            type: string
+                        type: object
+                      status:
+                        properties:
+                          conditions:
+                            additionalProperties:
+                              type: boolean
+                            nullable: true
+                            type: object
+                          endpoint:
+                            type: string
+                          errorMsg:
+                            type: string
+                          listen:
+                            type: string
+                          portEnd:
+                            format: int32
+                            type: integer
+                          portStart:
+                            format: int32
+                            type: integer
+                          resourceVersion:
+                            format: int64
+                            type: integer
+                          state:
+                            type: string
+                          targetPortEnd:
+                            format: int32
+                            type: integer
+                          targetPortStart:
+                            format: int32
+                            type: integer
+                          type:
+                            type: string
+                        type: object
                     type: object
-                type: object
-              instanceEngines:
-                additionalProperties:
-                  properties:
-                    spec:
-                      properties:
-                        backendStoreDriver:
-                          description: Deprecated:Replaced by field `dataEngine`.
-                          type: string
-                        dataEngine:
-                          type: string
-                        name:
-                          type: string
-                      type: object
-                    status:
-                      properties:
-                        conditions:
-                          additionalProperties:
-                            type: boolean
-                          nullable: true
-                          type: object
-                        endpoint:
-                          type: string
-                        errorMsg:
-                          type: string
-                        listen:
-                          type: string
-                        portEnd:
-                          format: int32
-                          type: integer
-                        portStart:
-                          format: int32
-                          type: integer
-                        resourceVersion:
-                          format: int64
-                          type: integer
-                        state:
-                          type: string
-                        targetPortEnd:
-                          format: int32
-                          type: integer
-                        targetPortStart:
-                          format: int32
-                          type: integer
-                        type:
-                          type: string
-                      type: object
+                  nullable: true
                   type: object
-                nullable: true
-                type: object
-              instanceReplicas:
-                additionalProperties:
-                  properties:
-                    spec:
-                      properties:
-                        backendStoreDriver:
-                          description: Deprecated:Replaced by field `dataEngine`.
-                          type: string
-                        dataEngine:
-                          type: string
-                        name:
-                          type: string
-                      type: object
-                    status:
-                      properties:
-                        conditions:
-                          additionalProperties:
-                            type: boolean
-                          nullable: true
-                          type: object
-                        endpoint:
-                          type: string
-                        errorMsg:
-                          type: string
-                        listen:
-                          type: string
-                        portEnd:
-                          format: int32
-                          type: integer
-                        portStart:
-                          format: int32
-                          type: integer
-                        resourceVersion:
-                          format: int64
-                          type: integer
-                        state:
-                          type: string
-                        targetPortEnd:
-                          format: int32
-                          type: integer
-                        targetPortStart:
-                          format: int32
-                          type: integer
-                        type:
-                          type: string
-                      type: object
+                instanceReplicas:
+                  additionalProperties:
+                    properties:
+                      spec:
+                        properties:
+                          backendStoreDriver:
+                            description: Deprecated:Replaced by field `dataEngine`.
+                            type: string
+                          dataEngine:
+                            type: string
+                          name:
+                            type: string
+                        type: object
+                      status:
+                        properties:
+                          conditions:
+                            additionalProperties:
+                              type: boolean
+                            nullable: true
+                            type: object
+                          endpoint:
+                            type: string
+                          errorMsg:
+                            type: string
+                          listen:
+                            type: string
+                          portEnd:
+                            format: int32
+                            type: integer
+                          portStart:
+                            format: int32
+                            type: integer
+                          resourceVersion:
+                            format: int64
+                            type: integer
+                          state:
+                            type: string
+                          targetPortEnd:
+                            format: int32
+                            type: integer
+                          targetPortStart:
+                            format: int32
+                            type: integer
+                          type:
+                            type: string
+                        type: object
+                    type: object
+                  nullable: true
                   type: object
-                nullable: true
-                type: object
-              instances:
-                additionalProperties:
-                  properties:
-                    spec:
-                      properties:
-                        backendStoreDriver:
-                          description: Deprecated:Replaced by field `dataEngine`.
-                          type: string
-                        dataEngine:
-                          type: string
-                        name:
-                          type: string
-                      type: object
-                    status:
-                      properties:
-                        conditions:
-                          additionalProperties:
-                            type: boolean
-                          nullable: true
-                          type: object
-                        endpoint:
-                          type: string
-                        errorMsg:
-                          type: string
-                        listen:
-                          type: string
-                        portEnd:
-                          format: int32
-                          type: integer
-                        portStart:
-                          format: int32
-                          type: integer
-                        resourceVersion:
-                          format: int64
-                          type: integer
-                        state:
-                          type: string
-                        targetPortEnd:
-                          format: int32
-                          type: integer
-                        targetPortStart:
-                          format: int32
-                          type: integer
-                        type:
-                          type: string
-                      type: object
+                instances:
+                  additionalProperties:
+                    properties:
+                      spec:
+                        properties:
+                          backendStoreDriver:
+                            description: Deprecated:Replaced by field `dataEngine`.
+                            type: string
+                          dataEngine:
+                            type: string
+                          name:
+                            type: string
+                        type: object
+                      status:
+                        properties:
+                          conditions:
+                            additionalProperties:
+                              type: boolean
+                            nullable: true
+                            type: object
+                          endpoint:
+                            type: string
+                          errorMsg:
+                            type: string
+                          listen:
+                            type: string
+                          portEnd:
+                            format: int32
+                            type: integer
+                          portStart:
+                            format: int32
+                            type: integer
+                          resourceVersion:
+                            format: int64
+                            type: integer
+                          state:
+                            type: string
+                          targetPortEnd:
+                            format: int32
+                            type: integer
+                          targetPortStart:
+                            format: int32
+                            type: integer
+                          type:
+                            type: string
+                        type: object
+                    type: object
+                  description: "Deprecated: Replaced by InstanceEngines and InstanceReplicas"
+                  nullable: true
                   type: object
-                description: 'Deprecated: Replaced by InstanceEngines and InstanceReplicas'
-                nullable: true
-                type: object
-              ip:
-                type: string
-              ownerID:
-                type: string
-              proxyApiMinVersion:
-                type: integer
-              proxyApiVersion:
-                type: integer
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+                ip:
+                  type: string
+                ownerID:
+                  type: string
+                proxyApiMinVersion:
+                  type: integer
+                proxyApiVersion:
+                  type: integer
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -2557,271 +2573,279 @@ spec:
           path: /v1/webhook/conversion
           port: 9501
       conversionReviewVersions:
-      - v1beta2
-      - v1beta1
+        - v1beta2
+        - v1beta1
   group: longhorn.io
   names:
     kind: Node
     listKind: NodeList
     plural: nodes
     shortNames:
-    - lhn
+      - lhn
     singular: node
   preserveUnknownFields: false
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: Indicate whether the node is ready
-      jsonPath: .status.conditions['Ready']['status']
-      name: Ready
-      type: string
-    - description: Indicate whether the user disabled/enabled replica scheduling for
-        the node
-      jsonPath: .spec.allowScheduling
-      name: AllowScheduling
-      type: boolean
-    - description: Indicate whether Longhorn can schedule replicas on the node
-      jsonPath: .status.conditions['Schedulable']['status']
-      name: Schedulable
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta1
-    schema:
-      openAPIV3Schema:
-        description: Node is where Longhorn stores Longhorn node object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            x-kubernetes-preserve-unknown-fields: true
-          status:
-            x-kubernetes-preserve-unknown-fields: true
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
-  - additionalPrinterColumns:
-    - description: Indicate whether the node is ready
-      jsonPath: .status.conditions[?(@.type=='Ready')].status
-      name: Ready
-      type: string
-    - description: Indicate whether the user disabled/enabled replica scheduling for
-        the node
-      jsonPath: .spec.allowScheduling
-      name: AllowScheduling
-      type: boolean
-    - description: Indicate whether Longhorn can schedule replicas on the node
-      jsonPath: .status.conditions[?(@.type=='Schedulable')].status
-      name: Schedulable
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: Node is where Longhorn stores Longhorn node object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: NodeSpec defines the desired state of the Longhorn node
-            properties:
-              allowScheduling:
-                type: boolean
-              disks:
-                additionalProperties:
-                  properties:
-                    allowScheduling:
-                      type: boolean
-                    diskDriver:
-                      enum:
-                      - ""
-                      - auto
-                      - aio
-                      type: string
-                    diskType:
-                      enum:
-                      - filesystem
-                      - block
-                      type: string
-                    evictionRequested:
-                      type: boolean
-                    path:
-                      type: string
-                    storageReserved:
-                      format: int64
-                      type: integer
-                    tags:
-                      items:
+    - additionalPrinterColumns:
+        - description: Indicate whether the node is ready
+          jsonPath: .status.conditions['Ready']['status']
+          name: Ready
+          type: string
+        - description:
+            Indicate whether the user disabled/enabled replica scheduling for
+            the node
+          jsonPath: .spec.allowScheduling
+          name: AllowScheduling
+          type: boolean
+        - description: Indicate whether Longhorn can schedule replicas on the node
+          jsonPath: .status.conditions['Schedulable']['status']
+          name: Schedulable
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta1
+      schema:
+        openAPIV3Schema:
+          description: Node is where Longhorn stores Longhorn node object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              x-kubernetes-preserve-unknown-fields: true
+            status:
+              x-kubernetes-preserve-unknown-fields: true
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
+    - additionalPrinterColumns:
+        - description: Indicate whether the node is ready
+          jsonPath: .status.conditions[?(@.type=='Ready')].status
+          name: Ready
+          type: string
+        - description:
+            Indicate whether the user disabled/enabled replica scheduling for
+            the node
+          jsonPath: .spec.allowScheduling
+          name: AllowScheduling
+          type: boolean
+        - description: Indicate whether Longhorn can schedule replicas on the node
+          jsonPath: .status.conditions[?(@.type=='Schedulable')].status
+          name: Schedulable
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description: Node is where Longhorn stores Longhorn node object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description: NodeSpec defines the desired state of the Longhorn node
+              properties:
+                allowScheduling:
+                  type: boolean
+                disks:
+                  additionalProperties:
+                    properties:
+                      allowScheduling:
+                        type: boolean
+                      diskDriver:
+                        enum:
+                          - ""
+                          - auto
+                          - aio
                         type: string
-                      type: array
+                      diskType:
+                        enum:
+                          - filesystem
+                          - block
+                        type: string
+                      evictionRequested:
+                        type: boolean
+                      path:
+                        type: string
+                      storageReserved:
+                        format: int64
+                        type: integer
+                      tags:
+                        items:
+                          type: string
+                        type: array
+                    type: object
                   type: object
-                type: object
-              evictionRequested:
-                type: boolean
-              instanceManagerCPURequest:
-                type: integer
-              name:
-                type: string
-              tags:
-                items:
+                evictionRequested:
+                  type: boolean
+                instanceManagerCPURequest:
+                  type: integer
+                name:
                   type: string
-                type: array
-            type: object
-          status:
-            description: NodeStatus defines the observed state of the Longhorn node
-            properties:
-              autoEvicting:
-                type: boolean
-              conditions:
-                items:
-                  properties:
-                    lastProbeTime:
-                      description: Last time we probed the condition.
-                      type: string
-                    lastTransitionTime:
-                      description: Last time the condition transitioned from one status
-                        to another.
-                      type: string
-                    message:
-                      description: Human-readable message indicating details about
-                        last transition.
-                      type: string
-                    reason:
-                      description: Unique, one-word, CamelCase reason for the condition's
-                        last transition.
-                      type: string
-                    status:
-                      description: |-
-                        Status is the status of the condition.
-                        Can be True, False, Unknown.
-                      type: string
-                    type:
-                      description: Type is the type of the condition.
-                      type: string
-                  type: object
-                nullable: true
-                type: array
-              diskStatus:
-                additionalProperties:
-                  properties:
-                    conditions:
-                      items:
-                        properties:
-                          lastProbeTime:
-                            description: Last time we probed the condition.
-                            type: string
-                          lastTransitionTime:
-                            description: Last time the condition transitioned from
-                              one status to another.
-                            type: string
-                          message:
-                            description: Human-readable message indicating details
-                              about last transition.
-                            type: string
-                          reason:
-                            description: Unique, one-word, CamelCase reason for the
-                              condition's last transition.
-                            type: string
-                          status:
-                            description: |-
-                              Status is the status of the condition.
-                              Can be True, False, Unknown.
-                            type: string
-                          type:
-                            description: Type is the type of the condition.
-                            type: string
-                        type: object
-                      nullable: true
-                      type: array
-                    diskDriver:
-                      type: string
-                    diskName:
-                      type: string
-                    diskPath:
-                      type: string
-                    diskType:
-                      type: string
-                    diskUUID:
-                      type: string
-                    filesystemType:
-                      type: string
-                    instanceManagerName:
-                      type: string
-                    scheduledBackingImage:
-                      additionalProperties:
-                        format: int64
-                        type: integer
-                      nullable: true
-                      type: object
-                    scheduledReplica:
-                      additionalProperties:
-                        format: int64
-                        type: integer
-                      nullable: true
-                      type: object
-                    storageAvailable:
-                      format: int64
-                      type: integer
-                    storageMaximum:
-                      format: int64
-                      type: integer
-                    storageScheduled:
-                      format: int64
-                      type: integer
-                  type: object
-                nullable: true
-                type: object
-              region:
-                type: string
-              snapshotCheckStatus:
-                properties:
-                  lastPeriodicCheckedAt:
-                    format: date-time
+                tags:
+                  items:
                     type: string
-                type: object
-              zone:
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+                  type: array
+              type: object
+            status:
+              description: NodeStatus defines the observed state of the Longhorn node
+              properties:
+                autoEvicting:
+                  type: boolean
+                conditions:
+                  items:
+                    properties:
+                      lastProbeTime:
+                        description: Last time we probed the condition.
+                        type: string
+                      lastTransitionTime:
+                        description:
+                          Last time the condition transitioned from one status
+                          to another.
+                        type: string
+                      message:
+                        description:
+                          Human-readable message indicating details about
+                          last transition.
+                        type: string
+                      reason:
+                        description:
+                          Unique, one-word, CamelCase reason for the condition's
+                          last transition.
+                        type: string
+                      status:
+                        description: |-
+                          Status is the status of the condition.
+                          Can be True, False, Unknown.
+                        type: string
+                      type:
+                        description: Type is the type of the condition.
+                        type: string
+                    type: object
+                  nullable: true
+                  type: array
+                diskStatus:
+                  additionalProperties:
+                    properties:
+                      conditions:
+                        items:
+                          properties:
+                            lastProbeTime:
+                              description: Last time we probed the condition.
+                              type: string
+                            lastTransitionTime:
+                              description:
+                                Last time the condition transitioned from
+                                one status to another.
+                              type: string
+                            message:
+                              description:
+                                Human-readable message indicating details
+                                about last transition.
+                              type: string
+                            reason:
+                              description:
+                                Unique, one-word, CamelCase reason for the
+                                condition's last transition.
+                              type: string
+                            status:
+                              description: |-
+                                Status is the status of the condition.
+                                Can be True, False, Unknown.
+                              type: string
+                            type:
+                              description: Type is the type of the condition.
+                              type: string
+                          type: object
+                        nullable: true
+                        type: array
+                      diskDriver:
+                        type: string
+                      diskName:
+                        type: string
+                      diskPath:
+                        type: string
+                      diskType:
+                        type: string
+                      diskUUID:
+                        type: string
+                      filesystemType:
+                        type: string
+                      instanceManagerName:
+                        type: string
+                      scheduledBackingImage:
+                        additionalProperties:
+                          format: int64
+                          type: integer
+                        nullable: true
+                        type: object
+                      scheduledReplica:
+                        additionalProperties:
+                          format: int64
+                          type: integer
+                        nullable: true
+                        type: object
+                      storageAvailable:
+                        format: int64
+                        type: integer
+                      storageMaximum:
+                        format: int64
+                        type: integer
+                      storageScheduled:
+                        format: int64
+                        type: integer
+                    type: object
+                  nullable: true
+                  type: object
+                region:
+                  type: string
+                snapshotCheckStatus:
+                  properties:
+                    lastPeriodicCheckedAt:
+                      format: date-time
+                      type: string
+                  type: object
+                zone:
+                  type: string
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -2844,101 +2868,107 @@ spec:
     listKind: OrphanList
     plural: orphans
     shortNames:
-    - lho
+      - lho
     singular: orphan
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: The type of the orphan
-      jsonPath: .spec.orphanType
-      name: Type
-      type: string
-    - description: The node that the orphan is on
-      jsonPath: .spec.nodeID
-      name: Node
-      type: string
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: Orphan is where Longhorn stores orphan object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: OrphanSpec defines the desired state of the Longhorn orphaned
-              data
-            properties:
-              nodeID:
-                description: The node ID on which the controller is responsible to
-                  reconcile this orphan CR.
-                type: string
-              orphanType:
-                description: |-
-                  The type of the orphaned data.
-                  Can be "replica".
-                type: string
-              parameters:
-                additionalProperties:
+    - additionalPrinterColumns:
+        - description: The type of the orphan
+          jsonPath: .spec.orphanType
+          name: Type
+          type: string
+        - description: The node that the orphan is on
+          jsonPath: .spec.nodeID
+          name: Node
+          type: string
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description: Orphan is where Longhorn stores orphan object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description:
+                OrphanSpec defines the desired state of the Longhorn orphaned
+                data
+              properties:
+                nodeID:
+                  description:
+                    The node ID on which the controller is responsible to
+                    reconcile this orphan CR.
                   type: string
-                description: The parameters of the orphaned data
-                type: object
-            type: object
-          status:
-            description: OrphanStatus defines the observed state of the Longhorn orphaned
-              data
-            properties:
-              conditions:
-                items:
-                  properties:
-                    lastProbeTime:
-                      description: Last time we probed the condition.
-                      type: string
-                    lastTransitionTime:
-                      description: Last time the condition transitioned from one status
-                        to another.
-                      type: string
-                    message:
-                      description: Human-readable message indicating details about
-                        last transition.
-                      type: string
-                    reason:
-                      description: Unique, one-word, CamelCase reason for the condition's
-                        last transition.
-                      type: string
-                    status:
-                      description: |-
-                        Status is the status of the condition.
-                        Can be True, False, Unknown.
-                      type: string
-                    type:
-                      description: Type is the type of the condition.
-                      type: string
+                orphanType:
+                  description: |-
+                    The type of the orphaned data.
+                    Can be "replica".
+                  type: string
+                parameters:
+                  additionalProperties:
+                    type: string
+                  description: The parameters of the orphaned data
                   type: object
-                nullable: true
-                type: array
-              ownerID:
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+              type: object
+            status:
+              description:
+                OrphanStatus defines the observed state of the Longhorn orphaned
+                data
+              properties:
+                conditions:
+                  items:
+                    properties:
+                      lastProbeTime:
+                        description: Last time we probed the condition.
+                        type: string
+                      lastTransitionTime:
+                        description:
+                          Last time the condition transitioned from one status
+                          to another.
+                        type: string
+                      message:
+                        description:
+                          Human-readable message indicating details about
+                          last transition.
+                        type: string
+                      reason:
+                        description:
+                          Unique, one-word, CamelCase reason for the condition's
+                          last transition.
+                        type: string
+                      status:
+                        description: |-
+                          Status is the status of the condition.
+                          Can be True, False, Unknown.
+                        type: string
+                      type:
+                        description: Type is the type of the condition.
+                        type: string
+                    type: object
+                  nullable: true
+                  type: array
+                ownerID:
+                  type: string
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -2961,186 +2991,192 @@ spec:
     listKind: RecurringJobList
     plural: recurringjobs
     shortNames:
-    - lhrj
+      - lhrj
     singular: recurringjob
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: Sets groupings to the jobs. When set to "default" group will be
-        added to the volume label when no other job label exist in volume
-      jsonPath: .spec.groups
-      name: Groups
-      type: string
-    - description: Should be one of "backup" or "snapshot"
-      jsonPath: .spec.task
-      name: Task
-      type: string
-    - description: The cron expression represents recurring job scheduling
-      jsonPath: .spec.cron
-      name: Cron
-      type: string
-    - description: The number of snapshots/backups to keep for the volume
-      jsonPath: .spec.retain
-      name: Retain
-      type: integer
-    - description: The concurrent job to run by each cron job
-      jsonPath: .spec.concurrency
-      name: Concurrency
-      type: integer
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    - description: Specify the labels
-      jsonPath: .spec.labels
-      name: Labels
-      type: string
-    name: v1beta1
-    schema:
-      openAPIV3Schema:
-        description: RecurringJob is where Longhorn stores recurring job object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            x-kubernetes-preserve-unknown-fields: true
-          status:
-            x-kubernetes-preserve-unknown-fields: true
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
-  - additionalPrinterColumns:
-    - description: Sets groupings to the jobs. When set to "default" group will be
-        added to the volume label when no other job label exist in volume
-      jsonPath: .spec.groups
-      name: Groups
-      type: string
-    - description: Should be one of "snapshot", "snapshot-force-create", "snapshot-cleanup",
-        "snapshot-delete", "backup", "backup-force-create" or "filesystem-trim"
-      jsonPath: .spec.task
-      name: Task
-      type: string
-    - description: The cron expression represents recurring job scheduling
-      jsonPath: .spec.cron
-      name: Cron
-      type: string
-    - description: The number of snapshots/backups to keep for the volume
-      jsonPath: .spec.retain
-      name: Retain
-      type: integer
-    - description: The concurrent job to run by each cron job
-      jsonPath: .spec.concurrency
-      name: Concurrency
-      type: integer
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    - description: Specify the labels
-      jsonPath: .spec.labels
-      name: Labels
-      type: string
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: RecurringJob is where Longhorn stores recurring job object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: RecurringJobSpec defines the desired state of the Longhorn
-              recurring job
-            properties:
-              concurrency:
-                description: The concurrency of taking the snapshot/backup.
-                type: integer
-              cron:
-                description: The cron setting.
-                type: string
-              groups:
-                description: The recurring job group.
-                items:
+    - additionalPrinterColumns:
+        - description:
+            Sets groupings to the jobs. When set to "default" group will be
+            added to the volume label when no other job label exist in volume
+          jsonPath: .spec.groups
+          name: Groups
+          type: string
+        - description: Should be one of "backup" or "snapshot"
+          jsonPath: .spec.task
+          name: Task
+          type: string
+        - description: The cron expression represents recurring job scheduling
+          jsonPath: .spec.cron
+          name: Cron
+          type: string
+        - description: The number of snapshots/backups to keep for the volume
+          jsonPath: .spec.retain
+          name: Retain
+          type: integer
+        - description: The concurrent job to run by each cron job
+          jsonPath: .spec.concurrency
+          name: Concurrency
+          type: integer
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+        - description: Specify the labels
+          jsonPath: .spec.labels
+          name: Labels
+          type: string
+      name: v1beta1
+      schema:
+        openAPIV3Schema:
+          description: RecurringJob is where Longhorn stores recurring job object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              x-kubernetes-preserve-unknown-fields: true
+            status:
+              x-kubernetes-preserve-unknown-fields: true
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
+    - additionalPrinterColumns:
+        - description:
+            Sets groupings to the jobs. When set to "default" group will be
+            added to the volume label when no other job label exist in volume
+          jsonPath: .spec.groups
+          name: Groups
+          type: string
+        - description:
+            Should be one of "snapshot", "snapshot-force-create", "snapshot-cleanup",
+            "snapshot-delete", "backup", "backup-force-create" or "filesystem-trim"
+          jsonPath: .spec.task
+          name: Task
+          type: string
+        - description: The cron expression represents recurring job scheduling
+          jsonPath: .spec.cron
+          name: Cron
+          type: string
+        - description: The number of snapshots/backups to keep for the volume
+          jsonPath: .spec.retain
+          name: Retain
+          type: integer
+        - description: The concurrent job to run by each cron job
+          jsonPath: .spec.concurrency
+          name: Concurrency
+          type: integer
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+        - description: Specify the labels
+          jsonPath: .spec.labels
+          name: Labels
+          type: string
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description: RecurringJob is where Longhorn stores recurring job object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description:
+                RecurringJobSpec defines the desired state of the Longhorn
+                recurring job
+              properties:
+                concurrency:
+                  description: The concurrency of taking the snapshot/backup.
+                  type: integer
+                cron:
+                  description: The cron setting.
                   type: string
-                type: array
-              labels:
-                additionalProperties:
+                groups:
+                  description: The recurring job group.
+                  items:
+                    type: string
+                  type: array
+                labels:
+                  additionalProperties:
+                    type: string
+                  description: The label of the snapshot/backup.
+                  type: object
+                name:
+                  description: The recurring job name.
                   type: string
-                description: The label of the snapshot/backup.
-                type: object
-              name:
-                description: The recurring job name.
-                type: string
-              parameters:
-                additionalProperties:
+                parameters:
+                  additionalProperties:
+                    type: string
+                  description: |-
+                    The parameters of the snapshot/backup.
+                    Support parameters: "full-backup-interval".
+                  type: object
+                retain:
+                  description: The retain count of the snapshot/backup.
+                  type: integer
+                task:
+                  description: |-
+                    The recurring job task.
+                    Can be "snapshot", "snapshot-force-create", "snapshot-cleanup", "snapshot-delete", "backup", "backup-force-create" or "filesystem-trim"
+                  enum:
+                    - snapshot
+                    - snapshot-force-create
+                    - snapshot-cleanup
+                    - snapshot-delete
+                    - backup
+                    - backup-force-create
+                    - filesystem-trim
                   type: string
-                description: |-
-                  The parameters of the snapshot/backup.
-                  Support parameters: "full-backup-interval".
-                type: object
-              retain:
-                description: The retain count of the snapshot/backup.
-                type: integer
-              task:
-                description: |-
-                  The recurring job task.
-                  Can be "snapshot", "snapshot-force-create", "snapshot-cleanup", "snapshot-delete", "backup", "backup-force-create" or "filesystem-trim"
-                enum:
-                - snapshot
-                - snapshot-force-create
-                - snapshot-cleanup
-                - snapshot-delete
-                - backup
-                - backup-force-create
-                - filesystem-trim
-                type: string
-            type: object
-          status:
-            description: RecurringJobStatus defines the observed state of the Longhorn
-              recurring job
-            properties:
-              executionCount:
-                description: The number of jobs that have been triggered.
-                type: integer
-              ownerID:
-                description: The owner ID which is responsible to reconcile this recurring
-                  job CR.
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+              type: object
+            status:
+              description:
+                RecurringJobStatus defines the observed state of the Longhorn
+                recurring job
+              properties:
+                executionCount:
+                  description: The number of jobs that have been triggered.
+                  type: integer
+                ownerID:
+                  description:
+                    The owner ID which is responsible to reconcile this recurring
+                    job CR.
+                  type: string
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -3163,275 +3199,279 @@ spec:
     listKind: ReplicaList
     plural: replicas
     shortNames:
-    - lhr
+      - lhr
     singular: replica
   preserveUnknownFields: false
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: The current state of the replica
-      jsonPath: .status.currentState
-      name: State
-      type: string
-    - description: The node that the replica is on
-      jsonPath: .spec.nodeID
-      name: Node
-      type: string
-    - description: The disk that the replica is on
-      jsonPath: .spec.diskID
-      name: Disk
-      type: string
-    - description: The instance manager of the replica
-      jsonPath: .status.instanceManagerName
-      name: InstanceManager
-      type: string
-    - description: The current image of the replica
-      jsonPath: .status.currentImage
-      name: Image
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta1
-    schema:
-      openAPIV3Schema:
-        description: Replica is where Longhorn stores replica object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            x-kubernetes-preserve-unknown-fields: true
-          status:
-            x-kubernetes-preserve-unknown-fields: true
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
-  - additionalPrinterColumns:
-    - description: The data engine of the replica
-      jsonPath: .spec.dataEngine
-      name: Data Engine
-      type: string
-    - description: The current state of the replica
-      jsonPath: .status.currentState
-      name: State
-      type: string
-    - description: The node that the replica is on
-      jsonPath: .spec.nodeID
-      name: Node
-      type: string
-    - description: The disk that the replica is on
-      jsonPath: .spec.diskID
-      name: Disk
-      type: string
-    - description: The instance manager of the replica
-      jsonPath: .status.instanceManagerName
-      name: InstanceManager
-      type: string
-    - description: The current image of the replica
-      jsonPath: .status.currentImage
-      name: Image
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: Replica is where Longhorn stores replica object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: ReplicaSpec defines the desired state of the Longhorn replica
-            properties:
-              active:
-                type: boolean
-              backendStoreDriver:
-                description: Deprecated:Replaced by field `dataEngine`.
-                type: string
-              backingImage:
-                type: string
-              dataDirectoryName:
-                type: string
-              dataEngine:
-                enum:
-                - v1
-                - v2
-                type: string
-              desireState:
-                type: string
-              diskID:
-                type: string
-              diskPath:
-                type: string
-              engineImage:
-                description: 'Deprecated: Replaced by field `image`.'
-                type: string
-              engineName:
-                type: string
-              evictionRequested:
-                type: boolean
-              failedAt:
-                description: |-
-                  FailedAt is set when a running replica fails or when a running engine is unable to use a replica for any reason.
-                  FailedAt indicates the time the failure occurred. When FailedAt is set, a replica is likely to have useful
-                  (though possibly stale) data. A replica with FailedAt set must be rebuilt from a non-failed replica (or it can
-                  be used in a salvage if all replicas are failed). FailedAt is cleared before a rebuild or salvage. FailedAt may
-                  be later than the corresponding entry in an engine's replicaTransitionTimeMap because it is set when the volume
-                  controller acknowledges the change.
-                type: string
-              hardNodeAffinity:
-                type: string
-              healthyAt:
-                description: |-
-                  HealthyAt is set the first time a replica becomes read/write in an engine after creation or rebuild. HealthyAt
-                  indicates the time the last successful rebuild occurred. When HealthyAt is set, a replica is likely to have
-                  useful (though possibly stale) data. HealthyAt is cleared before a rebuild. HealthyAt may be later than the
-                  corresponding entry in an engine's replicaTransitionTimeMap because it is set when the volume controller
-                  acknowledges the change.
-                type: string
-              image:
-                type: string
-              lastFailedAt:
-                description: |-
-                  LastFailedAt is always set at the same time as FailedAt. Unlike FailedAt, LastFailedAt is never cleared.
-                  LastFailedAt is not a reliable indicator of the state of a replica's data. For example, a replica with
-                  LastFailedAt may already be healthy and in use again. However, because it is never cleared, it can be compared to
-                  LastHealthyAt to help prevent dangerous replica deletion in some corner cases. LastFailedAt may be later than the
-                  corresponding entry in an engine's replicaTransitionTimeMap because it is set when the volume controller
-                  acknowledges the change.
-                type: string
-              lastHealthyAt:
-                description: |-
-                  LastHealthyAt is set every time a replica becomes read/write in an engine. Unlike HealthyAt, LastHealthyAt is
-                  never cleared. LastHealthyAt is not a reliable indicator of the state of a replica's data. For example, a
-                  replica with LastHealthyAt set may be in the middle of a rebuild. However, because it is never cleared, it can be
-                  compared to LastFailedAt to help prevent dangerous replica deletion in some corner cases. LastHealthyAt may be
-                  later than the corresponding entry in an engine's replicaTransitionTimeMap because it is set when the volume
-                  controller acknowledges the change.
-                type: string
-              logRequested:
-                type: boolean
-              migrationEngineName:
-                description: |-
-                  MigrationEngineName is indicating the migrating engine which current connected to this replica. This is only
-                  used for live migration of v2 data engine
-                type: string
-              nodeID:
-                type: string
-              rebuildRetryCount:
-                type: integer
-              revisionCounterDisabled:
-                type: boolean
-              salvageRequested:
-                type: boolean
-              snapshotMaxCount:
-                type: integer
-              snapshotMaxSize:
-                format: int64
-                type: string
-              unmapMarkDiskChainRemovedEnabled:
-                type: boolean
-              volumeName:
-                type: string
-              volumeSize:
-                format: int64
-                type: string
-            type: object
-          status:
-            description: ReplicaStatus defines the observed state of the Longhorn
-              replica
-            properties:
-              conditions:
-                items:
-                  properties:
-                    lastProbeTime:
-                      description: Last time we probed the condition.
-                      type: string
-                    lastTransitionTime:
-                      description: Last time the condition transitioned from one status
-                        to another.
-                      type: string
-                    message:
-                      description: Human-readable message indicating details about
-                        last transition.
-                      type: string
-                    reason:
-                      description: Unique, one-word, CamelCase reason for the condition's
-                        last transition.
-                      type: string
-                    status:
-                      description: |-
-                        Status is the status of the condition.
-                        Can be True, False, Unknown.
-                      type: string
-                    type:
-                      description: Type is the type of the condition.
-                      type: string
-                  type: object
-                nullable: true
-                type: array
-              currentImage:
-                type: string
-              currentState:
-                type: string
-              evictionRequested:
-                description: 'Deprecated: Replaced by field `spec.evictionRequested`.'
-                type: boolean
-              instanceManagerName:
-                type: string
-              ip:
-                type: string
-              logFetched:
-                type: boolean
-              ownerID:
-                type: string
-              port:
-                type: integer
-              salvageExecuted:
-                type: boolean
-              started:
-                type: boolean
-              storageIP:
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+    - additionalPrinterColumns:
+        - description: The current state of the replica
+          jsonPath: .status.currentState
+          name: State
+          type: string
+        - description: The node that the replica is on
+          jsonPath: .spec.nodeID
+          name: Node
+          type: string
+        - description: The disk that the replica is on
+          jsonPath: .spec.diskID
+          name: Disk
+          type: string
+        - description: The instance manager of the replica
+          jsonPath: .status.instanceManagerName
+          name: InstanceManager
+          type: string
+        - description: The current image of the replica
+          jsonPath: .status.currentImage
+          name: Image
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta1
+      schema:
+        openAPIV3Schema:
+          description: Replica is where Longhorn stores replica object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              x-kubernetes-preserve-unknown-fields: true
+            status:
+              x-kubernetes-preserve-unknown-fields: true
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
+    - additionalPrinterColumns:
+        - description: The data engine of the replica
+          jsonPath: .spec.dataEngine
+          name: Data Engine
+          type: string
+        - description: The current state of the replica
+          jsonPath: .status.currentState
+          name: State
+          type: string
+        - description: The node that the replica is on
+          jsonPath: .spec.nodeID
+          name: Node
+          type: string
+        - description: The disk that the replica is on
+          jsonPath: .spec.diskID
+          name: Disk
+          type: string
+        - description: The instance manager of the replica
+          jsonPath: .status.instanceManagerName
+          name: InstanceManager
+          type: string
+        - description: The current image of the replica
+          jsonPath: .status.currentImage
+          name: Image
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description: Replica is where Longhorn stores replica object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description: ReplicaSpec defines the desired state of the Longhorn replica
+              properties:
+                active:
+                  type: boolean
+                backendStoreDriver:
+                  description: Deprecated:Replaced by field `dataEngine`.
+                  type: string
+                backingImage:
+                  type: string
+                dataDirectoryName:
+                  type: string
+                dataEngine:
+                  enum:
+                    - v1
+                    - v2
+                  type: string
+                desireState:
+                  type: string
+                diskID:
+                  type: string
+                diskPath:
+                  type: string
+                engineImage:
+                  description: "Deprecated: Replaced by field `image`."
+                  type: string
+                engineName:
+                  type: string
+                evictionRequested:
+                  type: boolean
+                failedAt:
+                  description: |-
+                    FailedAt is set when a running replica fails or when a running engine is unable to use a replica for any reason.
+                    FailedAt indicates the time the failure occurred. When FailedAt is set, a replica is likely to have useful
+                    (though possibly stale) data. A replica with FailedAt set must be rebuilt from a non-failed replica (or it can
+                    be used in a salvage if all replicas are failed). FailedAt is cleared before a rebuild or salvage. FailedAt may
+                    be later than the corresponding entry in an engine's replicaTransitionTimeMap because it is set when the volume
+                    controller acknowledges the change.
+                  type: string
+                hardNodeAffinity:
+                  type: string
+                healthyAt:
+                  description: |-
+                    HealthyAt is set the first time a replica becomes read/write in an engine after creation or rebuild. HealthyAt
+                    indicates the time the last successful rebuild occurred. When HealthyAt is set, a replica is likely to have
+                    useful (though possibly stale) data. HealthyAt is cleared before a rebuild. HealthyAt may be later than the
+                    corresponding entry in an engine's replicaTransitionTimeMap because it is set when the volume controller
+                    acknowledges the change.
+                  type: string
+                image:
+                  type: string
+                lastFailedAt:
+                  description: |-
+                    LastFailedAt is always set at the same time as FailedAt. Unlike FailedAt, LastFailedAt is never cleared.
+                    LastFailedAt is not a reliable indicator of the state of a replica's data. For example, a replica with
+                    LastFailedAt may already be healthy and in use again. However, because it is never cleared, it can be compared to
+                    LastHealthyAt to help prevent dangerous replica deletion in some corner cases. LastFailedAt may be later than the
+                    corresponding entry in an engine's replicaTransitionTimeMap because it is set when the volume controller
+                    acknowledges the change.
+                  type: string
+                lastHealthyAt:
+                  description: |-
+                    LastHealthyAt is set every time a replica becomes read/write in an engine. Unlike HealthyAt, LastHealthyAt is
+                    never cleared. LastHealthyAt is not a reliable indicator of the state of a replica's data. For example, a
+                    replica with LastHealthyAt set may be in the middle of a rebuild. However, because it is never cleared, it can be
+                    compared to LastFailedAt to help prevent dangerous replica deletion in some corner cases. LastHealthyAt may be
+                    later than the corresponding entry in an engine's replicaTransitionTimeMap because it is set when the volume
+                    controller acknowledges the change.
+                  type: string
+                logRequested:
+                  type: boolean
+                migrationEngineName:
+                  description: |-
+                    MigrationEngineName is indicating the migrating engine which current connected to this replica. This is only
+                    used for live migration of v2 data engine
+                  type: string
+                nodeID:
+                  type: string
+                rebuildRetryCount:
+                  type: integer
+                revisionCounterDisabled:
+                  type: boolean
+                salvageRequested:
+                  type: boolean
+                snapshotMaxCount:
+                  type: integer
+                snapshotMaxSize:
+                  format: int64
+                  type: string
+                unmapMarkDiskChainRemovedEnabled:
+                  type: boolean
+                volumeName:
+                  type: string
+                volumeSize:
+                  format: int64
+                  type: string
+              type: object
+            status:
+              description:
+                ReplicaStatus defines the observed state of the Longhorn
+                replica
+              properties:
+                conditions:
+                  items:
+                    properties:
+                      lastProbeTime:
+                        description: Last time we probed the condition.
+                        type: string
+                      lastTransitionTime:
+                        description:
+                          Last time the condition transitioned from one status
+                          to another.
+                        type: string
+                      message:
+                        description:
+                          Human-readable message indicating details about
+                          last transition.
+                        type: string
+                      reason:
+                        description:
+                          Unique, one-word, CamelCase reason for the condition's
+                          last transition.
+                        type: string
+                      status:
+                        description: |-
+                          Status is the status of the condition.
+                          Can be True, False, Unknown.
+                        type: string
+                      type:
+                        description: Type is the type of the condition.
+                        type: string
+                    type: object
+                  nullable: true
+                  type: array
+                currentImage:
+                  type: string
+                currentState:
+                  type: string
+                evictionRequested:
+                  description: "Deprecated: Replaced by field `spec.evictionRequested`."
+                  type: boolean
+                instanceManagerName:
+                  type: string
+                ip:
+                  type: string
+                logFetched:
+                  type: boolean
+                ownerID:
+                  type: string
+                port:
+                  type: integer
+                salvageExecuted:
+                  type: boolean
+                started:
+                  type: boolean
+                storageIP:
+                  type: string
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -3454,103 +3494,103 @@ spec:
     listKind: SettingList
     plural: settings
     shortNames:
-    - lhs
+      - lhs
     singular: setting
   preserveUnknownFields: false
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: The value of the setting
-      jsonPath: .value
-      name: Value
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta1
-    schema:
-      openAPIV3Schema:
-        description: Setting is where Longhorn stores setting object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          value:
-            type: string
-        required:
-        - value
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
-  - additionalPrinterColumns:
-    - description: The value of the setting
-      jsonPath: .value
-      name: Value
-      type: string
-    - description: The setting is applied
-      jsonPath: .status.applied
-      name: Applied
-      type: boolean
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: Setting is where Longhorn stores setting object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          status:
-            description: The status of the setting.
-            properties:
-              applied:
-                description: The setting is applied.
-                type: boolean
-            required:
-            - applied
-            type: object
-          value:
-            description: The value of the setting.
-            type: string
-        required:
-        - value
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+    - additionalPrinterColumns:
+        - description: The value of the setting
+          jsonPath: .value
+          name: Value
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta1
+      schema:
+        openAPIV3Schema:
+          description: Setting is where Longhorn stores setting object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            value:
+              type: string
+          required:
+            - value
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
+    - additionalPrinterColumns:
+        - description: The value of the setting
+          jsonPath: .value
+          name: Value
+          type: string
+        - description: The setting is applied
+          jsonPath: .status.applied
+          name: Applied
+          type: boolean
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description: Setting is where Longhorn stores setting object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            status:
+              description: The status of the setting.
+              properties:
+                applied:
+                  description: The setting is applied.
+                  type: boolean
+              required:
+                - applied
+              type: object
+            value:
+              description: The value of the setting.
+              type: string
+          required:
+            - value
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -3573,117 +3613,122 @@ spec:
     listKind: ShareManagerList
     plural: sharemanagers
     shortNames:
-    - lhsm
+      - lhsm
     singular: sharemanager
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: The state of the share manager
-      jsonPath: .status.state
-      name: State
-      type: string
-    - description: The node that the share manager is owned by
-      jsonPath: .status.ownerID
-      name: Node
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta1
-    schema:
-      openAPIV3Schema:
-        description: ShareManager is where Longhorn stores share manager object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            x-kubernetes-preserve-unknown-fields: true
-          status:
-            x-kubernetes-preserve-unknown-fields: true
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
-  - additionalPrinterColumns:
-    - description: The state of the share manager
-      jsonPath: .status.state
-      name: State
-      type: string
-    - description: The node that the share manager is owned by
-      jsonPath: .status.ownerID
-      name: Node
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: ShareManager is where Longhorn stores share manager object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: ShareManagerSpec defines the desired state of the Longhorn
-              share manager
-            properties:
-              image:
-                description: Share manager image used for creating a share manager
-                  pod
-                type: string
-            type: object
-          status:
-            description: ShareManagerStatus defines the observed state of the Longhorn
-              share manager
-            properties:
-              endpoint:
-                description: NFS endpoint that can access the mounted filesystem of
-                  the volume
-                type: string
-              ownerID:
-                description: The node ID on which the controller is responsible to
-                  reconcile this share manager resource
-                type: string
-              state:
-                description: The state of the share manager resource
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+    - additionalPrinterColumns:
+        - description: The state of the share manager
+          jsonPath: .status.state
+          name: State
+          type: string
+        - description: The node that the share manager is owned by
+          jsonPath: .status.ownerID
+          name: Node
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta1
+      schema:
+        openAPIV3Schema:
+          description: ShareManager is where Longhorn stores share manager object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              x-kubernetes-preserve-unknown-fields: true
+            status:
+              x-kubernetes-preserve-unknown-fields: true
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
+    - additionalPrinterColumns:
+        - description: The state of the share manager
+          jsonPath: .status.state
+          name: State
+          type: string
+        - description: The node that the share manager is owned by
+          jsonPath: .status.ownerID
+          name: Node
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description: ShareManager is where Longhorn stores share manager object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description:
+                ShareManagerSpec defines the desired state of the Longhorn
+                share manager
+              properties:
+                image:
+                  description:
+                    Share manager image used for creating a share manager
+                    pod
+                  type: string
+              type: object
+            status:
+              description:
+                ShareManagerStatus defines the observed state of the Longhorn
+                share manager
+              properties:
+                endpoint:
+                  description:
+                    NFS endpoint that can access the mounted filesystem of
+                    the volume
+                  type: string
+                ownerID:
+                  description:
+                    The node ID on which the controller is responsible to
+                    reconcile this share manager resource
+                  type: string
+                state:
+                  description: The state of the share manager resource
+                  type: string
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -3706,119 +3751,121 @@ spec:
     listKind: SnapshotList
     plural: snapshots
     shortNames:
-    - lhsnap
+      - lhsnap
     singular: snapshot
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: The volume that this snapshot belongs to
-      jsonPath: .spec.volume
-      name: Volume
-      type: string
-    - description: Timestamp when the point-in-time snapshot was taken
-      jsonPath: .status.creationTime
-      name: CreationTime
-      type: string
-    - description: Indicates if the snapshot is ready to be used to restore/backup
-        a volume
-      jsonPath: .status.readyToUse
-      name: ReadyToUse
-      type: boolean
-    - description: Represents the minimum size of volume required to rehydrate from
-        this snapshot
-      jsonPath: .status.restoreSize
-      name: RestoreSize
-      type: string
-    - description: The actual size of the snapshot
-      jsonPath: .status.size
-      name: Size
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: Snapshot is the Schema for the snapshots API
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: SnapshotSpec defines the desired state of Longhorn Snapshot
-            properties:
-              createSnapshot:
-                description: require creating a new snapshot
-                type: boolean
-              labels:
-                additionalProperties:
-                  type: string
-                description: The labels of snapshot
-                nullable: true
-                type: object
-              volume:
-                description: |-
-                  the volume that this snapshot belongs to.
-                  This field is immutable after creation.
-                type: string
-            required:
-            - volume
-            type: object
-          status:
-            description: SnapshotStatus defines the observed state of Longhorn Snapshot
-            properties:
-              checksum:
-                type: string
-              children:
-                additionalProperties:
+    - additionalPrinterColumns:
+        - description: The volume that this snapshot belongs to
+          jsonPath: .spec.volume
+          name: Volume
+          type: string
+        - description: Timestamp when the point-in-time snapshot was taken
+          jsonPath: .status.creationTime
+          name: CreationTime
+          type: string
+        - description:
+            Indicates if the snapshot is ready to be used to restore/backup
+            a volume
+          jsonPath: .status.readyToUse
+          name: ReadyToUse
+          type: boolean
+        - description:
+            Represents the minimum size of volume required to rehydrate from
+            this snapshot
+          jsonPath: .status.restoreSize
+          name: RestoreSize
+          type: string
+        - description: The actual size of the snapshot
+          jsonPath: .status.size
+          name: Size
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description: Snapshot is the Schema for the snapshots API
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description: SnapshotSpec defines the desired state of Longhorn Snapshot
+              properties:
+                createSnapshot:
+                  description: require creating a new snapshot
                   type: boolean
-                nullable: true
-                type: object
-              creationTime:
-                type: string
-              error:
-                type: string
-              labels:
-                additionalProperties:
+                labels:
+                  additionalProperties:
+                    type: string
+                  description: The labels of snapshot
+                  nullable: true
+                  type: object
+                volume:
+                  description: |-
+                    the volume that this snapshot belongs to.
+                    This field is immutable after creation.
                   type: string
-                nullable: true
-                type: object
-              markRemoved:
-                type: boolean
-              ownerID:
-                type: string
-              parent:
-                type: string
-              readyToUse:
-                type: boolean
-              restoreSize:
-                format: int64
-                type: integer
-              size:
-                format: int64
-                type: integer
-              userCreated:
-                type: boolean
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+              required:
+                - volume
+              type: object
+            status:
+              description: SnapshotStatus defines the observed state of Longhorn Snapshot
+              properties:
+                checksum:
+                  type: string
+                children:
+                  additionalProperties:
+                    type: boolean
+                  nullable: true
+                  type: object
+                creationTime:
+                  type: string
+                error:
+                  type: string
+                labels:
+                  additionalProperties:
+                    type: string
+                  nullable: true
+                  type: object
+                markRemoved:
+                  type: boolean
+                ownerID:
+                  type: string
+                parent:
+                  type: string
+                readyToUse:
+                  type: boolean
+                restoreSize:
+                  format: int64
+                  type: integer
+                size:
+                  format: int64
+                  type: integer
+                userCreated:
+                  type: boolean
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -3841,121 +3888,126 @@ spec:
     listKind: SupportBundleList
     plural: supportbundles
     shortNames:
-    - lhbundle
+      - lhbundle
     singular: supportbundle
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: The state of the support bundle
-      jsonPath: .status.state
-      name: State
-      type: string
-    - description: The issue URL
-      jsonPath: .spec.issueURL
-      name: Issue
-      type: string
-    - description: A brief description of the issue
-      jsonPath: .spec.description
-      name: Description
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: SupportBundle is where Longhorn stores support bundle object
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: SupportBundleSpec defines the desired state of the Longhorn
-              SupportBundle
-            properties:
+    - additionalPrinterColumns:
+        - description: The state of the support bundle
+          jsonPath: .status.state
+          name: State
+          type: string
+        - description: The issue URL
+          jsonPath: .spec.issueURL
+          name: Issue
+          type: string
+        - description: A brief description of the issue
+          jsonPath: .spec.description
+          name: Description
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description: SupportBundle is where Longhorn stores support bundle object
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
               description:
-                description: A brief description of the issue
-                type: string
-              issueURL:
-                description: The issue URL
-                nullable: true
-                type: string
-              nodeID:
-                description: The preferred responsible controller node ID.
-                type: string
-            required:
-            - description
-            type: object
-          status:
-            description: SupportBundleStatus defines the observed state of the Longhorn
-              SupportBundle
-            properties:
-              conditions:
-                items:
-                  properties:
-                    lastProbeTime:
-                      description: Last time we probed the condition.
-                      type: string
-                    lastTransitionTime:
-                      description: Last time the condition transitioned from one status
-                        to another.
-                      type: string
-                    message:
-                      description: Human-readable message indicating details about
-                        last transition.
-                      type: string
-                    reason:
-                      description: Unique, one-word, CamelCase reason for the condition's
-                        last transition.
-                      type: string
-                    status:
-                      description: |-
-                        Status is the status of the condition.
-                        Can be True, False, Unknown.
-                      type: string
-                    type:
-                      description: Type is the type of the condition.
-                      type: string
-                  type: object
-                type: array
-              filename:
-                type: string
-              filesize:
-                format: int64
-                type: integer
-              image:
-                description: The support bundle manager image
-                type: string
-              managerIP:
-                description: The support bundle manager IP
-                type: string
-              ownerID:
-                description: The current responsible controller node ID
-                type: string
-              progress:
-                type: integer
-              state:
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+                SupportBundleSpec defines the desired state of the Longhorn
+                SupportBundle
+              properties:
+                description:
+                  description: A brief description of the issue
+                  type: string
+                issueURL:
+                  description: The issue URL
+                  nullable: true
+                  type: string
+                nodeID:
+                  description: The preferred responsible controller node ID.
+                  type: string
+              required:
+                - description
+              type: object
+            status:
+              description:
+                SupportBundleStatus defines the observed state of the Longhorn
+                SupportBundle
+              properties:
+                conditions:
+                  items:
+                    properties:
+                      lastProbeTime:
+                        description: Last time we probed the condition.
+                        type: string
+                      lastTransitionTime:
+                        description:
+                          Last time the condition transitioned from one status
+                          to another.
+                        type: string
+                      message:
+                        description:
+                          Human-readable message indicating details about
+                          last transition.
+                        type: string
+                      reason:
+                        description:
+                          Unique, one-word, CamelCase reason for the condition's
+                          last transition.
+                        type: string
+                      status:
+                        description: |-
+                          Status is the status of the condition.
+                          Can be True, False, Unknown.
+                        type: string
+                      type:
+                        description: Type is the type of the condition.
+                        type: string
+                    type: object
+                  type: array
+                filename:
+                  type: string
+                filesize:
+                  format: int64
+                  type: integer
+                image:
+                  description: The support bundle manager image
+                  type: string
+                managerIP:
+                  description: The support bundle manager IP
+                  type: string
+                ownerID:
+                  description: The current responsible controller node ID
+                  type: string
+                progress:
+                  type: integer
+                state:
+                  type: string
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -3978,127 +4030,134 @@ spec:
     listKind: SystemBackupList
     plural: systembackups
     shortNames:
-    - lhsb
+      - lhsb
     singular: systembackup
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: The system backup Longhorn version
-      jsonPath: .status.version
-      name: Version
-      type: string
-    - description: The system backup state
-      jsonPath: .status.state
-      name: State
-      type: string
-    - description: The system backup creation time
-      jsonPath: .status.createdAt
-      name: Created
-      type: string
-    - description: The last time that the system backup was synced into the cluster
-      jsonPath: .status.lastSyncedAt
-      name: LastSyncedAt
-      type: string
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: SystemBackup is where Longhorn stores system backup object
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: SystemBackupSpec defines the desired state of the Longhorn
-              SystemBackup
-            properties:
-              volumeBackupPolicy:
-                description: |-
-                  The create volume backup policy
-                  Can be "if-not-present", "always" or "disabled"
-                nullable: true
-                type: string
-            type: object
-          status:
-            description: SystemBackupStatus defines the observed state of the Longhorn
-              SystemBackup
-            properties:
-              conditions:
-                items:
-                  properties:
-                    lastProbeTime:
-                      description: Last time we probed the condition.
-                      type: string
-                    lastTransitionTime:
-                      description: Last time the condition transitioned from one status
-                        to another.
-                      type: string
-                    message:
-                      description: Human-readable message indicating details about
-                        last transition.
-                      type: string
-                    reason:
-                      description: Unique, one-word, CamelCase reason for the condition's
-                        last transition.
-                      type: string
-                    status:
-                      description: |-
-                        Status is the status of the condition.
-                        Can be True, False, Unknown.
-                      type: string
-                    type:
-                      description: Type is the type of the condition.
-                      type: string
-                  type: object
-                nullable: true
-                type: array
-              createdAt:
-                description: The system backup creation time.
-                format: date-time
-                type: string
-              gitCommit:
-                description: The saved Longhorn manager git commit.
-                nullable: true
-                type: string
-              lastSyncedAt:
-                description: The last time that the system backup was synced into
-                  the cluster.
-                format: date-time
-                nullable: true
-                type: string
-              managerImage:
-                description: The saved manager image.
-                type: string
-              ownerID:
-                description: The node ID of the responsible controller to reconcile
-                  this SystemBackup.
-                type: string
-              state:
-                description: The system backup state.
-                type: string
-              version:
-                description: The saved Longhorn version.
-                nullable: true
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+    - additionalPrinterColumns:
+        - description: The system backup Longhorn version
+          jsonPath: .status.version
+          name: Version
+          type: string
+        - description: The system backup state
+          jsonPath: .status.state
+          name: State
+          type: string
+        - description: The system backup creation time
+          jsonPath: .status.createdAt
+          name: Created
+          type: string
+        - description: The last time that the system backup was synced into the cluster
+          jsonPath: .status.lastSyncedAt
+          name: LastSyncedAt
+          type: string
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description: SystemBackup is where Longhorn stores system backup object
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description:
+                SystemBackupSpec defines the desired state of the Longhorn
+                SystemBackup
+              properties:
+                volumeBackupPolicy:
+                  description: |-
+                    The create volume backup policy
+                    Can be "if-not-present", "always" or "disabled"
+                  nullable: true
+                  type: string
+              type: object
+            status:
+              description:
+                SystemBackupStatus defines the observed state of the Longhorn
+                SystemBackup
+              properties:
+                conditions:
+                  items:
+                    properties:
+                      lastProbeTime:
+                        description: Last time we probed the condition.
+                        type: string
+                      lastTransitionTime:
+                        description:
+                          Last time the condition transitioned from one status
+                          to another.
+                        type: string
+                      message:
+                        description:
+                          Human-readable message indicating details about
+                          last transition.
+                        type: string
+                      reason:
+                        description:
+                          Unique, one-word, CamelCase reason for the condition's
+                          last transition.
+                        type: string
+                      status:
+                        description: |-
+                          Status is the status of the condition.
+                          Can be True, False, Unknown.
+                        type: string
+                      type:
+                        description: Type is the type of the condition.
+                        type: string
+                    type: object
+                  nullable: true
+                  type: array
+                createdAt:
+                  description: The system backup creation time.
+                  format: date-time
+                  type: string
+                gitCommit:
+                  description: The saved Longhorn manager git commit.
+                  nullable: true
+                  type: string
+                lastSyncedAt:
+                  description:
+                    The last time that the system backup was synced into
+                    the cluster.
+                  format: date-time
+                  nullable: true
+                  type: string
+                managerImage:
+                  description: The saved manager image.
+                  type: string
+                ownerID:
+                  description:
+                    The node ID of the responsible controller to reconcile
+                    this SystemBackup.
+                  type: string
+                state:
+                  description: The system backup state.
+                  type: string
+                version:
+                  description: The saved Longhorn version.
+                  nullable: true
+                  type: string
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -4121,99 +4180,105 @@ spec:
     listKind: SystemRestoreList
     plural: systemrestores
     shortNames:
-    - lhsr
+      - lhsr
     singular: systemrestore
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: The system restore state
-      jsonPath: .status.state
-      name: State
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: SystemRestore is where Longhorn stores system restore object
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: SystemRestoreSpec defines the desired state of the Longhorn
-              SystemRestore
-            properties:
-              systemBackup:
-                description: The system backup name in the object store.
-                type: string
-            required:
-            - systemBackup
-            type: object
-          status:
-            description: SystemRestoreStatus defines the observed state of the Longhorn
-              SystemRestore
-            properties:
-              conditions:
-                items:
-                  properties:
-                    lastProbeTime:
-                      description: Last time we probed the condition.
-                      type: string
-                    lastTransitionTime:
-                      description: Last time the condition transitioned from one status
-                        to another.
-                      type: string
-                    message:
-                      description: Human-readable message indicating details about
-                        last transition.
-                      type: string
-                    reason:
-                      description: Unique, one-word, CamelCase reason for the condition's
-                        last transition.
-                      type: string
-                    status:
-                      description: |-
-                        Status is the status of the condition.
-                        Can be True, False, Unknown.
-                      type: string
-                    type:
-                      description: Type is the type of the condition.
-                      type: string
-                  type: object
-                nullable: true
-                type: array
-              ownerID:
-                description: The node ID of the responsible controller to reconcile
-                  this SystemRestore.
-                type: string
-              sourceURL:
-                description: The source system backup URL.
-                type: string
-              state:
-                description: The system restore state.
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+    - additionalPrinterColumns:
+        - description: The system restore state
+          jsonPath: .status.state
+          name: State
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description: SystemRestore is where Longhorn stores system restore object
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description:
+                SystemRestoreSpec defines the desired state of the Longhorn
+                SystemRestore
+              properties:
+                systemBackup:
+                  description: The system backup name in the object store.
+                  type: string
+              required:
+                - systemBackup
+              type: object
+            status:
+              description:
+                SystemRestoreStatus defines the observed state of the Longhorn
+                SystemRestore
+              properties:
+                conditions:
+                  items:
+                    properties:
+                      lastProbeTime:
+                        description: Last time we probed the condition.
+                        type: string
+                      lastTransitionTime:
+                        description:
+                          Last time the condition transitioned from one status
+                          to another.
+                        type: string
+                      message:
+                        description:
+                          Human-readable message indicating details about
+                          last transition.
+                        type: string
+                      reason:
+                        description:
+                          Unique, one-word, CamelCase reason for the condition's
+                          last transition.
+                        type: string
+                      status:
+                        description: |-
+                          Status is the status of the condition.
+                          Can be True, False, Unknown.
+                        type: string
+                      type:
+                        description: Type is the type of the condition.
+                        type: string
+                    type: object
+                  nullable: true
+                  type: array
+                ownerID:
+                  description:
+                    The node ID of the responsible controller to reconcile
+                    this SystemRestore.
+                  type: string
+                sourceURL:
+                  description: The source system backup URL.
+                  type: string
+                state:
+                  description: The system restore state.
+                  type: string
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -4236,134 +4301,143 @@ spec:
     listKind: VolumeAttachmentList
     plural: volumeattachments
     shortNames:
-    - lhva
+      - lhva
     singular: volumeattachment
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: VolumeAttachment stores attachment information of a Longhorn
-          volume
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: VolumeAttachmentSpec defines the desired state of Longhorn
-              VolumeAttachment
-            properties:
-              attachmentTickets:
-                additionalProperties:
-                  properties:
-                    generation:
-                      description: |-
-                        A sequence number representing a specific generation of the desired state.
-                        Populated by the system. Read-only.
-                      format: int64
-                      type: integer
-                    id:
-                      description: The unique ID of this attachment. Used to differentiate
-                        different attachments of the same volume.
-                      type: string
-                    nodeID:
-                      description: The node that this attachment is requesting
-                      type: string
-                    parameters:
-                      additionalProperties:
+    - additionalPrinterColumns:
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description:
+            VolumeAttachment stores attachment information of a Longhorn
+            volume
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description:
+                VolumeAttachmentSpec defines the desired state of Longhorn
+                VolumeAttachment
+              properties:
+                attachmentTickets:
+                  additionalProperties:
+                    properties:
+                      generation:
+                        description: |-
+                          A sequence number representing a specific generation of the desired state.
+                          Populated by the system. Read-only.
+                        format: int64
+                        type: integer
+                      id:
+                        description:
+                          The unique ID of this attachment. Used to differentiate
+                          different attachments of the same volume.
                         type: string
-                      description: Optional additional parameter for this attachment
-                      type: object
-                    type:
-                      type: string
-                  type: object
-                type: object
-              volume:
-                description: The name of Longhorn volume of this VolumeAttachment
-                type: string
-            required:
-            - volume
-            type: object
-          status:
-            description: VolumeAttachmentStatus defines the observed state of Longhorn
-              VolumeAttachment
-            properties:
-              attachmentTicketStatuses:
-                additionalProperties:
-                  properties:
-                    conditions:
-                      description: Record any error when trying to fulfill this attachment
-                      items:
-                        properties:
-                          lastProbeTime:
-                            description: Last time we probed the condition.
-                            type: string
-                          lastTransitionTime:
-                            description: Last time the condition transitioned from
-                              one status to another.
-                            type: string
-                          message:
-                            description: Human-readable message indicating details
-                              about last transition.
-                            type: string
-                          reason:
-                            description: Unique, one-word, CamelCase reason for the
-                              condition's last transition.
-                            type: string
-                          status:
-                            description: |-
-                              Status is the status of the condition.
-                              Can be True, False, Unknown.
-                            type: string
-                          type:
-                            description: Type is the type of the condition.
-                            type: string
+                      nodeID:
+                        description: The node that this attachment is requesting
+                        type: string
+                      parameters:
+                        additionalProperties:
+                          type: string
+                        description: Optional additional parameter for this attachment
                         type: object
-                      nullable: true
-                      type: array
-                    generation:
-                      description: |-
-                        A sequence number representing a specific generation of the desired state.
-                        Populated by the system. Read-only.
-                      format: int64
-                      type: integer
-                    id:
-                      description: The unique ID of this attachment. Used to differentiate
-                        different attachments of the same volume.
-                      type: string
-                    satisfied:
-                      description: Indicate whether this attachment ticket has been
-                        satisfied
-                      type: boolean
-                  required:
-                  - conditions
-                  - satisfied
+                      type:
+                        type: string
+                    type: object
                   type: object
-                type: object
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+                volume:
+                  description: The name of Longhorn volume of this VolumeAttachment
+                  type: string
+              required:
+                - volume
+              type: object
+            status:
+              description:
+                VolumeAttachmentStatus defines the observed state of Longhorn
+                VolumeAttachment
+              properties:
+                attachmentTicketStatuses:
+                  additionalProperties:
+                    properties:
+                      conditions:
+                        description: Record any error when trying to fulfill this attachment
+                        items:
+                          properties:
+                            lastProbeTime:
+                              description: Last time we probed the condition.
+                              type: string
+                            lastTransitionTime:
+                              description:
+                                Last time the condition transitioned from
+                                one status to another.
+                              type: string
+                            message:
+                              description:
+                                Human-readable message indicating details
+                                about last transition.
+                              type: string
+                            reason:
+                              description:
+                                Unique, one-word, CamelCase reason for the
+                                condition's last transition.
+                              type: string
+                            status:
+                              description: |-
+                                Status is the status of the condition.
+                                Can be True, False, Unknown.
+                              type: string
+                            type:
+                              description: Type is the type of the condition.
+                              type: string
+                          type: object
+                        nullable: true
+                        type: array
+                      generation:
+                        description: |-
+                          A sequence number representing a specific generation of the desired state.
+                          Populated by the system. Read-only.
+                        format: int64
+                        type: integer
+                      id:
+                        description:
+                          The unique ID of this attachment. Used to differentiate
+                          different attachments of the same volume.
+                        type: string
+                      satisfied:
+                        description:
+                          Indicate whether this attachment ticket has been
+                          satisfied
+                        type: boolean
+                    required:
+                      - conditions
+                      - satisfied
+                    type: object
+                  type: object
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/crds.yaml
 apiVersion: apiextensions.k8s.io/v1
@@ -4390,392 +4464,400 @@ spec:
           path: /v1/webhook/conversion
           port: 9501
       conversionReviewVersions:
-      - v1beta2
-      - v1beta1
+        - v1beta2
+        - v1beta1
   group: longhorn.io
   names:
     kind: Volume
     listKind: VolumeList
     plural: volumes
     shortNames:
-    - lhv
+      - lhv
     singular: volume
   preserveUnknownFields: false
   scope: Namespaced
   versions:
-  - additionalPrinterColumns:
-    - description: The state of the volume
-      jsonPath: .status.state
-      name: State
-      type: string
-    - description: The robustness of the volume
-      jsonPath: .status.robustness
-      name: Robustness
-      type: string
-    - description: The scheduled condition of the volume
-      jsonPath: .status.conditions['scheduled']['status']
-      name: Scheduled
-      type: string
-    - description: The size of the volume
-      jsonPath: .spec.size
-      name: Size
-      type: string
-    - description: The node that the volume is currently attaching to
-      jsonPath: .status.currentNodeID
-      name: Node
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta1
-    schema:
-      openAPIV3Schema:
-        description: Volume is where Longhorn stores volume object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            x-kubernetes-preserve-unknown-fields: true
-          status:
-            x-kubernetes-preserve-unknown-fields: true
-        type: object
-    served: true
-    storage: false
-    subresources:
-      status: {}
-  - additionalPrinterColumns:
-    - description: The data engine of the volume
-      jsonPath: .spec.dataEngine
-      name: Data Engine
-      type: string
-    - description: The state of the volume
-      jsonPath: .status.state
-      name: State
-      type: string
-    - description: The robustness of the volume
-      jsonPath: .status.robustness
-      name: Robustness
-      type: string
-    - description: The scheduled condition of the volume
-      jsonPath: .status.conditions[?(@.type=='Schedulable')].status
-      name: Scheduled
-      type: string
-    - description: The size of the volume
-      jsonPath: .spec.size
-      name: Size
-      type: string
-    - description: The node that the volume is currently attaching to
-      jsonPath: .status.currentNodeID
-      name: Node
-      type: string
-    - jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    name: v1beta2
-    schema:
-      openAPIV3Schema:
-        description: Volume is where Longhorn stores volume object.
-        properties:
-          apiVersion:
-            description: |-
-              APIVersion defines the versioned schema of this representation of an object.
-              Servers should convert recognized schemas to the latest internal value, and
-              may reject unrecognized values.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-            type: string
-          kind:
-            description: |-
-              Kind is a string value representing the REST resource this object represents.
-              Servers may infer this from the endpoint the client submits requests to.
-              Cannot be updated.
-              In CamelCase.
-              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: VolumeSpec defines the desired state of the Longhorn volume
-            properties:
-              Standby:
-                type: boolean
-              accessMode:
-                enum:
-                - rwo
-                - rwx
-                type: string
-              backendStoreDriver:
-                description: Deprecated:Replaced by field `dataEngine`.'
-                type: string
-              backingImage:
-                type: string
-              backupCompressionMethod:
-                enum:
-                - none
-                - lz4
-                - gzip
-                type: string
-              backupTargetName:
-                description: The backup target name that the volume will be backed
-                  up to or is synced.
-                type: string
-              dataEngine:
-                enum:
-                - v1
-                - v2
-                type: string
-              dataLocality:
-                enum:
-                - disabled
-                - best-effort
-                - strict-local
-                type: string
-              dataSource:
-                type: string
-              disableFrontend:
-                type: boolean
-              diskSelector:
-                items:
+    - additionalPrinterColumns:
+        - description: The state of the volume
+          jsonPath: .status.state
+          name: State
+          type: string
+        - description: The robustness of the volume
+          jsonPath: .status.robustness
+          name: Robustness
+          type: string
+        - description: The scheduled condition of the volume
+          jsonPath: .status.conditions['scheduled']['status']
+          name: Scheduled
+          type: string
+        - description: The size of the volume
+          jsonPath: .spec.size
+          name: Size
+          type: string
+        - description: The node that the volume is currently attaching to
+          jsonPath: .status.currentNodeID
+          name: Node
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta1
+      schema:
+        openAPIV3Schema:
+          description: Volume is where Longhorn stores volume object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              x-kubernetes-preserve-unknown-fields: true
+            status:
+              x-kubernetes-preserve-unknown-fields: true
+          type: object
+      served: true
+      storage: false
+      subresources:
+        status: {}
+    - additionalPrinterColumns:
+        - description: The data engine of the volume
+          jsonPath: .spec.dataEngine
+          name: Data Engine
+          type: string
+        - description: The state of the volume
+          jsonPath: .status.state
+          name: State
+          type: string
+        - description: The robustness of the volume
+          jsonPath: .status.robustness
+          name: Robustness
+          type: string
+        - description: The scheduled condition of the volume
+          jsonPath: .status.conditions[?(@.type=='Schedulable')].status
+          name: Scheduled
+          type: string
+        - description: The size of the volume
+          jsonPath: .spec.size
+          name: Size
+          type: string
+        - description: The node that the volume is currently attaching to
+          jsonPath: .status.currentNodeID
+          name: Node
+          type: string
+        - jsonPath: .metadata.creationTimestamp
+          name: Age
+          type: date
+      name: v1beta2
+      schema:
+        openAPIV3Schema:
+          description: Volume is where Longhorn stores volume object.
+          properties:
+            apiVersion:
+              description: |-
+                APIVersion defines the versioned schema of this representation of an object.
+                Servers should convert recognized schemas to the latest internal value, and
+                may reject unrecognized values.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+              type: string
+            kind:
+              description: |-
+                Kind is a string value representing the REST resource this object represents.
+                Servers may infer this from the endpoint the client submits requests to.
+                Cannot be updated.
+                In CamelCase.
+                More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+              type: string
+            metadata:
+              type: object
+            spec:
+              description: VolumeSpec defines the desired state of the Longhorn volume
+              properties:
+                Standby:
+                  type: boolean
+                accessMode:
+                  enum:
+                    - rwo
+                    - rwx
                   type: string
-                type: array
-              encrypted:
-                type: boolean
-              engineImage:
-                description: 'Deprecated: Replaced by field `image`.'
-                type: string
-              freezeFilesystemForSnapshot:
-                description: Setting that freezes the filesystem on the root partition
-                  before a snapshot is created.
-                enum:
-                - ignored
-                - enabled
-                - disabled
-                type: string
-              fromBackup:
-                type: string
-              frontend:
-                enum:
-                - blockdev
-                - iscsi
-                - nvmf
-                - ""
-                type: string
-              image:
-                type: string
-              lastAttachedBy:
-                type: string
-              migratable:
-                type: boolean
-              migrationNodeID:
-                type: string
-              nodeID:
-                type: string
-              nodeSelector:
-                items:
+                backendStoreDriver:
+                  description: Deprecated:Replaced by field `dataEngine`.'
                   type: string
-                type: array
-              numberOfReplicas:
-                type: integer
-              replicaAutoBalance:
-                enum:
-                - ignored
-                - disabled
-                - least-effort
-                - best-effort
-                type: string
-              replicaDiskSoftAntiAffinity:
-                description: Replica disk soft anti affinity of the volume. Set enabled
-                  to allow replicas to be scheduled in the same disk.
-                enum:
-                - ignored
-                - enabled
-                - disabled
-                type: string
-              replicaSoftAntiAffinity:
-                description: Replica soft anti affinity of the volume. Set enabled
-                  to allow replicas to be scheduled on the same node.
-                enum:
-                - ignored
-                - enabled
-                - disabled
-                type: string
-              replicaZoneSoftAntiAffinity:
-                description: Replica zone soft anti affinity of the volume. Set enabled
-                  to allow replicas to be scheduled in the same zone.
-                enum:
-                - ignored
-                - enabled
-                - disabled
-                type: string
-              restoreVolumeRecurringJob:
-                enum:
-                - ignored
-                - enabled
-                - disabled
-                type: string
-              revisionCounterDisabled:
-                type: boolean
-              size:
-                format: int64
-                type: string
-              snapshotDataIntegrity:
-                enum:
-                - ignored
-                - disabled
-                - enabled
-                - fast-check
-                type: string
-              snapshotMaxCount:
-                type: integer
-              snapshotMaxSize:
-                format: int64
-                type: string
-              staleReplicaTimeout:
-                type: integer
-              unmapMarkSnapChainRemoved:
-                enum:
-                - ignored
-                - disabled
-                - enabled
-                type: string
-            type: object
-          status:
-            description: VolumeStatus defines the observed state of the Longhorn volume
-            properties:
-              actualSize:
-                format: int64
-                type: integer
-              cloneStatus:
-                properties:
-                  attemptCount:
-                    type: integer
-                  nextAllowedAttemptAt:
+                backingImage:
+                  type: string
+                backupCompressionMethod:
+                  enum:
+                    - none
+                    - lz4
+                    - gzip
+                  type: string
+                backupTargetName:
+                  description:
+                    The backup target name that the volume will be backed
+                    up to or is synced.
+                  type: string
+                dataEngine:
+                  enum:
+                    - v1
+                    - v2
+                  type: string
+                dataLocality:
+                  enum:
+                    - disabled
+                    - best-effort
+                    - strict-local
+                  type: string
+                dataSource:
+                  type: string
+                disableFrontend:
+                  type: boolean
+                diskSelector:
+                  items:
                     type: string
-                  snapshot:
+                  type: array
+                encrypted:
+                  type: boolean
+                engineImage:
+                  description: "Deprecated: Replaced by field `image`."
+                  type: string
+                freezeFilesystemForSnapshot:
+                  description:
+                    Setting that freezes the filesystem on the root partition
+                    before a snapshot is created.
+                  enum:
+                    - ignored
+                    - enabled
+                    - disabled
+                  type: string
+                fromBackup:
+                  type: string
+                frontend:
+                  enum:
+                    - blockdev
+                    - iscsi
+                    - nvmf
+                    - ""
+                  type: string
+                image:
+                  type: string
+                lastAttachedBy:
+                  type: string
+                migratable:
+                  type: boolean
+                migrationNodeID:
+                  type: string
+                nodeID:
+                  type: string
+                nodeSelector:
+                  items:
                     type: string
-                  sourceVolume:
-                    type: string
-                  state:
-                    type: string
-                type: object
-              conditions:
-                items:
+                  type: array
+                numberOfReplicas:
+                  type: integer
+                replicaAutoBalance:
+                  enum:
+                    - ignored
+                    - disabled
+                    - least-effort
+                    - best-effort
+                  type: string
+                replicaDiskSoftAntiAffinity:
+                  description:
+                    Replica disk soft anti affinity of the volume. Set enabled
+                    to allow replicas to be scheduled in the same disk.
+                  enum:
+                    - ignored
+                    - enabled
+                    - disabled
+                  type: string
+                replicaSoftAntiAffinity:
+                  description:
+                    Replica soft anti affinity of the volume. Set enabled
+                    to allow replicas to be scheduled on the same node.
+                  enum:
+                    - ignored
+                    - enabled
+                    - disabled
+                  type: string
+                replicaZoneSoftAntiAffinity:
+                  description:
+                    Replica zone soft anti affinity of the volume. Set enabled
+                    to allow replicas to be scheduled in the same zone.
+                  enum:
+                    - ignored
+                    - enabled
+                    - disabled
+                  type: string
+                restoreVolumeRecurringJob:
+                  enum:
+                    - ignored
+                    - enabled
+                    - disabled
+                  type: string
+                revisionCounterDisabled:
+                  type: boolean
+                size:
+                  format: int64
+                  type: string
+                snapshotDataIntegrity:
+                  enum:
+                    - ignored
+                    - disabled
+                    - enabled
+                    - fast-check
+                  type: string
+                snapshotMaxCount:
+                  type: integer
+                snapshotMaxSize:
+                  format: int64
+                  type: string
+                staleReplicaTimeout:
+                  type: integer
+                unmapMarkSnapChainRemoved:
+                  enum:
+                    - ignored
+                    - disabled
+                    - enabled
+                  type: string
+              type: object
+            status:
+              description: VolumeStatus defines the observed state of the Longhorn volume
+              properties:
+                actualSize:
+                  format: int64
+                  type: integer
+                cloneStatus:
                   properties:
-                    lastProbeTime:
-                      description: Last time we probed the condition.
+                    attemptCount:
+                      type: integer
+                    nextAllowedAttemptAt:
                       type: string
-                    lastTransitionTime:
-                      description: Last time the condition transitioned from one status
-                        to another.
+                    snapshot:
                       type: string
-                    message:
-                      description: Human-readable message indicating details about
-                        last transition.
+                    sourceVolume:
                       type: string
-                    reason:
-                      description: Unique, one-word, CamelCase reason for the condition's
-                        last transition.
-                      type: string
-                    status:
-                      description: |-
-                        Status is the status of the condition.
-                        Can be True, False, Unknown.
-                      type: string
-                    type:
-                      description: Type is the type of the condition.
+                    state:
                       type: string
                   type: object
-                nullable: true
-                type: array
-              currentImage:
-                type: string
-              currentMigrationNodeID:
-                description: the node that this volume is currently migrating to
-                type: string
-              currentNodeID:
-                type: string
-              expansionRequired:
-                type: boolean
-              frontendDisabled:
-                type: boolean
-              isStandby:
-                type: boolean
-              kubernetesStatus:
-                properties:
-                  lastPVCRefAt:
-                    type: string
-                  lastPodRefAt:
-                    type: string
-                  namespace:
-                    description: determine if PVC/Namespace is history or not
-                    type: string
-                  pvName:
-                    type: string
-                  pvStatus:
-                    type: string
-                  pvcName:
-                    type: string
-                  workloadsStatus:
-                    description: determine if Pod/Workload is history or not
-                    items:
-                      properties:
-                        podName:
-                          type: string
-                        podStatus:
-                          type: string
-                        workloadName:
-                          type: string
-                        workloadType:
-                          type: string
-                      type: object
-                    nullable: true
-                    type: array
-                type: object
-              lastBackup:
-                type: string
-              lastBackupAt:
-                type: string
-              lastDegradedAt:
-                type: string
-              ownerID:
-                type: string
-              pendingNodeID:
-                description: Deprecated.
-                type: string
-              remountRequestedAt:
-                type: string
-              restoreInitiated:
-                type: boolean
-              restoreRequired:
-                type: boolean
-              robustness:
-                type: string
-              shareEndpoint:
-                type: string
-              shareState:
-                type: string
-              state:
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
+                conditions:
+                  items:
+                    properties:
+                      lastProbeTime:
+                        description: Last time we probed the condition.
+                        type: string
+                      lastTransitionTime:
+                        description:
+                          Last time the condition transitioned from one status
+                          to another.
+                        type: string
+                      message:
+                        description:
+                          Human-readable message indicating details about
+                          last transition.
+                        type: string
+                      reason:
+                        description:
+                          Unique, one-word, CamelCase reason for the condition's
+                          last transition.
+                        type: string
+                      status:
+                        description: |-
+                          Status is the status of the condition.
+                          Can be True, False, Unknown.
+                        type: string
+                      type:
+                        description: Type is the type of the condition.
+                        type: string
+                    type: object
+                  nullable: true
+                  type: array
+                currentImage:
+                  type: string
+                currentMigrationNodeID:
+                  description: the node that this volume is currently migrating to
+                  type: string
+                currentNodeID:
+                  type: string
+                expansionRequired:
+                  type: boolean
+                frontendDisabled:
+                  type: boolean
+                isStandby:
+                  type: boolean
+                kubernetesStatus:
+                  properties:
+                    lastPVCRefAt:
+                      type: string
+                    lastPodRefAt:
+                      type: string
+                    namespace:
+                      description: determine if PVC/Namespace is history or not
+                      type: string
+                    pvName:
+                      type: string
+                    pvStatus:
+                      type: string
+                    pvcName:
+                      type: string
+                    workloadsStatus:
+                      description: determine if Pod/Workload is history or not
+                      items:
+                        properties:
+                          podName:
+                            type: string
+                          podStatus:
+                            type: string
+                          workloadName:
+                            type: string
+                          workloadType:
+                            type: string
+                        type: object
+                      nullable: true
+                      type: array
+                  type: object
+                lastBackup:
+                  type: string
+                lastBackupAt:
+                  type: string
+                lastDegradedAt:
+                  type: string
+                ownerID:
+                  type: string
+                pendingNodeID:
+                  description: Deprecated.
+                  type: string
+                remountRequestedAt:
+                  type: string
+                restoreInitiated:
+                  type: boolean
+                restoreRequired:
+                  type: boolean
+                robustness:
+                  type: string
+                shareEndpoint:
+                  type: string
+                shareState:
+                  type: string
+                state:
+                  type: string
+              type: object
+          type: object
+      served: true
+      storage: true
+      subresources:
+        status: {}
 ---
 # Source: longhorn/templates/clusterrole.yaml
 apiVersion: rbac.authorization.k8s.io/v1
@@ -4789,61 +4871,129 @@ metadata:
     app.kubernetes.io/instance: longhorn
     app.kubernetes.io/version: v1.8.0
 rules:
-- apiGroups:
-  - apiextensions.k8s.io
-  resources:
-  - customresourcedefinitions
-  verbs:
-  - "*"
-- apiGroups: [""]
-  resources: ["pods", "events", "persistentvolumes", "persistentvolumeclaims","persistentvolumeclaims/status", "nodes", "proxy/nodes", "pods/log", "secrets", "services", "endpoints", "configmaps", "serviceaccounts"]
-  verbs: ["*"]
-- apiGroups: [""]
-  resources: ["namespaces"]
-  verbs: ["get", "list"]
-- apiGroups: ["apps"]
-  resources: ["daemonsets", "statefulsets", "deployments"]
-  verbs: ["*"]
-- apiGroups: ["batch"]
-  resources: ["jobs", "cronjobs"]
-  verbs: ["*"]
-- apiGroups: ["policy"]
-  resources: ["poddisruptionbudgets", "podsecuritypolicies"]
-  verbs: ["*"]
-- apiGroups: ["scheduling.k8s.io"]
-  resources: ["priorityclasses"]
-  verbs: ["watch", "list"]
-- apiGroups: ["storage.k8s.io"]
-  resources: ["storageclasses", "volumeattachments", "volumeattachments/status", "csinodes", "csidrivers"]
-  verbs: ["*"]
-- apiGroups: ["snapshot.storage.k8s.io"]
-  resources: ["volumesnapshotclasses", "volumesnapshots", "volumesnapshotcontents", "volumesnapshotcontents/status"]
-  verbs: ["*"]
-- apiGroups: ["longhorn.io"]
-  resources: ["volumes", "volumes/status", "engines", "engines/status", "replicas", "replicas/status", "settings", "settings/status",
-              "engineimages", "engineimages/status", "nodes", "nodes/status", "instancemanagers", "instancemanagers/status",
-              "sharemanagers", "sharemanagers/status", "backingimages", "backingimages/status",
-              "backingimagemanagers", "backingimagemanagers/status", "backingimagedatasources", "backingimagedatasources/status",
-              "backuptargets", "backuptargets/status", "backupvolumes", "backupvolumes/status", "backups", "backups/status",
-              "recurringjobs", "recurringjobs/status", "orphans", "orphans/status", "snapshots", "snapshots/status",
-              "supportbundles", "supportbundles/status", "systembackups", "systembackups/status", "systemrestores", "systemrestores/status",
-              "volumeattachments", "volumeattachments/status", "backupbackingimages", "backupbackingimages/status"]
-  verbs: ["*"]
-- apiGroups: ["coordination.k8s.io"]
-  resources: ["leases"]
-  verbs: ["*"]
-- apiGroups: ["metrics.k8s.io"]
-  resources: ["pods", "nodes"]
-  verbs: ["get", "list"]
-- apiGroups: ["apiregistration.k8s.io"]
-  resources: ["apiservices"]
-  verbs: ["list", "watch"]
-- apiGroups: ["admissionregistration.k8s.io"]
-  resources: ["mutatingwebhookconfigurations", "validatingwebhookconfigurations"]
-  verbs: ["get", "list", "create", "patch", "delete"]
-- apiGroups: ["rbac.authorization.k8s.io"]
-  resources: ["roles", "rolebindings", "clusterrolebindings", "clusterroles"]
-  verbs: ["*"]
+  - apiGroups:
+      - apiextensions.k8s.io
+    resources:
+      - customresourcedefinitions
+    verbs:
+      - "*"
+  - apiGroups: [""]
+    resources:
+      [
+        "pods",
+        "events",
+        "persistentvolumes",
+        "persistentvolumeclaims",
+        "persistentvolumeclaims/status",
+        "nodes",
+        "proxy/nodes",
+        "pods/log",
+        "secrets",
+        "services",
+        "endpoints",
+        "configmaps",
+        "serviceaccounts",
+      ]
+    verbs: ["*"]
+  - apiGroups: [""]
+    resources: ["namespaces"]
+    verbs: ["get", "list"]
+  - apiGroups: ["apps"]
+    resources: ["daemonsets", "statefulsets", "deployments"]
+    verbs: ["*"]
+  - apiGroups: ["batch"]
+    resources: ["jobs", "cronjobs"]
+    verbs: ["*"]
+  - apiGroups: ["policy"]
+    resources: ["poddisruptionbudgets", "podsecuritypolicies"]
+    verbs: ["*"]
+  - apiGroups: ["scheduling.k8s.io"]
+    resources: ["priorityclasses"]
+    verbs: ["watch", "list"]
+  - apiGroups: ["storage.k8s.io"]
+    resources:
+      [
+        "storageclasses",
+        "volumeattachments",
+        "volumeattachments/status",
+        "csinodes",
+        "csidrivers",
+      ]
+    verbs: ["*"]
+  - apiGroups: ["snapshot.storage.k8s.io"]
+    resources:
+      [
+        "volumesnapshotclasses",
+        "volumesnapshots",
+        "volumesnapshotcontents",
+        "volumesnapshotcontents/status",
+      ]
+    verbs: ["*"]
+  - apiGroups: ["longhorn.io"]
+    resources:
+      [
+        "volumes",
+        "volumes/status",
+        "engines",
+        "engines/status",
+        "replicas",
+        "replicas/status",
+        "settings",
+        "settings/status",
+        "engineimages",
+        "engineimages/status",
+        "nodes",
+        "nodes/status",
+        "instancemanagers",
+        "instancemanagers/status",
+        "sharemanagers",
+        "sharemanagers/status",
+        "backingimages",
+        "backingimages/status",
+        "backingimagemanagers",
+        "backingimagemanagers/status",
+        "backingimagedatasources",
+        "backingimagedatasources/status",
+        "backuptargets",
+        "backuptargets/status",
+        "backupvolumes",
+        "backupvolumes/status",
+        "backups",
+        "backups/status",
+        "recurringjobs",
+        "recurringjobs/status",
+        "orphans",
+        "orphans/status",
+        "snapshots",
+        "snapshots/status",
+        "supportbundles",
+        "supportbundles/status",
+        "systembackups",
+        "systembackups/status",
+        "systemrestores",
+        "systemrestores/status",
+        "volumeattachments",
+        "volumeattachments/status",
+        "backupbackingimages",
+        "backupbackingimages/status",
+      ]
+    verbs: ["*"]
+  - apiGroups: ["coordination.k8s.io"]
+    resources: ["leases"]
+    verbs: ["*"]
+  - apiGroups: ["metrics.k8s.io"]
+    resources: ["pods", "nodes"]
+    verbs: ["get", "list"]
+  - apiGroups: ["apiregistration.k8s.io"]
+    resources: ["apiservices"]
+    verbs: ["list", "watch"]
+  - apiGroups: ["admissionregistration.k8s.io"]
+    resources:
+      ["mutatingwebhookconfigurations", "validatingwebhookconfigurations"]
+    verbs: ["get", "list", "create", "patch", "delete"]
+  - apiGroups: ["rbac.authorization.k8s.io"]
+    resources: ["roles", "rolebindings", "clusterrolebindings", "clusterroles"]
+    verbs: ["*"]
 ---
 # Source: longhorn/templates/clusterrolebinding.yaml
 apiVersion: rbac.authorization.k8s.io/v1
@@ -4861,9 +5011,9 @@ roleRef:
   kind: ClusterRole
   name: longhorn-role
 subjects:
-- kind: ServiceAccount
-  name: longhorn-service-account
-  namespace: longhorn-system
+  - kind: ServiceAccount
+    name: longhorn-service-account
+    namespace: longhorn-system
 ---
 # Source: longhorn/templates/clusterrolebinding.yaml
 apiVersion: rbac.authorization.k8s.io/v1
@@ -4881,9 +5031,9 @@ roleRef:
   kind: ClusterRole
   name: cluster-admin
 subjects:
-- kind: ServiceAccount
-  name: longhorn-support-bundle
-  namespace: longhorn-system
+  - kind: ServiceAccount
+    name: longhorn-support-bundle
+    namespace: longhorn-system
 ---
 # Source: longhorn/templates/daemonset-sa.yaml
 apiVersion: v1
@@ -4903,9 +5053,9 @@ spec:
   selector:
     app: longhorn-manager
   ports:
-  - name: manager
-    port: 9500
-    targetPort: manager
+    - name: manager
+      port: 9500
+      targetPort: manager
 ---
 # Source: longhorn/templates/deployment-ui.yaml
 kind: Service
@@ -4925,10 +5075,10 @@ spec:
   selector:
     app: longhorn-ui
   ports:
-  - name: http
-    port: 80
-    targetPort: http
-    nodePort: null
+    - name: http
+      port: 80
+      targetPort: http
+      nodePort: null
 ---
 # Source: longhorn/templates/services.yaml
 apiVersion: v1
@@ -4948,9 +5098,9 @@ spec:
   selector:
     longhorn.io/conversion-webhook: longhorn-conversion-webhook
   ports:
-  - name: conversion-webhook
-    port: 9501
-    targetPort: conversion-wh
+    - name: conversion-webhook
+      port: 9501
+      targetPort: conversion-wh
 ---
 # Source: longhorn/templates/services.yaml
 apiVersion: v1
@@ -4970,9 +5120,9 @@ spec:
   selector:
     longhorn.io/admission-webhook: longhorn-admission-webhook
   ports:
-  - name: admission-webhook
-    port: 9502
-    targetPort: admission-wh
+    - name: admission-webhook
+      port: 9502
+      targetPort: admission-wh
 ---
 # Source: longhorn/templates/services.yaml
 apiVersion: v1
@@ -4992,9 +5142,9 @@ spec:
   selector:
     longhorn.io/recovery-backend: longhorn-recovery-backend
   ports:
-  - name: recovery-backend
-    port: 9503
-    targetPort: recov-backend
+    - name: recovery-backend
+      port: 9503
+      targetPort: recov-backend
 ---
 # Source: longhorn/templates/daemonset-sa.yaml
 apiVersion: apps/v1
@@ -5024,102 +5174,103 @@ spec:
         app: longhorn-manager
     spec:
       containers:
-      - name: longhorn-manager
-        image: longhornio/longhorn-manager:v1.8.0
-        imagePullPolicy: IfNotPresent
-        securityContext:
-          privileged: true
-        command:
-        - longhorn-manager
-        - -d
-        - daemon
-        - --engine-image
-        - "longhornio/longhorn-engine:v1.8.0"
-        - --instance-manager-image
-        - "longhornio/longhorn-instance-manager:v1.8.0"
-        - --share-manager-image
-        - "longhornio/longhorn-share-manager:v1.8.0"
-        - --backing-image-manager-image
-        - "longhornio/backing-image-manager:v1.8.0"
-        - --support-bundle-manager-image
-        - "longhornio/support-bundle-kit:v0.0.49"
-        - --manager-image
-        - "longhornio/longhorn-manager:v1.8.0"
-        - --service-account
-        - longhorn-service-account
-        - --upgrade-version-check
-        ports:
-        - containerPort: 9500
-          name: manager
-        - containerPort: 9501
-          name: conversion-wh
-        - containerPort: 9502
-          name: admission-wh
-        - containerPort: 9503
-          name: recov-backend
-        readinessProbe:
-          httpGet:
-            path: /v1/healthz
-            port: 9501
-            scheme: HTTPS
-        volumeMounts:
-        - name: boot
-          mountPath: /host/boot/
-          readOnly: true
-        - name: dev
-          mountPath: /host/dev/
-        - name: proc
-          mountPath: /host/proc/
-          readOnly: true
-        - name: etc
-          mountPath: /host/etc/
-          readOnly: true
-        - name: longhorn
-          mountPath: /var/lib/longhorn/
-          mountPropagation: Bidirectional
-        - name: longhorn-grpc-tls
-          mountPath: /tls-files/
-        env:
-        - name: POD_NAME
-          valueFrom:
-            fieldRef:
-              fieldPath: metadata.name
-        - name: POD_NAMESPACE
-          valueFrom:
-            fieldRef:
-              fieldPath: metadata.namespace
-        - name: POD_IP
-          valueFrom:
-            fieldRef:
-              fieldPath: status.podIP
-        - name: NODE_NAME
-          valueFrom:
-            fieldRef:
-              fieldPath: spec.nodeName
-      - name: pre-pull-share-manager-image
-        imagePullPolicy: IfNotPresent
-        image: longhornio/longhorn-share-manager:v1.8.0
-        command: ["sh", "-c", "echo share-manager image pulled && sleep infinity"]
+        - name: longhorn-manager
+          image: longhornio/longhorn-manager:v1.8.1
+          imagePullPolicy: IfNotPresent
+          securityContext:
+            privileged: true
+          command:
+            - longhorn-manager
+            - -d
+            - daemon
+            - --engine-image
+            - "longhornio/longhorn-engine:v1.8.1"
+            - --instance-manager-image
+            - "longhornio/longhorn-instance-manager:v1.8.1"
+            - --share-manager-image
+            - "longhornio/longhorn-share-manager:v1.8.1"
+            - --backing-image-manager-image
+            - "longhornio/backing-image-manager:v1.8.1"
+            - --support-bundle-manager-image
+            - "longhornio/support-bundle-kit:v0.0.52"
+            - --manager-image
+            - "longhornio/longhorn-manager:v1.8.1"
+            - --service-account
+            - longhorn-service-account
+            - --upgrade-version-check
+          ports:
+            - containerPort: 9500
+              name: manager
+            - containerPort: 9501
+              name: conversion-wh
+            - containerPort: 9502
+              name: admission-wh
+            - containerPort: 9503
+              name: recov-backend
+          readinessProbe:
+            httpGet:
+              path: /v1/healthz
+              port: 9501
+              scheme: HTTPS
+          volumeMounts:
+            - name: boot
+              mountPath: /host/boot/
+              readOnly: true
+            - name: dev
+              mountPath: /host/dev/
+            - name: proc
+              mountPath: /host/proc/
+              readOnly: true
+            - name: etc
+              mountPath: /host/etc/
+              readOnly: true
+            - name: longhorn
+              mountPath: /var/lib/longhorn/
+              mountPropagation: Bidirectional
+            - name: longhorn-grpc-tls
+              mountPath: /tls-files/
+          env:
+            - name: POD_NAME
+              valueFrom:
+                fieldRef:
+                  fieldPath: metadata.name
+            - name: POD_NAMESPACE
+              valueFrom:
+                fieldRef:
+                  fieldPath: metadata.namespace
+            - name: POD_IP
+              valueFrom:
+                fieldRef:
+                  fieldPath: status.podIP
+            - name: NODE_NAME
+              valueFrom:
+                fieldRef:
+                  fieldPath: spec.nodeName
+        - name: pre-pull-share-manager-image
+          imagePullPolicy: IfNotPresent
+          image: longhornio/longhorn-share-manager:v1.8.1
+          command:
+            ["sh", "-c", "echo share-manager image pulled && sleep infinity"]
       volumes:
-      - name: boot
-        hostPath:
-          path: /boot/
-      - name: dev
-        hostPath:
-          path: /dev/
-      - name: proc
-        hostPath:
-          path: /proc/
-      - name: etc
-        hostPath:
-          path: /etc/
-      - name: longhorn
-        hostPath:
-          path: /var/lib/longhorn/
-      - name: longhorn-grpc-tls
-        secret:
-          secretName: longhorn-grpc-tls
-          optional: true
+        - name: boot
+          hostPath:
+            path: /boot/
+        - name: dev
+          hostPath:
+            path: /dev/
+        - name: proc
+          hostPath:
+            path: /proc/
+        - name: etc
+          hostPath:
+            path: /etc/
+        - name: longhorn
+          hostPath:
+            path: /var/lib/longhorn/
+        - name: longhorn-grpc-tls
+          secret:
+            secretName: longhorn-grpc-tls
+            optional: true
       priorityClassName: "longhorn-critical"
       serviceAccountName: longhorn-service-account
   updateStrategy:
@@ -5155,53 +5306,58 @@ spec:
     spec:
       initContainers:
         - name: wait-longhorn-manager
-          image: longhornio/longhorn-manager:v1.8.0
-          command: ['sh', '-c', 'while [ $(curl -m 1 -s -o /dev/null -w "%{http_code}" http://longhorn-backend:9500/v1) != "200" ]; do echo waiting; sleep 2; done']
+          image: longhornio/longhorn-manager:v1.8.1
+          command:
+            [
+              "sh",
+              "-c",
+              'while [ $(curl -m 1 -s -o /dev/null -w "%{http_code}" http://longhorn-backend:9500/v1) != "200" ]; do echo waiting; sleep 2; done',
+            ]
       containers:
         - name: longhorn-driver-deployer
-          image: longhornio/longhorn-manager:v1.8.0
+          image: longhornio/longhorn-manager:v1.8.1
           imagePullPolicy: IfNotPresent
           command:
-          - longhorn-manager
-          - -d
-          - deploy-driver
-          - --manager-image
-          - "longhornio/longhorn-manager:v1.8.0"
-          - --manager-url
-          - http://longhorn-backend:9500/v1
+            - longhorn-manager
+            - -d
+            - deploy-driver
+            - --manager-image
+            - "longhornio/longhorn-manager:v1.8.1"
+            - --manager-url
+            - http://longhorn-backend:9500/v1
           env:
-          - name: POD_NAMESPACE
-            valueFrom:
-              fieldRef:
-                fieldPath: metadata.namespace
-          - name: NODE_NAME
-            valueFrom:
-              fieldRef:
-                fieldPath: spec.nodeName
-          - name: SERVICE_ACCOUNT
-            valueFrom:
-              fieldRef:
-                fieldPath: spec.serviceAccountName
-          - name: CSI_ATTACHER_IMAGE
-            value: "longhornio/csi-attacher:v4.8.0"
-          - name: CSI_PROVISIONER_IMAGE
-            value: "longhornio/csi-provisioner:v5.1.0-20241220"
-          - name: CSI_NODE_DRIVER_REGISTRAR_IMAGE
-            value: "longhornio/csi-node-driver-registrar:v2.13.0"
-          - name: CSI_RESIZER_IMAGE
-            value: "longhornio/csi-resizer:v1.13.1"
-          - name: CSI_SNAPSHOTTER_IMAGE
-            value: "longhornio/csi-snapshotter:v8.2.0"
-          - name: CSI_LIVENESS_PROBE_IMAGE
-            value: "longhornio/livenessprobe:v2.15.0"
-          - name: CSI_ATTACHER_REPLICA_COUNT
-            value: "1"
-          - name: CSI_PROVISIONER_REPLICA_COUNT
-            value: "1"
-          - name: CSI_RESIZER_REPLICA_COUNT
-            value: "1"
-          - name: CSI_SNAPSHOTTER_REPLICA_COUNT
-            value: "1"
+            - name: POD_NAMESPACE
+              valueFrom:
+                fieldRef:
+                  fieldPath: metadata.namespace
+            - name: NODE_NAME
+              valueFrom:
+                fieldRef:
+                  fieldPath: spec.nodeName
+            - name: SERVICE_ACCOUNT
+              valueFrom:
+                fieldRef:
+                  fieldPath: spec.serviceAccountName
+            - name: CSI_ATTACHER_IMAGE
+              value: "longhornio/csi-attacher:v4.8.1"
+            - name: CSI_PROVISIONER_IMAGE
+              value: "longhornio/csi-provisioner:v5.2.0"
+            - name: CSI_NODE_DRIVER_REGISTRAR_IMAGE
+              value: "longhornio/csi-node-driver-registrar:v2.13.0"
+            - name: CSI_RESIZER_IMAGE
+              value: "longhornio/csi-resizer:v1.13.2"
+            - name: CSI_SNAPSHOTTER_IMAGE
+              value: "longhornio/csi-snapshotter:v8.2.0"
+            - name: CSI_LIVENESS_PROBE_IMAGE
+              value: "longhornio/livenessprobe:v2.15.0"
+            - name: CSI_ATTACHER_REPLICA_COUNT
+              value: "1"
+            - name: CSI_PROVISIONER_REPLICA_COUNT
+              value: "1"
+            - name: CSI_RESIZER_REPLICA_COUNT
+              value: "1"
+            - name: CSI_SNAPSHOTTER_REPLICA_COUNT
+              value: "1"
       priorityClassName: "longhorn-critical"
       serviceAccountName: longhorn-service-account
       securityContext:
@@ -5239,183 +5395,42 @@ spec:
       affinity:
         podAntiAffinity:
           preferredDuringSchedulingIgnoredDuringExecution:
-          - weight: 1
-            podAffinityTerm:
-              labelSelector:
-                matchExpressions:
-                - key: app
-                  operator: In
-                  values:
-                  - longhorn-ui
-              topologyKey: kubernetes.io/hostname
+            - weight: 1
+              podAffinityTerm:
+                labelSelector:
+                  matchExpressions:
+                    - key: app
+                      operator: In
+                      values:
+                        - longhorn-ui
+                topologyKey: kubernetes.io/hostname
       containers:
-      - name: longhorn-ui
-        image: longhornio/longhorn-ui:v1.8.0
-        imagePullPolicy: IfNotPresent
-        volumeMounts:
-        - name : nginx-cache
-          mountPath: /var/cache/nginx/
-        - name : nginx-config
-          mountPath: /var/config/nginx/
-        - name: var-run
-          mountPath: /var/run/
-        ports:
-        - containerPort: 8000
-          name: http
-        env:
-          - name: LONGHORN_MANAGER_IP
-            value: "http://longhorn-backend:9500"
-          - name: LONGHORN_UI_PORT
-            value: "8000"
+        - name: longhorn-ui
+          image: longhornio/longhorn-ui:v1.8.1
+          imagePullPolicy: IfNotPresent
+          volumeMounts:
+            - name: nginx-cache
+              mountPath: /var/cache/nginx/
+            - name: nginx-config
+              mountPath: /var/config/nginx/
+            - name: var-run
+              mountPath: /var/run/
+          ports:
+            - containerPort: 8000
+              name: http
+          env:
+            - name: LONGHORN_MANAGER_IP
+              value: "http://longhorn-backend:9500"
+            - name: LONGHORN_UI_PORT
+              value: "8000"
       volumes:
-      - emptyDir: {}
-        name: nginx-cache
-      - emptyDir: {}
-        name: nginx-config
-      - emptyDir: {}
-        name: var-run
+        - emptyDir: {}
+          name: nginx-cache
+        - emptyDir: {}
+          name: nginx-config
+        - emptyDir: {}
+          name: var-run
       priorityClassName: "longhorn-critical"
 ---
 # Source: longhorn/templates/validate-psp-install.yaml
 #
----
-# Source: longhorn/templates/postupgrade-job.yaml
-apiVersion: batch/v1
-kind: Job
-metadata:
-  annotations:
-    "helm.sh/hook": post-upgrade
-    "helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation
-  name: longhorn-post-upgrade
-  namespace: longhorn-system
-  labels:
-    app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.8.0
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.8.0
-spec:
-  activeDeadlineSeconds: 900
-  backoffLimit: 1
-  template:
-    metadata:
-      name: longhorn-post-upgrade
-      labels:
-        app.kubernetes.io/name: longhorn
-        helm.sh/chart: longhorn-1.8.0
-        app.kubernetes.io/managed-by: Helm
-        app.kubernetes.io/instance: longhorn
-        app.kubernetes.io/version: v1.8.0
-    spec:
-      containers:
-      - name: longhorn-post-upgrade
-        image: longhornio/longhorn-manager:v1.8.0
-        imagePullPolicy: IfNotPresent
-        command:
-        - longhorn-manager
-        - post-upgrade
-        env:
-        - name: POD_NAMESPACE
-          valueFrom:
-            fieldRef:
-              fieldPath: metadata.namespace
-      restartPolicy: OnFailure
-      priorityClassName: "longhorn-critical"
-      serviceAccountName: longhorn-service-account
----
-# Source: longhorn/templates/preupgrade-job.yaml
-apiVersion: batch/v1
-kind: Job
-metadata:
-  annotations:
-    "helm.sh/hook": pre-upgrade
-    "helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation,hook-failed
-  name: longhorn-pre-upgrade
-  namespace: longhorn-system
-  labels:
-    app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.8.0
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.8.0
-spec:
-  activeDeadlineSeconds: 900
-  backoffLimit: 1
-  template:
-    metadata:
-      name: longhorn-pre-upgrade
-      labels:
-        app.kubernetes.io/name: longhorn
-        helm.sh/chart: longhorn-1.8.0
-        app.kubernetes.io/managed-by: Helm
-        app.kubernetes.io/instance: longhorn
-        app.kubernetes.io/version: v1.8.0
-    spec:
-      containers:
-      - name: longhorn-pre-upgrade
-        image: longhornio/longhorn-manager:v1.8.0
-        imagePullPolicy: IfNotPresent
-        securityContext:
-          privileged: true
-        command:
-        - longhorn-manager
-        - pre-upgrade
-        volumeMounts:
-        - name: proc
-          mountPath: /host/proc/
-        env:
-        - name: POD_NAMESPACE
-          valueFrom:
-            fieldRef:
-              fieldPath: metadata.namespace
-      volumes:
-      - name: proc
-        hostPath:
-          path: /proc/
-      restartPolicy: OnFailure
-      serviceAccountName: longhorn-service-account
----
-# Source: longhorn/templates/uninstall-job.yaml
-apiVersion: batch/v1
-kind: Job
-metadata:
-  annotations:
-    "helm.sh/hook": pre-delete
-    "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
-  name: longhorn-uninstall
-  namespace: longhorn-system
-  labels:
-    app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.8.0
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.8.0
-spec:
-  activeDeadlineSeconds: 900
-  backoffLimit: 1
-  template:
-    metadata:
-      name: longhorn-uninstall
-      labels:
-        app.kubernetes.io/name: longhorn
-        helm.sh/chart: longhorn-1.8.0
-        app.kubernetes.io/managed-by: Helm
-        app.kubernetes.io/instance: longhorn
-        app.kubernetes.io/version: v1.8.0
-    spec:
-      containers:
-      - name: longhorn-uninstall
-        image: longhornio/longhorn-manager:v1.8.0
-        imagePullPolicy: IfNotPresent
-        command:
-        - longhorn-manager
-        - uninstall
-        - --force
-        env:
-        - name: LONGHORN_NAMESPACE
-          valueFrom:
-            fieldRef:
-              fieldPath: metadata.namespace
-      restartPolicy: Never
-      priorityClassName: "longhorn-critical"
-      serviceAccountName: longhorn-service-account
diff --git a/longhorn-system/oracle-backupstore.yaml b/longhorn-system/oracle-backupstore.yaml
new file mode 100644
index 0000000..f0d17b1
--- /dev/null
+++ b/longhorn-system/oracle-backupstore.yaml
@@ -0,0 +1,10 @@
+apiVersion: v1
+kind: Secret
+type: Opaque
+metadata:
+  name: oracle-cloud-secret
+  namespace: longhorn-system
+stringData:
+  AWS_ENDPOINTS: https://frzrgoghscrn.compat.objectstorage.eu-frankfurt-1.oraclecloud.com
+  AWS_ACCESS_KEY_ID: f3576bd8664ca8da586eff1a882cacbdf8edf3f9
+  AWS_SECRET_ACCESS_KEY: aPfDbeycpDITsPjFKmr2FVb5TbIuZoo/E5LsB0m/57c=