diff --git a/chart/Chart.yaml b/chart/Chart.yaml index ff8ba7c..ca33e39 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 name: longhorn -version: 1.2.0-rc2 -appVersion: v1.2.0-rc2 +version: 1.2.0 +appVersion: v1.2.0 kubeVersion: ">=v1.18.0" description: Longhorn is a distributed block storage system for Kubernetes. keywords: diff --git a/chart/README.md b/chart/README.md index 32a2250..fd54c0e 100644 --- a/chart/README.md +++ b/chart/README.md @@ -18,7 +18,7 @@ Longhorn is 100% open source software. Project source code is spread across a nu ## Prerequisites 1. A container runtime compatible with Kubernetes (Docker v1.13+, containerd v1.3.7+, etc.) -2. Kubernetes v1.16+ +2. Kubernetes v1.18+ 3. Make sure `bash`, `curl`, `findmnt`, `grep`, `awk` and `blkid` has been installed in all nodes of the Kubernetes cluster. 4. Make sure `open-iscsi` has been installed, and the `iscsid` daemon is running on all nodes of the Kubernetes cluster. For GKE, recommended Ubuntu as guest OS image since it contains `open-iscsi` already. diff --git a/chart/questions.yml b/chart/questions.yml index af33f0c..128b070 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.2.0-rc2 + default: v1.2.0 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.2.0-rc2 + default: v1.2.0 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.2.0-rc2 + default: v1.2.0 description: "Specify Longhorn UI Image Tag" type: string label: Longhorn UI Image Tag diff --git a/chart/values.yaml b/chart/values.yaml index a4ab79e..c9d90fb 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -9,13 +9,13 @@ image: longhorn: engine: repository: longhornio/longhorn-engine - tag: v1.2.0-rc2 + tag: v1.2.0 manager: repository: longhornio/longhorn-manager - tag: v1.2.0-rc2 + tag: v1.2.0 ui: repository: longhornio/longhorn-ui - tag: v1.2.0-rc2 + tag: v1.2.0 instanceManager: repository: longhornio/longhorn-instance-manager tag: v1_20210731 diff --git a/deploy/longhorn-images.txt b/deploy/longhorn-images.txt index caffc69..67de33a 100644 --- a/deploy/longhorn-images.txt +++ b/deploy/longhorn-images.txt @@ -4,8 +4,8 @@ k8s.gcr.io/sig-storage/csi-resizer:v1.2.0 k8s.gcr.io/sig-storage/csi-snapshotter:v3.0.3 k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.3.0 longhornio/backing-image-manager:v2_20210820 -longhornio/longhorn-engine:v1.2.0-rc2 +longhornio/longhorn-engine:v1.2.0 longhornio/longhorn-instance-manager:v1_20210731 -longhornio/longhorn-manager:v1.2.0-rc2 +longhornio/longhorn-manager:v1.2.0 longhornio/longhorn-share-manager:v1_20210820 -longhornio/longhorn-ui:v1.2.0-rc2 +longhornio/longhorn-ui:v1.2.0 diff --git a/deploy/longhorn.yaml b/deploy/longhorn.yaml index c71ac90..55db063 100644 --- a/deploy/longhorn.yaml +++ b/deploy/longhorn.yaml @@ -39,7 +39,7 @@ rules: resources: ["priorityclasses"] verbs: ["watch", "list"] - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses", "volumeattachments","volumeattachments/status", "csinodes", "csidrivers"] + resources: ["storageclasses", "volumeattachments", "volumeattachments/status", "csinodes", "csidrivers"] verbs: ["*"] - apiGroups: ["snapshot.storage.k8s.io"] resources: ["volumesnapshotclasses", "volumesnapshots", "volumesnapshotcontents", "volumesnapshotcontents/status"] @@ -611,44 +611,44 @@ spec: listKind: BackupTargetList plural: backuptargets shortNames: - - lhbt + - 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 + - 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 @@ -663,40 +663,40 @@ spec: listKind: BackupVolumeList plural: backupvolumes shortNames: - - lhbv + - 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 + - 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 @@ -711,45 +711,44 @@ spec: listKind: BackupList plural: backups shortNames: - - lhb + - 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: State - type: string - description: The backup state - jsonPath: .status.state - - name: LastSyncedAt - type: string - description: The backup last synced time - jsonPath: .status.lastSyncedAt - + - 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: State + type: string + description: The backup state + jsonPath: .status.state + - name: LastSyncedAt + type: string + description: The backup last synced time + jsonPath: .status.lastSyncedAt --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition @@ -764,72 +763,72 @@ spec: listKind: RecurringJobList plural: recurringjobs shortNames: - - lhrj + - lhrj singular: recurringjob scope: Namespaced versions: - - name: v1beta1 - served: true - storage: true - schema: - openAPIV3Schema: - type: object - properties: - metadata: - type: object - properties: - name: + - name: v1beta1 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + properties: + metadata: + type: object + properties: + name: + type: string + spec: + type: object + properties: + groups: + type: array + items: type: string - spec: - type: object - properties: - groups: - type: array - items: - type: string - task: - type: string - pattern: "^snapshot|backup$" - cron: - type: string - retain: - type: integer - concurrency: - type: integer - labels: - x-kubernetes-preserve-unknown-fields: true - status: - x-kubernetes-preserve-unknown-fields: true - subresources: - status: {} - additionalPrinterColumns: - - name: Groups - type: string - 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: Task - type: string - description: Should be one of "backup" or "snapshot". - jsonPath: .spec.task - - name: Cron - type: string - description: The cron expression represents recurring job scheduling. - jsonPath: .spec.cron - - name: Retain - type: integer - description: The number of snapshots/backups to keep for the volume. - jsonPath: .spec.retain - - name: Concurrency - type: integer - description: The concurrent job to run by each cron job. - jsonPath: .spec.concurrency - - name: Age - type: date - jsonPath: .metadata.creationTimestamp - - name: Labels - type: string - description: Specify the labels - jsonPath: .spec.labels + task: + type: string + pattern: "^snapshot|backup$" + cron: + type: string + retain: + type: integer + concurrency: + type: integer + labels: + x-kubernetes-preserve-unknown-fields: true + status: + x-kubernetes-preserve-unknown-fields: true + subresources: + status: {} + additionalPrinterColumns: + - name: Groups + type: string + 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: Task + type: string + description: Should be one of "backup" or "snapshot". + jsonPath: .spec.task + - name: Cron + type: string + description: The cron expression represents recurring job scheduling. + jsonPath: .spec.cron + - name: Retain + type: integer + description: The number of snapshots/backups to keep for the volume. + jsonPath: .spec.retain + - name: Concurrency + type: integer + description: The concurrent job to run by each cron job. + jsonPath: .spec.concurrency + - name: Age + type: date + jsonPath: .metadata.creationTimestamp + - name: Labels + type: string + description: Specify the labels + jsonPath: .spec.labels --- --- apiVersion: v1 @@ -845,12 +844,12 @@ data: create-default-disk-labeled-nodes: default-data-path: replica-soft-anti-affinity: + replica-auto-balance: storage-over-provisioning-percentage: storage-minimal-available-percentage: upgrade-checker: default-replica-count: default-data-locality: - guaranteed-engine-cpu: default-longhorn-static-storage-class: backupstore-poll-interval: taint-toleration: @@ -860,7 +859,6 @@ data: auto-delete-pod-when-volume-detached-unexpectedly: disable-scheduling-on-cordoned-node: replica-zone-soft-anti-affinity: - volume-attachment-recovery-policy: node-down-pod-deletion-policy: allow-node-drain-with-last-healthy-replica: mkfs-ext4-parameters: @@ -874,7 +872,6 @@ data: backing-image-cleanup-wait-interval: guaranteed-engine-manager-cpu: guaranteed-replica-manager-cpu: - --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy @@ -984,7 +981,7 @@ spec: spec: containers: - name: longhorn-manager - image: longhornio/longhorn-manager:v1.2.0-rc2 + image: longhornio/longhorn-manager:v1.2.0 imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -993,7 +990,7 @@ spec: - -d - daemon - --engine-image - - longhornio/longhorn-engine:v1.2.0-rc2 + - longhornio/longhorn-engine:v1.2.0 - --instance-manager-image - longhornio/longhorn-instance-manager:v1_20210731 - --share-manager-image @@ -1001,7 +998,7 @@ spec: - --backing-image-manager-image - longhornio/backing-image-manager:v2_20210820 - --manager-image - - longhornio/longhorn-manager:v1.2.0-rc2 + - longhornio/longhorn-manager:v1.2.0 - --service-account - longhorn-service-account ports: @@ -1101,7 +1098,7 @@ spec: spec: containers: - name: longhorn-ui - image: longhornio/longhorn-ui:v1.2.0-rc2 + image: longhornio/longhorn-ui:v1.2.0 imagePullPolicy: IfNotPresent securityContext: runAsUser: 0 @@ -1157,18 +1154,18 @@ spec: spec: initContainers: - name: wait-longhorn-manager - image: longhornio/longhorn-manager:v1.2.0-rc2 + image: longhornio/longhorn-manager:v1.2.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'] containers: - name: longhorn-driver-deployer - image: longhornio/longhorn-manager:v1.2.0-rc2 + image: longhornio/longhorn-manager:v1.2.0 imagePullPolicy: IfNotPresent command: - longhorn-manager - -d - deploy-driver - --manager-image - - longhornio/longhorn-manager:v1.2.0-rc2 + - longhornio/longhorn-manager:v1.2.0 - --manager-url - http://longhorn-backend:9500/v1 env: diff --git a/uninstall/uninstall.yaml b/uninstall/uninstall.yaml index 3adacec..98ec36b 100644 --- a/uninstall/uninstall.yaml +++ b/uninstall/uninstall.yaml @@ -101,7 +101,7 @@ spec: spec: containers: - name: longhorn-uninstall - image: longhornio/longhorn-manager:v1.2.0-rc2 + image: longhornio/longhorn-manager:v1.2.0 imagePullPolicy: Always securityContext: privileged: true