diff --git a/pkg/nvcdi/driver-nvml.go b/pkg/nvcdi/driver-nvml.go index b0006aeb..63c1ffb1 100644 --- a/pkg/nvcdi/driver-nvml.go +++ b/pkg/nvcdi/driver-nvml.go @@ -106,6 +106,10 @@ func NewDriverLibraryDiscoverer(logger logger.Interface, driver *root.Driver, nv nvidiaCDIHookPath, ), updateLDCache, + discover.CreateNvidiaCDIHook( + nvidiaCDIHookPath, + "update-nvidia-params", + ), ) return d, nil diff --git a/tests/e2e/nvidia-container-toolkit_test.go b/tests/e2e/nvidia-container-toolkit_test.go index 1895aff0..238991bc 100644 --- a/tests/e2e/nvidia-container-toolkit_test.go +++ b/tests/e2e/nvidia-container-toolkit_test.go @@ -24,7 +24,7 @@ import ( ) // Integration tests for Docker runtime -var _ = Describe("docker", Ordered, func() { +var _ = Describe("docker", Ordered, ContinueOnFailure, func() { var r Runner // Install the NVIDIA Container Toolkit @@ -166,4 +166,23 @@ var _ = Describe("docker", Ordered, func() { Expect(referenceOutput).To(Equal(out4)) }) }) + + Describe("Disabling device node creation", Ordered, func() { + BeforeAll(func(ctx context.Context) { + _, _, err := r.Run("docker pull ubuntu") + Expect(err).ToNot(HaveOccurred()) + }) + + It("should work with nvidia-container-runtime-hook", func(ctx context.Context) { + output, _, err := r.Run("docker run --rm -i --runtime=runc --gpus=all ubuntu bash -c \"grep ModifyDeviceFiles: /proc/driver/nvidia/params\"") + Expect(err).ToNot(HaveOccurred()) + Expect(output).To(Equal("ModifyDeviceFiles: 0\n")) + }) + + It("should work with automatic CDI spec generation", func(ctx context.Context) { + output, _, err := r.Run("docker run --rm -i --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=runtime.nvidia.com/gpu=all ubuntu bash -c \"grep ModifyDeviceFiles: /proc/driver/nvidia/params\"") + Expect(err).ToNot(HaveOccurred()) + Expect(output).To(Equal("ModifyDeviceFiles: 0\n")) + }) + }) })