From 626e78e93911b7a18e46ae20f086c933a273e732 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 (cherry picked from commit e616961d6ebfed30cd0d31198b707b2525e4e201) --- 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 e8f243e51..4923a74a9 100644 --- a/controllers/object_controls.go +++ b/controllers/object_controls.go @@ -1296,6 +1296,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 23b99aa3c..fbd1641b1 100644 --- a/controllers/transforms_test.go +++ b/controllers/transforms_test.go @@ -917,6 +917,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"}, @@ -996,6 +997,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"}, @@ -1039,6 +1041,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"}, @@ -1138,6 +1141,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))}, @@ -3546,6 +3550,7 @@ func TestTransformToolkitCtrForCDI(t *testing.T) { {Name: NvidiaRuntimeSetAsDefaultEnvName, Value: "false"}, {Name: NvidiaCtrRuntimeModeEnvName, Value: "cdi"}, {Name: CRIOConfigModeEnvName, Value: "config"}, + {Name: NvidiaCtrRuntimeCDIPrefixesEnvName, Value: "cdi.k8s.io/"}, }, }), }, @@ -3566,6 +3571,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"}, }, }),