diff --git a/cluster/cluster.go b/cluster/cluster.go index a0a683a9..2c61155c 100644 --- a/cluster/cluster.go +++ b/cluster/cluster.go @@ -687,10 +687,15 @@ func parseNodeDrainInput(clusterFile string, rkeConfig *v3.RancherKubernetesEngi nodeDrainInput.GracePeriod = DefaultNodeDrainGracePeriod update = true } else { - // TODO: ghodssyaml.Marshal is losing the user provided value for GracePeriod, investigate why, till then assign the provided value explicitly + // add back user's value because ghodssyaml.Marshal drops the value due to the same field has different names in YAML tag and JSON tag nodeDrainInput.GracePeriod = int(providedGracePeriod) } + // add back user's value because ghodssyaml.Marshal drops the value due to the same field has different names in YAML tag and JSON tag + if val, ok := nodeDrainInputMap["delete_local_data"].(bool); ok { + nodeDrainInput.DeleteLocalData = val + } + if update { rkeConfig.UpgradeStrategy.DrainInput = &nodeDrainInput }