From 6947b3c0893559337ebb8ee197719dca03b8efbc Mon Sep 17 00:00:00 2001 From: Billard <82095453+iacker@users.noreply.github.com> Date: Tue, 14 Jul 2026 18:39:07 +0200 Subject: [PATCH 1/2] helm: add nodeSelector to upgrade-crd hook Job to prevent Windows scheduling The pre-upgrade CRD hook Job lacked a nodeSelector, so on mixed-OS clusters with untainted Windows nodes the hook pod could be scheduled onto Windows and hang in ContainerCreating forever, blocking Helm upgrades. This commit adds a nodeSelector block that renders .Values.operator.nodeSelector if set, or defaults to kubernetes.io/os: linux as a safe fallback. Fixes: https://github.com/NVIDIA/gpu-operator/issues/2608 Signed-off-by: Billard <82095453+iacker@users.noreply.github.com> --- deployments/gpu-operator/templates/upgrade_crd.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/deployments/gpu-operator/templates/upgrade_crd.yaml b/deployments/gpu-operator/templates/upgrade_crd.yaml index e887b3a811..5ce4123071 100644 --- a/deployments/gpu-operator/templates/upgrade_crd.yaml +++ b/deployments/gpu-operator/templates/upgrade_crd.yaml @@ -79,6 +79,12 @@ spec: tolerations: {{- toYaml . | nindent 8 }} {{- end }} + nodeSelector: + {{- if .Values.operator.nodeSelector }} + {{- toYaml .Values.operator.nodeSelector | nindent 8 }} + {{- else }} + kubernetes.io/os: linux + {{- end }} containers: - name: upgrade-crd image: {{ include "gpu-operator.fullimage" . }} From e9d6cc3c9b2d0278b901854666ca5440a1dfa161 Mon Sep 17 00:00:00 2001 From: Billard <82095453+iacker@users.noreply.github.com> Date: Fri, 24 Jul 2026 16:59:04 +0200 Subject: [PATCH 2/2] helm: also add nodeSelector to cleanup-crd hook Job Address maintainer review feedback to apply the same nodeSelector pattern to the cleanup-crd hook Job so pre-delete hooks avoid Windows scheduling as well. Matches the fix in upgrade-crd Job. Co-requested-by: Tariq Ibrahim Signed-off-by: Billard <82095453+iacker@users.noreply.github.com> --- deployments/gpu-operator/templates/cleanup_crd.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/deployments/gpu-operator/templates/cleanup_crd.yaml b/deployments/gpu-operator/templates/cleanup_crd.yaml index 0d426f952b..4029a9988a 100644 --- a/deployments/gpu-operator/templates/cleanup_crd.yaml +++ b/deployments/gpu-operator/templates/cleanup_crd.yaml @@ -30,6 +30,13 @@ spec: tolerations: {{- toYaml . | nindent 8 }} {{- end }} + {{- if .Values.operator.nodeSelector }} + nodeSelector: + {{- toYaml .Values.operator.nodeSelector | nindent 8 }} + {{- else }} + nodeSelector: + kubernetes.io/os: linux + {{- end }} containers: - name: cleanup-crd image: {{ include "gpu-operator.fullimage" . }}