From e616961d6ebfed30cd0d31198b707b2525e4e201 Mon Sep 17 00:00:00 2001 From: Christopher Desiniotis Date: Fri, 16 Oct 2026 17:06:34 -0700 Subject: [PATCH] Configure CDI annotation prefixes in toolkit container when CDI is enabled This aligns the transformToolkitCtrForCDI() method with the transformDevicePluginCtrForCDI() to ensure the same prefixes are configured with both components. Without explicitly configuring the CDI annotation prefixes in the toolkit container, the nvidia-ctk-installer was NOT adding these annotation prefixes to containerd's (or crio's) container_annotations allowlist. As a consequence, any container annotations set by the k8s-device-plugin, in its AllocateResponse, were not making it into the OCI runtime spec for the container. Signed-off-by: Christopher Desiniotis --- controllers/object_controls.go | 1 + controllers/transforms_test.go | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/controllers/object_controls.go b/controllers/object_controls.go index 610a8dba5..edd1ae4f9 100644 --- a/controllers/object_controls.go +++ b/controllers/object_controls.go @@ -1295,6 +1295,7 @@ func transformToolkitCtrForCDI(container *corev1.Container, nriPluginEnabled boo setContainerEnv(container, NvidiaRuntimeSetAsDefaultEnvName, "false") setContainerEnv(container, NvidiaCtrRuntimeModeEnvName, "cdi") setContainerEnv(container, CRIOConfigModeEnvName, "config") + setContainerEnv(container, NvidiaCtrRuntimeCDIPrefixesEnvName, "cdi.k8s.io/") if nriPluginEnabled { setContainerEnv(container, CDIEnableNRIPlugin, "true") diff --git a/controllers/transforms_test.go b/controllers/transforms_test.go index 90d52b12c..c418944bd 100644 --- a/controllers/transforms_test.go +++ b/controllers/transforms_test.go @@ -920,6 +920,7 @@ func TestTransformToolkit(t *testing.T) { {Name: NvidiaRuntimeSetAsDefaultEnvName, Value: "false"}, {Name: NvidiaCtrRuntimeModeEnvName, Value: "cdi"}, {Name: CRIOConfigModeEnvName, Value: "config"}, + {Name: NvidiaCtrRuntimeCDIPrefixesEnvName, Value: "cdi.k8s.io/"}, {Name: "foo", Value: "bar"}, {Name: "RUNTIME", Value: "containerd"}, {Name: "CONTAINERD_RUNTIME_CLASS", Value: "nvidia"}, @@ -999,6 +1000,7 @@ func TestTransformToolkit(t *testing.T) { {Name: NvidiaRuntimeSetAsDefaultEnvName, Value: "false"}, {Name: NvidiaCtrRuntimeModeEnvName, Value: "cdi"}, {Name: CRIOConfigModeEnvName, Value: "config"}, + {Name: NvidiaCtrRuntimeCDIPrefixesEnvName, Value: "cdi.k8s.io/"}, {Name: "CONTAINERD_CONFIG", Value: "/runtime/config-dir/config.toml"}, {Name: "CONTAINERD_SOCKET", Value: "/runtime/sock-dir/containerd.sock"}, {Name: "CONTAINERD_RUNTIME_CLASS", Value: "nvidia"}, @@ -1042,6 +1044,7 @@ func TestTransformToolkit(t *testing.T) { {Name: NvidiaRuntimeSetAsDefaultEnvName, Value: "false"}, {Name: NvidiaCtrRuntimeModeEnvName, Value: "cdi"}, {Name: CRIOConfigModeEnvName, Value: "config"}, + {Name: NvidiaCtrRuntimeCDIPrefixesEnvName, Value: "cdi.k8s.io/"}, {Name: "RUNTIME", Value: gpuv1.CRIO.String()}, {Name: "RUNTIME_CONFIG", Value: "/runtime/config-dir/config.toml"}, {Name: "CRIO_CONFIG", Value: "/runtime/config-dir/config.toml"}, @@ -1141,6 +1144,7 @@ func TestTransformToolkit(t *testing.T) { {Name: NvidiaRuntimeSetAsDefaultEnvName, Value: "false"}, {Name: NvidiaCtrRuntimeModeEnvName, Value: "cdi"}, {Name: CRIOConfigModeEnvName, Value: "config"}, + {Name: NvidiaCtrRuntimeCDIPrefixesEnvName, Value: "cdi.k8s.io/"}, {Name: "ENABLE_NRI_PLUGIN", Value: "true"}, {Name: "RUNTIME", Value: "containerd"}, {Name: "NRI_SOCKET", Value: path.Join(DefaultRuntimeNRISocketTargetDir, path.Base(DefaultRuntimeNRISocketFile))}, @@ -3696,6 +3700,7 @@ func TestTransformToolkitCtrForCDI(t *testing.T) { {Name: NvidiaRuntimeSetAsDefaultEnvName, Value: "false"}, {Name: NvidiaCtrRuntimeModeEnvName, Value: "cdi"}, {Name: CRIOConfigModeEnvName, Value: "config"}, + {Name: NvidiaCtrRuntimeCDIPrefixesEnvName, Value: "cdi.k8s.io/"}, }, }), }, @@ -3716,6 +3721,7 @@ func TestTransformToolkitCtrForCDI(t *testing.T) { {Name: NvidiaRuntimeSetAsDefaultEnvName, Value: "false"}, {Name: NvidiaCtrRuntimeModeEnvName, Value: "cdi"}, {Name: CRIOConfigModeEnvName, Value: "config"}, + {Name: NvidiaCtrRuntimeCDIPrefixesEnvName, Value: "cdi.k8s.io/"}, {Name: CDIEnableNRIPlugin, Value: "true"}, }, }),