From d32c6ed933e63430d03ba28cb56db9ae1ca981f0 Mon Sep 17 00:00:00 2001 From: Phan Le Date: Fri, 17 Mar 2023 16:31:46 -0700 Subject: [PATCH] Add nodeDrainPolicy setting longhorn-5549 Signed-off-by: Phan Le (cherry picked from commit 86d06696dfdca947b651ae7f8ac8114873461147) --- chart/questions.yaml | 13 +++++++++++++ chart/templates/default-setting.yaml | 1 + chart/values.yaml | 1 + 3 files changed, 15 insertions(+) diff --git a/chart/questions.yaml b/chart/questions.yaml index b4ae9de..8ee1048 100644 --- a/chart/questions.yaml +++ b/chart/questions.yaml @@ -446,6 +446,19 @@ If this setting is enabled, Longhorn will **not** block `kubectl drain` action o group: "Longhorn Default Settings" type: boolean default: "false" + - variable: defaultSettings.nodeDrainPolicy + label: Node Drain Policy + description: "Define the policy to use when a node with the last healthy replica of a volume is drained. +- **block-if-contains-last-replica** Longhorn will block the drain when the node contains the last healthy replica of a volume. +- **allow-if-replica-is-stopped** Longhorn will allow the drain when the node contains the last healthy replica of a volume but the replica is stopped. WARNING: possible data loss if the node is removed after draining. Select this option if you want to drain the node and do in-place upgrade/maintenance. +- **always-allow** Longhorn will allow the drain even though the node contains the last healthy replica of a volume. WARNING: possible data loss if the node is removed after draining. Also possible data corruption if the last replica was running during the draining." + group: "Longhorn Default Settings" + type: enum + options: + - "block-if-contains-last-replica" + - "allow-if-replica-is-stopped" + - "always-allow" + default: "block-if-contains-last-replica" - variable: defaultSettings.mkfsExt4Parameters label: Custom mkfs.ext4 parameters description: "Allows setting additional filesystem creation parameters for ext4. For older host kernels it might be necessary to disable the optional ext4 metadata_csum feature by specifying `-O ^64bit,^metadata_csum`." diff --git a/chart/templates/default-setting.yaml b/chart/templates/default-setting.yaml index 49870a4..f65b7f1 100644 --- a/chart/templates/default-setting.yaml +++ b/chart/templates/default-setting.yaml @@ -52,6 +52,7 @@ data: {{ if not (kindIs "invalid" .Values.defaultSettings.replicaZoneSoftAntiAffinity) }}replica-zone-soft-anti-affinity: {{ .Values.defaultSettings.replicaZoneSoftAntiAffinity }}{{ end }} {{ if not (kindIs "invalid" .Values.defaultSettings.nodeDownPodDeletionPolicy) }}node-down-pod-deletion-policy: {{ .Values.defaultSettings.nodeDownPodDeletionPolicy }}{{ end }} {{ if not (kindIs "invalid" .Values.defaultSettings.allowNodeDrainWithLastHealthyReplica) }}allow-node-drain-with-last-healthy-replica: {{ .Values.defaultSettings.allowNodeDrainWithLastHealthyReplica }}{{ end }} + {{ if not (kindIs "invalid" .Values.defaultSettings.nodeDrainPolicy) }}node-drain-policy: {{ .Values.defaultSettings.nodeDrainPolicy }}{{ end }} {{ if not (kindIs "invalid" .Values.defaultSettings.mkfsExt4Parameters) }}mkfs-ext4-parameters: {{ .Values.defaultSettings.mkfsExt4Parameters }}{{ end }} {{ if not (kindIs "invalid" .Values.defaultSettings.disableReplicaRebuild) }}disable-replica-rebuild: {{ .Values.defaultSettings.disableReplicaRebuild }}{{ end }} {{ if not (kindIs "invalid" .Values.defaultSettings.replicaReplenishmentWaitInterval) }}replica-replenishment-wait-interval: {{ .Values.defaultSettings.replicaReplenishmentWaitInterval }}{{ end }} diff --git a/chart/values.yaml b/chart/values.yaml index 3ded6cd..c0be6b8 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -133,6 +133,7 @@ defaultSettings: replicaZoneSoftAntiAffinity: ~ nodeDownPodDeletionPolicy: ~ allowNodeDrainWithLastHealthyReplica: ~ + nodeDrainPolicy : ~ mkfsExt4Parameters: ~ disableReplicaRebuild: ~ replicaReplenishmentWaitInterval: ~