From f85fe0bf9b0e73ad642f48da3d8a14738948f0c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= Date: Sat, 4 Apr 2026 11:48:29 +0200 Subject: [PATCH] kata-deploy: Add qemu-nvidia-gpu-runtime-rs shim MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Register the Rust NVIDIA GPU runtime as a kata-deploy shim so it gets installed and configured alongside the existing Go-based qemu-nvidia-gpu shim. Add qemu-nvidia-gpu-runtime-rs to the RUST_SHIMS list and the default enabled shims, create its RuntimeClass entry in the Helm chart, and include it in the try-kata-nvidia-gpu values overlay. The kata-deploy installer will now copy the runtime-rs configuration and create the containerd runtime entry for it. Signed-off-by: Fabiano FidĂȘncio Signed-off-by: Alex Lyn --- .../kata-deploy/binary/src/artifacts/install.rs | 2 ++ tools/packaging/kata-deploy/binary/src/config.rs | 2 +- .../kata-deploy/binary/src/utils/system.rs | 1 + .../kata-deploy/templates/runtimeclasses.yaml | 1 + .../kata-deploy/try-kata-nvidia-gpu.values.yaml | 15 ++++++++++++++- .../helm-chart/kata-deploy/values.yaml | 14 ++++++++++++++ 6 files changed, 33 insertions(+), 2 deletions(-) diff --git a/tools/packaging/kata-deploy/binary/src/artifacts/install.rs b/tools/packaging/kata-deploy/binary/src/artifacts/install.rs index 72a7fc3480..9b8e3f775e 100644 --- a/tools/packaging/kata-deploy/binary/src/artifacts/install.rs +++ b/tools/packaging/kata-deploy/binary/src/artifacts/install.rs @@ -30,6 +30,7 @@ const ALL_SHIMS: &[&str] = &[ "qemu-coco-dev", "qemu-coco-dev-runtime-rs", "qemu-nvidia-gpu", + "qemu-nvidia-gpu-runtime-rs", "qemu-nvidia-gpu-snp", "qemu-nvidia-gpu-tdx", "qemu-runtime-rs", @@ -1054,6 +1055,7 @@ mod tests { #[case("qemu-coco-dev", "qemu")] #[case("qemu-cca", "qemu")] #[case("qemu-nvidia-gpu", "qemu")] + #[case("qemu-nvidia-gpu-runtime-rs", "qemu")] #[case("qemu-nvidia-gpu-tdx", "qemu")] #[case("qemu-nvidia-gpu-snp", "qemu")] #[case("qemu-runtime-rs", "qemu")] diff --git a/tools/packaging/kata-deploy/binary/src/config.rs b/tools/packaging/kata-deploy/binary/src/config.rs index 3e4f73f5bf..2014b55e25 100644 --- a/tools/packaging/kata-deploy/binary/src/config.rs +++ b/tools/packaging/kata-deploy/binary/src/config.rs @@ -737,7 +737,7 @@ fn parse_custom_runtimes() -> Result> { /// Returns only shims that are supported for that architecture fn get_default_shims_for_arch(arch: &str) -> &'static str { match arch { - "x86_64" => "clh clh-runtime-rs dragonball fc qemu qemu-coco-dev qemu-coco-dev-runtime-rs qemu-runtime-rs qemu-nvidia-gpu qemu-nvidia-gpu-snp qemu-nvidia-gpu-tdx qemu-snp qemu-snp-runtime-rs qemu-tdx qemu-tdx-runtime-rs", + "x86_64" => "clh clh-runtime-rs dragonball fc qemu qemu-coco-dev qemu-coco-dev-runtime-rs qemu-runtime-rs qemu-nvidia-gpu qemu-nvidia-gpu-runtime-rs qemu-nvidia-gpu-snp qemu-nvidia-gpu-tdx qemu-snp qemu-snp-runtime-rs qemu-tdx qemu-tdx-runtime-rs", "aarch64" => "clh clh-runtime-rs dragonball fc qemu qemu-coco-dev-runtime-rs qemu-runtime-rs qemu-nvidia-gpu qemu-cca", "s390x" => "qemu qemu-runtime-rs qemu-se qemu-se-runtime-rs qemu-coco-dev qemu-coco-dev-runtime-rs", "ppc64le" => "qemu", diff --git a/tools/packaging/kata-deploy/binary/src/utils/system.rs b/tools/packaging/kata-deploy/binary/src/utils/system.rs index 3e5f286d67..39e7e89cef 100644 --- a/tools/packaging/kata-deploy/binary/src/utils/system.rs +++ b/tools/packaging/kata-deploy/binary/src/utils/system.rs @@ -10,6 +10,7 @@ pub const RUST_SHIMS: &[&str] = &[ "clh-runtime-rs", "dragonball", "qemu-runtime-rs", + "qemu-nvidia-gpu-runtime-rs", "qemu-coco-dev-runtime-rs", "qemu-se-runtime-rs", "qemu-snp-runtime-rs", diff --git a/tools/packaging/kata-deploy/helm-chart/kata-deploy/templates/runtimeclasses.yaml b/tools/packaging/kata-deploy/helm-chart/kata-deploy/templates/runtimeclasses.yaml index 95cf00b15d..7363caff8e 100644 --- a/tools/packaging/kata-deploy/helm-chart/kata-deploy/templates/runtimeclasses.yaml +++ b/tools/packaging/kata-deploy/helm-chart/kata-deploy/templates/runtimeclasses.yaml @@ -109,6 +109,7 @@ scheduling: "qemu-tdx" (dict "memory" "2048Mi" "cpu" "1.0") "qemu-tdx-runtime-rs" (dict "memory" "2048Mi" "cpu" "1.0") "qemu-nvidia-gpu" (dict "memory" "10240Mi" "cpu" "1.0") + "qemu-nvidia-gpu-runtime-rs" (dict "memory" "10240Mi" "cpu" "1.0") "qemu-nvidia-gpu-snp" (dict "memory" "10240Mi" "cpu" "1.0") "qemu-nvidia-gpu-tdx" (dict "memory" "10240Mi" "cpu" "1.0") "qemu-cca" (dict "memory" "2048Mi" "cpu" "1.0") diff --git a/tools/packaging/kata-deploy/helm-chart/kata-deploy/try-kata-nvidia-gpu.values.yaml b/tools/packaging/kata-deploy/helm-chart/kata-deploy/try-kata-nvidia-gpu.values.yaml index 668cda9f93..ad765d3710 100644 --- a/tools/packaging/kata-deploy/helm-chart/kata-deploy/try-kata-nvidia-gpu.values.yaml +++ b/tools/packaging/kata-deploy/helm-chart/kata-deploy/try-kata-nvidia-gpu.values.yaml @@ -1,5 +1,5 @@ # Example values file to enable NVIDIA GPU shims -# This includes all NVIDIA GPU-enabled shims: qemu-nvidia-gpu, qemu-nvidia-gpu-snp, qemu-nvidia-gpu-tdx +# This includes all NVIDIA GPU-enabled shims: qemu-nvidia-gpu, qemu-nvidia-gpu-runtime-rs, qemu-nvidia-gpu-snp, qemu-nvidia-gpu-tdx # # Usage: # helm install kata-deploy oci://ghcr.io/kata-containers/kata-deploy-charts/kata-deploy \ @@ -30,6 +30,19 @@ shims: nodeSelector: nvidia.com/cc.ready.state: "false" + qemu-nvidia-gpu-runtime-rs: + enabled: true + supportedArches: + - amd64 + allowedHypervisorAnnotations: [] + containerd: + snapshotter: "" + runtimeClass: + # This label is automatically added by gpu-operator. Override it + # if you want to use a different label. + nodeSelector: + nvidia.com/cc.ready.state: "false" + qemu-nvidia-gpu-snp: enabled: true supportedArches: diff --git a/tools/packaging/kata-deploy/helm-chart/kata-deploy/values.yaml b/tools/packaging/kata-deploy/helm-chart/kata-deploy/values.yaml index 1baaf8de1b..13fec3f0a9 100644 --- a/tools/packaging/kata-deploy/helm-chart/kata-deploy/values.yaml +++ b/tools/packaging/kata-deploy/helm-chart/kata-deploy/values.yaml @@ -156,6 +156,20 @@ shims: nodeSelector: nvidia.com/cc.ready.state: "false" + qemu-nvidia-gpu-runtime-rs: + enabled: ~ + supportedArches: + - amd64 + - arm64 + allowedHypervisorAnnotations: [] + containerd: + snapshotter: "" + runtimeClass: + # This label is automatically added by gpu-operator. Override it + # if you want to use a different label. + nodeSelector: + nvidia.com/cc.ready.state: "false" + qemu-nvidia-gpu-snp: enabled: ~ supportedArches: