diff --git a/chart/Chart.yaml b/chart/Chart.yaml index d898eef643..465920edfa 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 name: longhorn -version: 1.2.0 -appVersion: v1.2.0 +version: 1.2.2 +appVersion: v1.2.2 kubeVersion: ">=1.18.0-0" description: Longhorn is a distributed block storage system for Kubernetes. keywords: diff --git a/chart/questions.yml b/chart/questions.yml index 93f0677aa5..ae34eba22f 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 + default: v1.2.2 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 + default: v1.2.2 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 + default: v1.2.2 description: "Specify Longhorn UI Image Tag" type: string label: Longhorn UI Image Tag @@ -391,6 +391,18 @@ Warning: This option works only when there is a failed replica in the volume. An type: int min: 0 default: 600 + - variable: defaultSettings.concurrentReplicaRebuildPerNodeLimit + label: Concurrent Replica Rebuild Per Node Limit + description: "This setting controls how many replicas on a node can be rebuilt simultaneously. +Typically, Longhorn can block the replica starting once the current rebuilding count on a node exceeds the limit. But when the value is 0, it means disabling the replica rebuilding. +WARNING: +- The old setting \"Disable Replica Rebuild\" is replaced by this setting. +- Different from relying on replica starting delay to limit the concurrent rebuilding, if the rebuilding is disabled, replica object replenishment will be directly skipped. +- When the value is 0, the eviction and data locality feature won't work. But this shouldn't have any impact to any current replica rebuild and backup restore." + group: "Longhorn Default Settings" + type: int + min: 0 + default: 5 - variable: defaultSettings.disableRevisionCounter label: Disable Revision Counter description: "This setting is only for volumes created by UI. By default, this is false meaning there will be a reivision counter file to track every write to the volume. During salvage recovering Longhorn will pick the repica with largest reivision counter as candidate to recover the whole volume. If revision counter is disabled, Longhorn will not track every write to the volume. During the salvage recovering, Longhorn will use the 'volume-head-xxx.img' file last modification time and file size to pick the replica candidate to recover the whole volume." @@ -433,6 +445,16 @@ Warning: This option works only when there is a failed replica in the volume. An type: int min: 0 default: 60 + - variable: defaultSettings.backingImageRecoveryWaitInterval + label: Backing Image Recovery Wait Interval + description: "This interval in seconds determines how long Longhorn will wait before re-downloading the backing image file when all disk files of this backing image become failed or unknown. + WARNING: + - This recovery only works for the backing image of which the creation type is \"download\". + - File state \"unknown\" means the related manager pods on the pod is not running or the node itself is down/disconnected." + group: "Longhorn Default Settings" + type: int + min: 0 + default: 300 - variable: defaultSettings.guaranteedEngineManagerCPU label: Guaranteed Engine Manager CPU description: "This integer value indicates how many percentage of the total allocatable CPU on each node will be reserved for each engine manager Pod. For example, 10 means 10% of the total CPU on a node will be allocated to each engine manager pod on this node. This will help maintain engine stability during high node workload. diff --git a/chart/templates/default-setting.yaml b/chart/templates/default-setting.yaml index 2b8ec214c1..6f87996718 100644 --- a/chart/templates/default-setting.yaml +++ b/chart/templates/default-setting.yaml @@ -32,11 +32,13 @@ data: mkfs-ext4-parameters: {{ .Values.defaultSettings.mkfsExt4Parameters }} disable-replica-rebuild: {{ .Values.defaultSettings.disableReplicaRebuild }} replica-replenishment-wait-interval: {{ .Values.defaultSettings.replicaReplenishmentWaitInterval }} + concurrent-replica-rebuild-per-node-limit: {{ .Values.defaultSettings.concurrentReplicaRebuildPerNodeLimit }} disable-revision-counter: {{ .Values.defaultSettings.disableRevisionCounter }} system-managed-pods-image-pull-policy: {{ .Values.defaultSettings.systemManagedPodsImagePullPolicy }} allow-volume-creation-with-degraded-availability: {{ .Values.defaultSettings.allowVolumeCreationWithDegradedAvailability }} auto-cleanup-system-generated-snapshot: {{ .Values.defaultSettings.autoCleanupSystemGeneratedSnapshot }} concurrent-automatic-engine-upgrade-per-node-limit: {{ .Values.defaultSettings.concurrentAutomaticEngineUpgradePerNodeLimit }} backing-image-cleanup-wait-interval: {{ .Values.defaultSettings.backingImageCleanupWaitInterval }} + backing-image-recovery-wait-interval: {{ .Values.defaultSettings.backingImageRecoveryWaitInterval }} guaranteed-engine-manager-cpu: {{ .Values.defaultSettings.guaranteedEngineManagerCPU }} guaranteed-replica-manager-cpu: {{ .Values.defaultSettings.guaranteedReplicaManagerCPU }} diff --git a/chart/values.yaml b/chart/values.yaml index 2cdd0cb4fa..d7a656ff75 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -9,13 +9,13 @@ image: longhorn: engine: repository: longhornio/longhorn-engine - tag: v1.2.0 + tag: v1.2.2 manager: repository: longhornio/longhorn-manager - tag: v1.2.0 + tag: v1.2.2 ui: repository: longhornio/longhorn-ui - tag: v1.2.0 + tag: v1.2.2 instanceManager: repository: longhornio/longhorn-instance-manager tag: v1_20210731 @@ -100,12 +100,14 @@ defaultSettings: mkfsExt4Parameters: ~ disableReplicaRebuild: ~ replicaReplenishmentWaitInterval: ~ + concurrentReplicaRebuildPerNodeLimit: ~ disableRevisionCounter: ~ systemManagedPodsImagePullPolicy: ~ allowVolumeCreationWithDegradedAvailability: ~ autoCleanupSystemGeneratedSnapshot: ~ concurrentAutomaticEngineUpgradePerNodeLimit: ~ backingImageCleanupWaitInterval: ~ + backingImageRecoveryWaitInterval: ~ guaranteedEngineManagerCPU: ~ guaranteedReplicaManagerCPU: ~ privateRegistry: diff --git a/deploy/longhorn-images.txt b/deploy/longhorn-images.txt index 75fe1983d4..005c9cf42d 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 +longhornio/longhorn-engine:v1.2.2 longhornio/longhorn-instance-manager:v1_20210731 -longhornio/longhorn-manager:v1.2.0 +longhornio/longhorn-manager:v1.2.2 longhornio/longhorn-share-manager:v1_20210914 -longhornio/longhorn-ui:v1.2.0 +longhornio/longhorn-ui:v1.2.2 diff --git a/deploy/longhorn.yaml b/deploy/longhorn.yaml index 60e590d913..627b235a7f 100644 --- a/deploy/longhorn.yaml +++ b/deploy/longhorn.yaml @@ -864,12 +864,14 @@ data: mkfs-ext4-parameters: disable-replica-rebuild: replica-replenishment-wait-interval: + concurrent-replica-rebuild-per-node-limit: disable-revision-counter: system-managed-pods-image-pull-policy: allow-volume-creation-with-degraded-availability: auto-cleanup-system-generated-snapshot: concurrent-automatic-engine-upgrade-per-node-limit: backing-image-cleanup-wait-interval: + backing-image-recovery-wait-interval: guaranteed-engine-manager-cpu: guaranteed-replica-manager-cpu: --- @@ -951,6 +953,7 @@ data: reclaimPolicy: Delete volumeBindingMode: Immediate parameters: + fsType: "ext4" numberOfReplicas: "3" staleReplicaTimeout: "2880" fromBackup: "" @@ -982,7 +985,7 @@ spec: spec: containers: - name: longhorn-manager - image: longhornio/longhorn-manager:v1.2.0 + image: longhornio/longhorn-manager:v1.2.2 imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -991,7 +994,7 @@ spec: - -d - daemon - --engine-image - - longhornio/longhorn-engine:v1.2.0 + - longhornio/longhorn-engine:v1.2.2 - --instance-manager-image - longhornio/longhorn-instance-manager:v1_20210731 - --share-manager-image @@ -999,7 +1002,7 @@ spec: - --backing-image-manager-image - longhornio/backing-image-manager:v2_20210820 - --manager-image - - longhornio/longhorn-manager:v1.2.0 + - longhornio/longhorn-manager:v1.2.2 - --service-account - longhorn-service-account ports: @@ -1099,7 +1102,7 @@ spec: spec: containers: - name: longhorn-ui - image: longhornio/longhorn-ui:v1.2.0 + image: longhornio/longhorn-ui:v1.2.2 imagePullPolicy: IfNotPresent securityContext: runAsUser: 0 @@ -1155,18 +1158,18 @@ spec: spec: initContainers: - name: wait-longhorn-manager - image: longhornio/longhorn-manager:v1.2.0 + image: longhornio/longhorn-manager:v1.2.2 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 + image: longhornio/longhorn-manager:v1.2.2 imagePullPolicy: IfNotPresent command: - longhorn-manager - -d - deploy-driver - --manager-image - - longhornio/longhorn-manager:v1.2.0 + - longhornio/longhorn-manager:v1.2.2 - --manager-url - http://longhorn-backend:9500/v1 env: diff --git a/scripts/lhexec b/scripts/lhexec index fd6a9e7bd4..54ea70475a 100755 --- a/scripts/lhexec +++ b/scripts/lhexec @@ -32,7 +32,7 @@ check_engine_state(){ echo "Err: Longhorn engine for volume ${VOLUME_NAME} is not running" exit 1 fi - + } exec_command() { diff --git a/uninstall/uninstall.yaml b/uninstall/uninstall.yaml index 98ec36bcb8..ab41d1fc72 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 + image: longhornio/longhorn-manager:v1.2.2 imagePullPolicy: Always securityContext: privileged: true