[Bug]: Helm chart always sets NVIDIADriver spec.manager.image, so a default driver-manager bump reinstalls the driver on every GPU node
Maintainer thường phản hồi trong vòng 1 ngày
@akshat-lakhera đang làm issue này rồi.
Từ ngày 29/10/2026.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- go, helm, kubernetes
- Lĩnh vực
- devops, infrastructure
Hướng nghiên cứu
Start with internal/state/driver.go and deployments/gpu-operator/templates/nvidiadriver.yaml, then check the driver.manager.image default in values.yaml and how DRIVER_CONFIG_DIGEST uses config.DriverManagerImage. Trace how the rendered manager image triggers the upgrade path, and determine how to avoid a reinstall when only the default manager version changes. Done means a chart upgrade with unchanged driver settings does not reinstall drivers across GPU nodes.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the bug
The Helm chart always sets NVIDIADriver.spec.manager.image, so an operator chart upgrade that only changes the default k8s-driver-manager version reinstalls the driver on every GPU node, even when the driver version and every user setting are unchanged.
internal/state/driver.go handleDefaultImagesInObjects is meant to avoid changing the manager image "when the operator itself is upgraded" while the NVIDIADriver spec is unmodified, but it only applies when cr.Spec.Manager.Image == "". deployments/gpu-operator/templates/nvidiadriver.yaml always renders manager: {{ toYaml .Values.driver.manager }}, and values.yaml sets driver.manager.image: k8s-driver-manager, so every Helm-managed NVIDIADriver picks up the new chart default (v0.12.0 in v26.7.0, v0.12.1 in v26.7.2). Because the manager image is part of DRIVER_CONFIG_DIGEST (config.DriverManagerImage), DriverPodRestartOnly does not apply, and every GPU node goes to upgrade-required and takes the full uninstall/reinstall flow.
In DRA mode this combines with the kubelet-plugin DaemonSet rolling in the same upgrade and deadlocks the first node taken, which NVIDIA/k8s-driver-manager#291 addresses.
To Reproduce
- Install gpu-operator v26.7.0 via the Helm chart with
nvidiaDriverenabled (driver 595.91.07) andupgradePolicy.autoUpgrade: true, leavingdriver.managerat its defaults. helm upgradeto v26.7.2 without changing any driver values.- The NVIDIADriver's
spec.manager.versionchanges from v0.12.0 to v0.12.1 and the driver DaemonSet template changes; every GPU node is labellednvidia.com/gpu-driver-upgrade-state=upgrade-requiredand the upgrade controller cordons and restarts the driver on each node in turn, with the driver version unchanged.
Expected behavior
An operator chart upgrade that leaves the user's driver settings unchanged should not reinstall the driver: for example, do not render manager.image/version into the NVIDIADriver unless the user set them, so handleDefaultImagesInObjects applies, or exclude a default-only manager change from the reinstall path. Workaround: pin driver.manager.version in the Helm values.
Environment (please provide the following information):
- GPU Operator Version: v26.7.0 -> v26.7.2 (Helm)
- OS: Ubuntu 24.04.5
- Kernel Version: 6.17.0-42-generic
- Container Runtime Version: containerd 2.2.1
- Kubernetes Distro and Version: Cluster API on bare metal, Kubernetes v1.37.0, NVIDIA B200, DRA stack (GPUCluster) with
maxParallelUpgrades: 1
- Ngôn ngữ chính
- Go
- Star
- 2.9k
- Fork
- 587
- Merge trung bình
- 2 ngày 2 giờ
- Pull request đã merge (30 ngày)
- 62
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của NVIDIA/gpu-operator
-
feature lifecycle/frozen needs-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
NVIDIA/gpu-operator#3074 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: GPUCluster common name label breaks DRA validator selectorCó thể đã có người làm @ajavanma đã nhận 37 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
NVIDIA/gpu-operator#2955 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: GPUCluster DRA kubelet plugin uses driver root / on Talos and cannot find libnvidia-ml.so.1Có thể đã có người làm @roma5087 đã nhận 1 ngày trước. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
NVIDIA/gpu-operator#3139 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: a partially specified NVIDIADriver startupProbe renders zeros instead of operator defaultsCó thể đã có người làm @blacksoxx đã nhận 2 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 67/100
NVIDIA/gpu-operator#3132 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: v26.7.x labels sandbox nodes with the `container` workload despite `sandboxWorkloads.defaultWorkload=vm-passthroughCó thể đã có người làm @JunAr7112 đã nhận 2 ngày trước. Đang mởbug needs-triage
NVIDIA/gpu-operator#3131 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của NVIDIA/gpu-operator
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 1 ngày
-
schema-drift
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
stefanhoth/paperless-ngx-cli#61 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Project submission: CodeAFĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
slavakurilyak/awesome-ai-agents#888 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement nav-pilot
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 1 ngày
-
kind/enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
Maintainer thường phản hồi trong vòng 1 ngày