diff --git a/chart/Chart.yaml b/chart/Chart.yaml index d4f9d59..81d1cfc 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 name: longhorn -version: 1.1.1 -appVersion: v1.1.1 +version: 1.2.0-preview1 +appVersion: v1.2.0-preview1 kubeVersion: ">=v1.16.0-r0" description: Longhorn is a distributed block storage system for Kubernetes. keywords: diff --git a/chart/questions.yml b/chart/questions.yml index 6ab86c4..57acd07 100644 --- a/chart/questions.yml +++ b/chart/questions.yml @@ -17,7 +17,7 @@ questions: label: Longhorn Manager Image Repository group: "Longhorn Images Settings" - variable: image.longhorn.manager.tag - default: v1.1.1 + default: v1.2.0-preview1 description: "Specify Longhorn Manager Image Tag" type: string label: Longhorn Manager Image Tag @@ -29,7 +29,7 @@ questions: label: Longhorn Engine Image Repository group: "Longhorn Images Settings" - variable: image.longhorn.engine.tag - default: v1.1.1 + default: v1.2.0-preview1 description: "Specify Longhorn Engine Image Tag" type: string label: Longhorn Engine Image Tag @@ -41,7 +41,7 @@ questions: label: Longhorn UI Image Repository group: "Longhorn Images Settings" - variable: image.longhorn.ui.tag - default: v1.1.1 + default: v1.2.0-preview1 description: "Specify Longhorn UI Image Tag" type: string label: Longhorn UI Image Tag @@ -53,7 +53,7 @@ questions: label: Longhorn Instance Manager Image Repository group: "Longhorn Images Settings" - variable: image.longhorn.instanceManager.tag - default: v1_20201216 + default: v1_20210731 description: "Specify Longhorn Instance Manager Image Tag" type: string label: Longhorn Instance Manager Image Tag @@ -77,7 +77,7 @@ questions: label: Longhorn Backing Image Manager Image Repository group: "Longhorn Images Settings" - variable: image.longhorn.backingImageManager.tag - default: v1_20210422 + default: v2_20210809 description: "Specify Longhorn Backing Image Manager Image Tag" type: string label: Longhorn Backing Image Manager Image Tag diff --git a/chart/templates/clusterrole.yaml b/chart/templates/clusterrole.yaml index 6ccbbeb..fc6c936 100644 --- a/chart/templates/clusterrole.yaml +++ b/chart/templates/clusterrole.yaml @@ -38,7 +38,8 @@ rules: resources: ["volumes", "volumes/status", "engines", "engines/status", "replicas", "replicas/status", "settings", "engineimages", "engineimages/status", "nodes", "nodes/status", "instancemanagers", "instancemanagers/status", "sharemanagers", "sharemanagers/status", "backingimages", "backingimages/status", - "backingimagemanagers", "backingimagemanagers/status", "backingimagedatasources", "backingimagedatasources/status"] + "backingimagemanagers", "backingimagemanagers/status", "backingimagedatasources", "backingimagedatasources/status", + "backuptargets", "backuptargets/status", "backupvolumes", "backupvolumes/status", "backups", "backups/status"] verbs: ["*"] - apiGroups: ["coordination.k8s.io"] resources: ["leases"] diff --git a/chart/templates/crds.yaml b/chart/templates/crds.yaml index c871f20..c1a3314 100644 --- a/chart/templates/crds.yaml +++ b/chart/templates/crds.yaml @@ -523,3 +523,152 @@ spec: - name: Age type: date jsonPath: .metadata.creationTimestamp +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + longhorn-manager: BackupTarget + name: backuptargets.longhorn.io +spec: + group: longhorn.io + names: + kind: BackupTarget + listKind: BackupTargetList + plural: backuptargets + shortNames: + - lhbt + singular: backuptarget + scope: Namespaced + versions: + - name: v1beta1 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + properties: + spec: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + subresources: + status: {} + additionalPrinterColumns: + - name: URL + type: string + description: The backup target URL + jsonPath: .spec.backupTargetURL + - name: Credential + type: string + description: The backup target credential secret + jsonPath: .spec.credentialSecret + - name: Interval + type: string + description: The backup target poll interval + jsonPath: .spec.pollInterval + - name: Available + type: boolean + description: Indicate whether the backup target is available or not + jsonPath: .status.available + - name: LastSyncedAt + type: string + description: The backup target last synced time + jsonPath: .status.lastSyncedAt +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + longhorn-manager: BackupVolume + name: backupvolumes.longhorn.io +spec: + group: longhorn.io + names: + kind: BackupVolume + listKind: BackupVolumeList + plural: backupvolumes + shortNames: + - lhbv + singular: backupvolume + scope: Namespaced + versions: + - name: v1beta1 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + properties: + spec: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + subresources: + status: {} + additionalPrinterColumns: + - name: CreatedAt + type: string + description: The backup volume creation time + jsonPath: .status.createdAt + - name: LastBackupName + type: string + description: The backup volume last backup name + jsonPath: .status.lastBackupName + - name: LastBackupAt + type: string + description: The backup volume last backup time + jsonPath: .status.lastBackupAt + - name: LastSyncedAt + type: string + description: The backup volume last synced time + jsonPath: .status.lastSyncedAt +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + longhorn-manager: Backup + name: backups.longhorn.io +spec: + group: longhorn.io + names: + kind: Backup + listKind: BackupList + plural: backups + shortNames: + - lhb + singular: backup + scope: Namespaced + versions: + - name: v1beta1 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + properties: + spec: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + subresources: + status: {} + additionalPrinterColumns: + - name: SnapshotName + type: string + description: The snapshot name + jsonPath: .status.snapshotName + - name: SnapshotSize + type: string + description: The snapshot size + jsonPath: .status.size + - name: SnapshotCreatedAt + type: string + description: The snapshot creation time + jsonPath: .status.snapshotCreatedAt + - name: LastSyncedAt + type: string + description: The backup last synced time + jsonPath: .status.lastSyncedAt +--- \ No newline at end of file diff --git a/chart/values.yaml b/chart/values.yaml index 986c3ad..9ccef94 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -9,22 +9,22 @@ image: longhorn: engine: repository: longhornio/longhorn-engine - tag: v1.1.1 + tag: v1.2.0-preview1 manager: repository: longhornio/longhorn-manager - tag: v1.1.1 + tag: v1.2.0-preview1 ui: repository: longhornio/longhorn-ui - tag: v1.1.1 + tag: v1.2.0-preview1 instanceManager: repository: longhornio/longhorn-instance-manager - tag: v1_20201216 + tag: v1_20210731 shareManager: repository: longhornio/longhorn-share-manager tag: v1_20210416 backingImageManager: repository: longhornio/backing-image-manager - tag: v1_20210422 + tag: v2_20210809 csi: attacher: repository: longhornio/csi-attacher diff --git a/deploy/backupstores/nfs-backupstore.yaml b/deploy/backupstores/nfs-backupstore.yaml index af3aa39..e351c50 100644 --- a/deploy/backupstores/nfs-backupstore.yaml +++ b/deploy/backupstores/nfs-backupstore.yaml @@ -35,6 +35,7 @@ spec: command: ["bash", "-c", "grep \"No export entries found\" /var/log/ganesha.log > /dev/null 2>&1 ; [ $? -ne 0 ]"] initialDelaySeconds: 5 periodSeconds: 5 + timeoutSeconds: 4 --- kind: Service apiVersion: v1 diff --git a/deploy/longhorn-images.txt b/deploy/longhorn-images.txt index 8a404d3..d7db982 100644 --- a/deploy/longhorn-images.txt +++ b/deploy/longhorn-images.txt @@ -1,11 +1,11 @@ -longhornio/csi-attacher:v2.2.1-lh1 +longhornio/csi-attacher:v2.2.1-lh2 longhornio/csi-node-driver-registrar:v1.2.0-lh1 -longhornio/csi-provisioner:v1.6.0-lh1 -longhornio/csi-resizer:v0.5.1-lh1 -longhornio/csi-snapshotter:v2.1.1-lh1 -longhornio/backing-image-manager:v1_20210422 -longhornio/longhorn-engine:v1.1.1 -longhornio/longhorn-instance-manager:v1_20201216 -longhornio/longhorn-manager:v1.1.1 +longhornio/csi-provisioner:v1.6.0-lh2 +longhornio/csi-resizer:v0.5.1-lh2 +longhornio/csi-snapshotter:v2.1.1-lh2 +longhornio/backing-image-manager:v2_20210809 +longhornio/longhorn-engine:v1.2.0-preview1 +longhornio/longhorn-instance-manager:v1_20210731 +longhornio/longhorn-manager:v1.2.0-preview1 longhornio/longhorn-share-manager:v1_20210416 -longhornio/longhorn-ui:v1.1.1 +longhornio/longhorn-ui:v1.2.0-preview1 diff --git a/deploy/longhorn.yaml b/deploy/longhorn.yaml index 359beb7..9a6ecf5 100644 --- a/deploy/longhorn.yaml +++ b/deploy/longhorn.yaml @@ -48,7 +48,8 @@ rules: resources: ["volumes", "volumes/status", "engines", "engines/status", "replicas", "replicas/status", "settings", "engineimages", "engineimages/status", "nodes", "nodes/status", "instancemanagers", "instancemanagers/status", "sharemanagers", "sharemanagers/status", "backingimages", "backingimages/status", - "backingimagemanagers", "backingimagemanagers/status"] + "backingimagemanagers", "backingimagemanagers/status", "backingimagedatasources", "backingimagedatasources/status", + "backuptargets", "backuptargets/status", "backupvolumes", "backupvolumes/status", "backups", "backups/status"] verbs: ["*"] - apiGroups: ["coordination.k8s.io"] resources: ["leases"] @@ -545,6 +546,205 @@ spec: type: date jsonPath: .metadata.creationTimestamp --- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + longhorn-manager: BackingImageDataSource + name: backingimagedatasources.longhorn.io +spec: + group: longhorn.io + names: + kind: BackingImageDataSource + listKind: BackingImageDataSourceList + plural: backingimagedatasources + shortNames: + - lhbids + singular: backingimagedatasource + scope: Namespaced + versions: + - name: v1beta1 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + properties: + spec: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + subresources: + status: {} + additionalPrinterColumns: + - name: State + type: string + description: The current state of the pod used to provisione the backing image file from source + jsonPath: .status.currentState + - name: SourceType + type: string + description: The data source type + jsonPath: .spec.sourceType + - name: Node + type: string + description: The node the backing image file will be prepared on + jsonPath: .spec.nodeID + - name: DiskUUID + type: string + description: The disk the backing image file will be prepared on + jsonPath: .spec.diskUUID + - name: Age + type: date + jsonPath: .metadata.creationTimestamp +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + longhorn-manager: BackupTarget + name: backuptargets.longhorn.io +spec: + group: longhorn.io + names: + kind: BackupTarget + listKind: BackupTargetList + plural: backuptargets + shortNames: + - lhbt + singular: backuptarget + scope: Namespaced + versions: + - name: v1beta1 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + properties: + spec: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + subresources: + status: {} + additionalPrinterColumns: + - name: URL + type: string + description: The backup target URL + jsonPath: .spec.backupTargetURL + - name: Credential + type: string + description: The backup target credential secret + jsonPath: .spec.credentialSecret + - name: Interval + type: string + description: The backup target poll interval + jsonPath: .spec.pollInterval + - name: Available + type: boolean + description: Indicate whether the backup target is available or not + jsonPath: .status.available + - name: LastSyncedAt + type: string + description: The backup target last synced time + jsonPath: .status.lastSyncedAt +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + longhorn-manager: BackupVolume + name: backupvolumes.longhorn.io +spec: + group: longhorn.io + names: + kind: BackupVolume + listKind: BackupVolumeList + plural: backupvolumes + shortNames: + - lhbv + singular: backupvolume + scope: Namespaced + versions: + - name: v1beta1 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + properties: + spec: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + subresources: + status: {} + additionalPrinterColumns: + - name: CreatedAt + type: string + description: The backup volume creation time + jsonPath: .status.createdAt + - name: LastBackupName + type: string + description: The backup volume last backup name + jsonPath: .status.lastBackupName + - name: LastBackupAt + type: string + description: The backup volume last backup time + jsonPath: .status.lastBackupAt + - name: LastSyncedAt + type: string + description: The backup volume last synced time + jsonPath: .status.lastSyncedAt +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + labels: + longhorn-manager: Backup + name: backups.longhorn.io +spec: + group: longhorn.io + names: + kind: Backup + listKind: BackupList + plural: backups + shortNames: + - lhb + singular: backup + scope: Namespaced + versions: + - name: v1beta1 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + properties: + spec: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + subresources: + status: {} + additionalPrinterColumns: + - name: SnapshotName + type: string + description: The snapshot name + jsonPath: .status.snapshotName + - name: SnapshotSize + type: string + description: The snapshot size + jsonPath: .status.size + - name: SnapshotCreatedAt + type: string + description: The snapshot creation time + jsonPath: .status.snapshotCreatedAt + - name: LastSyncedAt + type: string + description: The backup last synced time + jsonPath: .status.lastSyncedAt +--- apiVersion: v1 kind: ConfigMap metadata: @@ -696,7 +896,7 @@ spec: spec: containers: - name: longhorn-manager - image: longhornio/longhorn-manager:v1.1.1 + image: longhornio/longhorn-manager:v1.2.0-preview1 imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -705,15 +905,15 @@ spec: - -d - daemon - --engine-image - - longhornio/longhorn-engine:v1.1.1 + - longhornio/longhorn-engine:v1.2.0-preview1 - --instance-manager-image - - longhornio/longhorn-instance-manager:v1_20201216 + - longhornio/longhorn-instance-manager:v1_20210731 - --share-manager-image - longhornio/longhorn-share-manager:v1_20210416 - --backing-image-manager-image - - longhornio/backing-image-manager:v1_20210422 + - longhornio/backing-image-manager:v2_20210809 - --manager-image - - longhornio/longhorn-manager:v1.1.1 + - longhornio/longhorn-manager:v1.2.0-preview1 - --service-account - longhorn-service-account ports: @@ -813,7 +1013,7 @@ spec: spec: containers: - name: longhorn-ui - image: longhornio/longhorn-ui:v1.1.1 + image: longhornio/longhorn-ui:v1.2.0-preview1 imagePullPolicy: IfNotPresent securityContext: runAsUser: 0 @@ -869,18 +1069,18 @@ spec: spec: initContainers: - name: wait-longhorn-manager - image: longhornio/longhorn-manager:v1.1.1 + image: longhornio/longhorn-manager:v1.2.0-preview1 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.1.1 + image: longhornio/longhorn-manager:v1.2.0-preview1 imagePullPolicy: IfNotPresent command: - longhorn-manager - -d - deploy-driver - --manager-image - - longhornio/longhorn-manager:v1.1.1 + - longhornio/longhorn-manager:v1.2.0-preview1 - --manager-url - http://longhorn-backend:9500/v1 env: diff --git a/deploy/release-images.txt b/deploy/release-images.txt index 8a404d3..d7db982 100644 --- a/deploy/release-images.txt +++ b/deploy/release-images.txt @@ -1,11 +1,11 @@ -longhornio/csi-attacher:v2.2.1-lh1 +longhornio/csi-attacher:v2.2.1-lh2 longhornio/csi-node-driver-registrar:v1.2.0-lh1 -longhornio/csi-provisioner:v1.6.0-lh1 -longhornio/csi-resizer:v0.5.1-lh1 -longhornio/csi-snapshotter:v2.1.1-lh1 -longhornio/backing-image-manager:v1_20210422 -longhornio/longhorn-engine:v1.1.1 -longhornio/longhorn-instance-manager:v1_20201216 -longhornio/longhorn-manager:v1.1.1 +longhornio/csi-provisioner:v1.6.0-lh2 +longhornio/csi-resizer:v0.5.1-lh2 +longhornio/csi-snapshotter:v2.1.1-lh2 +longhornio/backing-image-manager:v2_20210809 +longhornio/longhorn-engine:v1.2.0-preview1 +longhornio/longhorn-instance-manager:v1_20210731 +longhornio/longhorn-manager:v1.2.0-preview1 longhornio/longhorn-share-manager:v1_20210416 -longhornio/longhorn-ui:v1.1.1 +longhornio/longhorn-ui:v1.2.0-preview1 diff --git a/examples/crypto/secret-crypto-global.yaml b/examples/crypto/secret-crypto-global.yaml new file mode 100644 index 0000000..87cbbbc --- /dev/null +++ b/examples/crypto/secret-crypto-global.yaml @@ -0,0 +1,9 @@ +--- +apiVersion: v1 +kind: Secret +metadata: + name: longhorn-crypto + namespace: longhorn-system +stringData: + CRYPTO_KEY_VALUE: "Simple passphrase" + CRYPTO_KEY_PROVIDER: "secret" # this is optional we currently only support direct keys via secrets \ No newline at end of file diff --git a/examples/crypto/storageclass-crypto-global.yaml b/examples/crypto/storageclass-crypto-global.yaml new file mode 100644 index 0000000..361e4a7 --- /dev/null +++ b/examples/crypto/storageclass-crypto-global.yaml @@ -0,0 +1,26 @@ +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: longhorn-crypto-global +provisioner: driver.longhorn.io +allowVolumeExpansion: true +parameters: + numberOfReplicas: "3" + staleReplicaTimeout: "2880" # 48 hours in minutes + fromBackup: "" + encrypted: "true" + # we currently don't need secrets for volume creation + # but it allows for failing the CreateVolume call early + # if the required secret has not been setup yet. + csi.storage.k8s.io/provisioner-secret-name: "longhorn-crypto" + csi.storage.k8s.io/provisioner-secret-namespace: "longhorn-system" + csi.storage.k8s.io/node-publish-secret-name: "longhorn-crypto" + csi.storage.k8s.io/node-publish-secret-namespace: "longhorn-system" + csi.storage.k8s.io/node-stage-secret-name: "longhorn-crypto" + csi.storage.k8s.io/node-stage-secret-namespace: "longhorn-system" + # we only need crypto keys for node operations, I left these as examples + # in case we implement external key vaults in the future + # csi.storage.k8s.io/controller-publish-secret-name: "longhorn-crypto" + # csi.storage.k8s.io/controller-publish-secret-namespace: "longhorn-system" + # csi.storage.k8s.io/controller-expand-secret-name: "longhorn-crypto" + # csi.storage.k8s.io/controller-expand-secret-namespace: "longhorn-system" \ No newline at end of file diff --git a/examples/crypto/storageclass-crypto-per-volume-dedicated-namespace.yaml b/examples/crypto/storageclass-crypto-per-volume-dedicated-namespace.yaml new file mode 100644 index 0000000..38c4790 --- /dev/null +++ b/examples/crypto/storageclass-crypto-per-volume-dedicated-namespace.yaml @@ -0,0 +1,26 @@ +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: longhorn-secure-per-volume-ns-longhorn-system +provisioner: driver.longhorn.io +allowVolumeExpansion: true +parameters: + numberOfReplicas: "3" + staleReplicaTimeout: "2880" # 48 hours in minutes + fromBackup: "" + encrypted: "true" + # we currently don't need secrets for volume creation + # but it allows for failing the CreateVolume call early + # if the required secret has not been setup yet. + csi.storage.k8s.io/provisioner-secret-name: ${pvc.name} + csi.storage.k8s.io/provisioner-secret-namespace: "longhorn-system" + csi.storage.k8s.io/node-publish-secret-name: ${pvc.name} + csi.storage.k8s.io/node-publish-secret-namespace: "longhorn-system" + csi.storage.k8s.io/node-stage-secret-name: ${pvc.name} + csi.storage.k8s.io/node-stage-secret-namespace: "longhorn-system" + # we only need crypto keys for node operations, I left these as examples + # in case we implement external key vaults in the future + # csi.storage.k8s.io/controller-publish-secret-name: ${pvc.name} + # csi.storage.k8s.io/controller-publish-secret-namespace: "longhorn-system" + # csi.storage.k8s.io/controller-expand-secret-name: ${pvc.name} + # csi.storage.k8s.io/controller-expand-secret-namespace: "longhorn-system" \ No newline at end of file diff --git a/examples/crypto/storageclass-crypto-per-volume.yaml b/examples/crypto/storageclass-crypto-per-volume.yaml new file mode 100644 index 0000000..0bf9a85 --- /dev/null +++ b/examples/crypto/storageclass-crypto-per-volume.yaml @@ -0,0 +1,26 @@ +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: longhorn-crypto-per-volume +provisioner: driver.longhorn.io +allowVolumeExpansion: true +parameters: + numberOfReplicas: "3" + staleReplicaTimeout: "2880" # 48 hours in minutes + fromBackup: "" + encrypted: "true" + # we currently don't need secrets for volume creation + # but it allows for failing the CreateVolume call early + # if the required secret has not been setup yet. + csi.storage.k8s.io/provisioner-secret-name: ${pvc.name} + csi.storage.k8s.io/provisioner-secret-namespace: ${pvc.namespace} + csi.storage.k8s.io/node-publish-secret-name: ${pvc.name} + csi.storage.k8s.io/node-publish-secret-namespace: ${pvc.namespace} + csi.storage.k8s.io/node-stage-secret-name: ${pvc.name} + csi.storage.k8s.io/node-stage-secret-namespace: ${pvc.namespace} + # we only need crypto keys for node operations, I left these as examples + # in case we implement external key vaults in the future + # csi.storage.k8s.io/controller-publish-secret-name: ${pvc.name} + # csi.storage.k8s.io/controller-publish-secret-namespace: ${pvc.namespace} + # csi.storage.k8s.io/controller-expand-secret-name: ${pvc.name} + # csi.storage.k8s.io/controller-expand-secret-namespace: ${pvc.namespace} \ No newline at end of file diff --git a/uninstall/uninstall.yaml b/uninstall/uninstall.yaml index d92ee58..12e60f6 100644 --- a/uninstall/uninstall.yaml +++ b/uninstall/uninstall.yaml @@ -64,7 +64,7 @@ rules: resources: ["csidrivers", "storageclasses"] verbs: ["*"] - apiGroups: ["longhorn.io"] - resources: ["volumes", "engines", "replicas", "settings", "engineimages", "nodes", "instancemanagers", "sharemanagers", "backingimages", "backingimagemanagers"] + resources: ["volumes", "engines", "replicas", "settings", "engineimages", "nodes", "instancemanagers", "sharemanagers", "backingimages", "backingimagemanagers", "backingimagedatasources", "backuptargets", "backupvolumes", "backups"] verbs: ["*"] - apiGroups: ["coordination.k8s.io"] resources: ["leases"] @@ -101,7 +101,7 @@ spec: spec: containers: - name: longhorn-uninstall - image: longhornio/longhorn-manager:v1.1.1 + image: longhornio/longhorn-manager:v1.2.0-preview1 imagePullPolicy: Always securityContext: privileged: true @@ -124,4 +124,4 @@ spec: # effect: "NoSchedule" # nodeSelector: # label-key1: "label-value1" -# label-key2: "label-value2" \ No newline at end of file +# label-key2: "label-value2"