From 1cbad61f55a3be50ef7d7fd3e8496b0297a99b59 Mon Sep 17 00:00:00 2001 From: Tobias Jungel <1773291+toanju@users.noreply.github.com> Date: Fri, 11 Sep 2026 18:10:46 +0200 Subject: [PATCH] [cc-shoots-compute] Add support for in-place update strategy for workers Add support for in-place update strategy per worker. The default remains `AutoRollingUpdate`. For `ManualInPlaceUpdate` and `AutoInPlaceUpdate`, the `inPlaceUpdateTimeout` can be set per worker or cluster. --- system/cc-shoots-compute/Chart.yaml | 2 +- system/cc-shoots-compute/templates/kvm-shoot.yaml | 14 +++++++++----- system/cc-shoots-compute/values.yaml | 1 + 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/system/cc-shoots-compute/Chart.yaml b/system/cc-shoots-compute/Chart.yaml index 735738d1951..2b8f9694550 100644 --- a/system/cc-shoots-compute/Chart.yaml +++ b/system/cc-shoots-compute/Chart.yaml @@ -2,5 +2,5 @@ apiVersion: v2 name: cc-shoots-compute description: Converged Cloud Gardener shoots type: application -version: 2.6.9 +version: 2.7.0 appVersion: "0.1.0" diff --git a/system/cc-shoots-compute/templates/kvm-shoot.yaml b/system/cc-shoots-compute/templates/kvm-shoot.yaml index a1e27df9f2c..cf1fdb57743 100644 --- a/system/cc-shoots-compute/templates/kvm-shoot.yaml +++ b/system/cc-shoots-compute/templates/kvm-shoot.yaml @@ -166,6 +166,7 @@ spec: workers: {{- range $workerkey, $worker := $cluster.workers }} {{- $workerChannel := coalesce $worker.channel $cluster.channel "release" }} + {{- $updateStrategy := coalesce $worker.updateStrategy $cluster.updateStrategy $.Values.defaultUpdateStrategy }} {{- $imageVersion:= "unset" }} {{- if eq $workerChannel "preRelease" }} {{- $imageVersion = coalesce $worker.preReleaseImageVersion $cluster.preReleaseImageVersion $.Values.preReleaseImageVersion }} @@ -183,20 +184,23 @@ spec: type: baremetal minimum: {{ $worker.poolSize }} maximum: {{ $worker.poolSize }} + {{- if not (has $updateStrategy (list "ManualInPlaceUpdate" "AutoInPlaceUpdate")) }} maxSurge: {{ $worker.maxSurge | default 0 }} maxUnavailable: {{ default 1 $worker.maxUnavailable }} - {{- if $worker.updateStrategy }} - updateStrategy: {{ $worker.updateStrategy }} {{- end }} + updateStrategy: {{ $updateStrategy }} zones: {{- toYaml $worker.zones | nindent 8 }} machineControllerManager: + {{- if eq $updateStrategy "AutoRollingUpdate" }} machineCreationTimeout: {{ coalesce $worker.machineCreationTimeout $cluster.machineCreationTimeout "1h20m0s" }} machineHealthTimeout: {{ coalesce $worker.machineHealthTimeout $cluster.machineHealthTimeout "1h0m0s" }} machineDrainTimeout: {{ coalesce $worker.machineDrainTimeout $cluster.machineDrainTimeout "240h0m0s" }} - {{- if $worker.inPlaceUpdateTimeout }} - inPlaceUpdateTimeout: {{ $worker.inPlaceUpdateTimeout }} - {{- end }} + {{- else if has $updateStrategy (list "ManualInPlaceUpdate" "AutoInPlaceUpdate") }} + inPlaceUpdateTimeout: {{coalesce $worker.inPlaceUpdateTimeout $cluster.inPlaceUpdateTimeout "1h20m0s" }} + {{- else }} + {{- fail (printf "worker %s has invalid updateStrategy '%s': must be either 'AutoRollingUpdate', 'ManualInPlaceUpdate' or 'AutoInPlaceUpdate'" $workerkey $updateStrategy) }} + {{- end }} sysctls: vm.hugetlb_shm_group: "64055" vm.unprivileged_userfaultfd: "1" diff --git a/system/cc-shoots-compute/values.yaml b/system/cc-shoots-compute/values.yaml index 0e75178ba71..8efc6ba37f7 100644 --- a/system/cc-shoots-compute/values.yaml +++ b/system/cc-shoots-compute/values.yaml @@ -1,3 +1,4 @@ +defaultUpdateStrategy: AutoRollingUpdate authenticationConfig: {} kvmShoot: false networking: