You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: NRI doesn't work trying to check nvidia-smi from the validation pod instead of host #2382
Describe the bug
When enabling NRI via --set cdi.nriPluginEnabled=true the toolkit validation pod fails with nvidia-smi not found in path.
I've looked at the code and it seems it's trying to execute nvidia-smi from inside the validation container as opposed to how driver validation validates from the host system.
It looks like you don't deploy the nvidia-container-toolkit. Is that expected?
Please note that the toolkit daemonset pod is what runs the NRI Plugin server and performs the CDI device injection. Without the toolkit pod, this will not work
It looks like you don't deploy the nvidia-container-toolkit. Is that expected?
Please note that the toolkit daemonset pod is what runs the NRI Plugin server and performs the CDI device injection. Without the toolkit pod, this will not work
yes, that's correct, the host os already ships the toolkit components
Please note that the toolkit daemonset pod is what runs the NRI Plugin server and performs the CDI device injection. Without the toolkit pod, this will not work
Does this mean the host doesn't need to ship the toolkit ? Just trying to wrap my head around here
is my understanding correct that the toolkit validation with error:
time="2026-04-20T18:53:05Z" level=info msg="version: 5a25fef4-amd64, commit: 5a25fef"
time="2026-04-20T18:53:05Z" level=info msg="Error: error validating toolkit installation: exec: \"nvidia-smi\": executable file not found in $PATH"
toolkit is not ready
Error from server (BadRequest): container "cuda-validation" in pod "nvidia-operator-validator-bfmvt" is waiting to start: PodInitializing
failed to find nvidia-smi since cdi injection did not happen?
Does this mean the host doesn't need to ship the toolkit ? Just trying to wrap my head around here
Well, the host's pre-installed toolkit will not help as it doesn't bring up an NRI Plugin server. To leverage the NRI Plugin feature here, you will need to enable nvidia-container-toolkit in the ClusterPolicy CR. So, the NRI Plugin is only useable if the toolkit is deployed a daemonset.
failed to find nvidia-smi since cdi injection did not happen?
Yes, If the toolkit-validation fails with this error, It most likely points to the toolkit not being able to inject the gpu driver binaries, shared libraries and gpu device nodes into the container successfully.
Does this mean the host doesn't need to ship the toolkit ? Just trying to wrap my head around here
Well, the host's pre-installed toolkit will not help as it doesn't bring up an NRI Plugin server. To leverage the NRI Plugin feature here, you will need to enable nvidia-container-toolkit in the ClusterPolicy CR. So, the NRI Plugin is only useable if the toolkit is deployed a daemonset.
failed to find nvidia-smi since cdi injection did not happen?
Yes, If the toolkit-validation fails with this error, It most likely points to the toolkit not being able to inject the gpu driver binaries, shared libraries and gpu device nodes into the container successfully.
Thanks this clears up stuff, I would like to move this issue to a github discussion if possible
Since Talos is an immtuable host OS, the toolkit binaries are brought in as part of OS, so I would like to have a general discussion on how to then enable NRI if that comes as part of toolkit
Since when i enable toolkit, it fails on Talos due to host OS being immutable
Warning Failed 20s kubelet Error: failed to generate container "cdc186ceff6e307e2631bfa8f0597c857d055f3c3e68bc7b51a275de5d644d77" spec: failed to apply OCI options: failed to mkdir "/etc/containerd/conf.d": mkdir /etc/containerd/conf.d: read-only file system
Normal Pulled 5s (x2 over 20s) kubelet Container image "nvcr.io/nvidia/k8s/container-toolkit:v1.19.0" already present on machine and can be accessed by the pod
Warning Failed 5s kubelet Error: failed to generate container "5786e13b709ecbedb2aad72a60578f8357bbd5d7a0c8c1ef3158c25ed5695d91" spec: failed to apply OCI options: failed to mkdir "/etc/containerd/conf.d": mkdir /etc/containerd/conf.d: read-only file system
I'm not sure why it tries to create containerd config when using NRI since there's no need to inject runtimeclass anymore
Additionally, with the NRI Plugin enabled, modifications to the container runtime configuration are no longer needed. For example, no modifications are made to containerd’s config.toml file. This means that on platforms that configure containerd in a non-standard way, like k3s, k0s, and Rancher Kubernetes Engine 2, users no longer need to configure environment variables like CONTAINERD_CONFIG, CONTAINERD_SOCKET, or RUNTIME_CONFIG_SOURCE.
Activity
tariq1890 commentedon Apr 20, 2026
Can you share more details? Which daemonset is failing here?
Please share the yaml manifest of the failing daemonset if you can.
frezbo commentedon Apr 20, 2026
Yes,
logs:
Others pods in init status are basically waiting for setup
frezbo commentedon Apr 20, 2026
Yaml dump of validator:
happy to provide further information is needed
tariq1890 commentedon Apr 20, 2026
It looks like you don't deploy the
nvidia-container-toolkit. Is that expected?Please note that the toolkit daemonset pod is what runs the NRI Plugin server and performs the CDI device injection. Without the toolkit pod, this will not work
frezbo commentedon Apr 20, 2026
yes, that's correct, the host os already ships the toolkit components
helm command:
helm repo add nvidia https://helm.ngc.nvidia.com/nvidia helm repo update helm upgrade --wait --install -n gpu-operator gpu-operator nvidia/gpu-operator \ --set driver.enabled=false \ --set toolkit.enabled=false \ --set hostPaths.driverInstallDir=/usr/local \ --set cdi.nriPluginEnabled=true❯ talosctl -n 172.16.33.136 ls /usr/local/bin | grep nvidia 172.16.33.136 nvidia-bug-report.sh 172.16.33.136 nvidia-cdi-hook 172.16.33.136 nvidia-container-runtime 172.16.33.136 nvidia-container-runtime-hook 172.16.33.136 nvidia-container-runtime.cdi 172.16.33.136 nvidia-container-runtime.legacy 172.16.33.136 nvidia-ctk 172.16.33.136 nvidia-ctk-installer 172.16.33.136 nvidia-cuda-mps-control 172.16.33.136 nvidia-cuda-mps-server 172.16.33.136 nvidia-debugdump 172.16.33.136 nvidia-installer 172.16.33.136 nvidia-modprobe 172.16.33.136 nvidia-ngx-updater 172.16.33.136 nvidia-pcc 172.16.33.136 nvidia-persistenced 172.16.33.136 nvidia-persistenced-wrapper 172.16.33.136 nvidia-powerd 172.16.33.136 nvidia-settings 172.16.33.136 nvidia-sleep.sh 172.16.33.136 nvidia-smi 172.16.33.136 nvidia-uninstall 172.16.33.136 nvidia-xconfigfrezbo commentedon Apr 20, 2026
Does this mean the host doesn't need to ship the toolkit ? Just trying to wrap my head around here
is my understanding correct that the toolkit validation with error:
failed to find
nvidia-smisince cdi injection did not happen?tariq1890 commentedon Apr 20, 2026
Well, the host's pre-installed toolkit will not help as it doesn't bring up an NRI Plugin server. To leverage the NRI Plugin feature here, you will need to enable
nvidia-container-toolkitin the ClusterPolicy CR. So, the NRI Plugin is only useable if the toolkit is deployed a daemonset.Yes, If the toolkit-validation fails with this error, It most likely points to the toolkit not being able to inject the gpu driver binaries, shared libraries and gpu device nodes into the container successfully.
frezbo commentedon Apr 21, 2026
Thanks this clears up stuff, I would like to move this issue to a github discussion if possible
Since Talos is an immtuable host OS, the toolkit binaries are brought in as part of OS, so I would like to have a general discussion on how to then enable NRI if that comes as part of toolkit
Since when i enable toolkit, it fails on Talos due to host OS being immutable
I'm not sure why it tries to create containerd config when using NRI since there's no need to inject runtimeclass anymore
frezbo commentedon Apr 21, 2026
From docs https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/cdi.html#about-the-node-resource-interface-nri-plugin