nixos/nvidia-container-toolkit: fix tests (#426273)

Changed files
+8 -4
nixos
modules
services
hardware
nvidia-container-toolkit
tests
+1 -1
nixos/modules/services/hardware/nvidia-container-toolkit/cdi-generate.nix
···
--device-name-strategy ${device-name-strategy} \
--ldconfig-path ${lib.getExe' glibc "ldconfig"} \
--library-search-path ${lib.getLib nvidia-driver}/lib \
-
--nvidia-cdi-hook-path ${lib.getExe' nvidia-container-toolkit.tools "nvidia-cdi-hook"} \
+
--nvidia-cdi-hook-path ${lib.getOutput "tools" nvidia-container-toolkit}/bin/nvidia-cdi-hook \
${lib.escapeShellArgs extraArgs}
}
+7 -3
nixos/tests/nvidia-container-toolkit.nix
···
'';
meta.mainProgram = "nvidia-ctk";
};
+
suppressNvidiaDriverAssertion = true;
};
in
{
···
{
environment.systemPackages = with pkgs; [ jq ];
virtualisation.diskSize = lib.mkDefault 10240;
-
virtualisation.containers.enable = lib.mkDefault true;
+
virtualisation.containers = {
+
containersConf.settings.engine.cdi_spec_dirs = [ "/var/run/cdi" ];
+
enable = lib.mkDefault true;
+
};
hardware = {
inherit nvidia-container-toolkit;
nvidia = {
···
nodes = {
no-gpus = {
virtualisation.containers.enable = false;
-
hardware.graphics.enable = false;
};
+
one-gpu =
{ pkgs, ... }:
{
···
one_gpu.wait_for_unit("nvidia-container-toolkit-cdi-generator.service")
one_gpu.succeed("cat /var/run/cdi/nvidia-container-toolkit.json | jq")
one_gpu.succeed("podman load < ${testContainerImage}")
-
print(one_gpu.succeed("podman run --pull=never --device=nvidia.com/gpu=all -v /run/opengl-driver:/run/opengl-driver:ro cdi-test:latest"))
+
one_gpu.succeed("podman run --pull=never --device=nvidia.com/gpu=all -v /run/opengl-driver:/run/opengl-driver:ro cdi-test:latest")
# Issue: https://github.com/NixOS/nixpkgs/issues/319201
with subtest("The generated CDI spec skips specified non-existant paths in the host"):