From 43448bac11dc6e9f05618e08d64c85750564d152 Mon Sep 17 00:00:00 2001 From: Evan Lezar Date: Tue, 7 Feb 2023 21:10:31 +0100 Subject: [PATCH] Add nvidia-container-runtime.cdi executable This change adds an nvidia-container-runtime.cdi executable that overrides the runtime mode from the config to "cdi". Signed-off-by: Evan Lezar --- cmd/nvidia-container-runtime.cdi/main.go | 34 +++++++++++++++++++ .../nvidia-container-toolkit-base.install | 1 + .../rpm/SPECS/nvidia-container-toolkit.spec | 23 +++++++------ 3 files changed, 48 insertions(+), 10 deletions(-) create mode 100644 cmd/nvidia-container-runtime.cdi/main.go diff --git a/cmd/nvidia-container-runtime.cdi/main.go b/cmd/nvidia-container-runtime.cdi/main.go new file mode 100644 index 00000000..f5a125a1 --- /dev/null +++ b/cmd/nvidia-container-runtime.cdi/main.go @@ -0,0 +1,34 @@ +/** +# Copyright (c) NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +**/ + +package main + +import ( + "os" + + "github.com/NVIDIA/nvidia-container-toolkit/internal/runtime" +) + +func main() { + rt := runtime.New( + runtime.WithModeOverride("cdi"), + ) + + err := rt.Run(os.Args) + if err != nil { + os.Exit(1) + } +} diff --git a/packaging/debian/nvidia-container-toolkit-base.install b/packaging/debian/nvidia-container-toolkit-base.install index 3b183ed2..83b9d28b 100644 --- a/packaging/debian/nvidia-container-toolkit-base.install +++ b/packaging/debian/nvidia-container-toolkit-base.install @@ -1,3 +1,4 @@ config.toml /etc/nvidia-container-runtime nvidia-container-runtime /usr/bin +nvidia-container-runtime.cdi /usr/bin nvidia-ctk /usr/bin diff --git a/packaging/rpm/SPECS/nvidia-container-toolkit.spec b/packaging/rpm/SPECS/nvidia-container-toolkit.spec index f206f632..9d78ef87 100644 --- a/packaging/rpm/SPECS/nvidia-container-toolkit.spec +++ b/packaging/rpm/SPECS/nvidia-container-toolkit.spec @@ -11,12 +11,13 @@ URL: https://github.com/NVIDIA/nvidia-container-toolkit License: Apache-2.0 Source0: nvidia-container-runtime-hook -Source1: nvidia-container-runtime -Source2: nvidia-ctk -Source3: config.toml -Source4: oci-nvidia-hook -Source5: oci-nvidia-hook.json -Source6: LICENSE +Source1: nvidia-ctk +Source2: config.toml +Source3: oci-nvidia-hook +Source4: oci-nvidia-hook.json +Source5: LICENSE +Source6: nvidia-container-runtime +Source7: nvidia-container-runtime.cdi Obsoletes: nvidia-container-runtime <= 3.5.0-1, nvidia-container-runtime-hook <= 1.4.0-2 Provides: nvidia-container-runtime @@ -35,12 +36,13 @@ Requires: libseccomp Provides tools and utilities to enable GPU support in containers. %prep -cp %{SOURCE0} %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} . +cp %{SOURCE0} %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} %{SOURCE7} . %install mkdir -p %{buildroot}%{_bindir} install -m 755 -t %{buildroot}%{_bindir} nvidia-container-runtime-hook install -m 755 -t %{buildroot}%{_bindir} nvidia-container-runtime +install -m 755 -t %{buildroot}%{_bindir} nvidia-container-runtime.cdi install -m 755 -t %{buildroot}%{_bindir} nvidia-ctk mkdir -p %{buildroot}/etc/nvidia-container-runtime @@ -57,10 +59,10 @@ mkdir -p %{_localstatedir}/lib/rpm-state/nvidia-container-toolkit cp -af %{_bindir}/nvidia-container-runtime-hook %{_localstatedir}/lib/rpm-state/nvidia-container-toolkit %posttrans -if [ ! -e %{_bindir}/nvidia-container-runtime-hook ]; then +if [ ! -e %{_bindir}/nvidia-container-runtime-hook ]; then # reparing lost file nvidia-container-runtime-hook - cp -avf %{_localstatedir}/lib/rpm-state/nvidia-container-toolkit/nvidia-container-runtime-hook %{_bindir} -fi + cp -avf %{_localstatedir}/lib/rpm-state/nvidia-container-toolkit/nvidia-container-runtime-hook %{_bindir} +fi rm -rf %{_localstatedir}/lib/rpm-state/nvidia-container-toolkit ln -sf %{_bindir}/nvidia-container-runtime-hook %{_bindir}/nvidia-container-toolkit @@ -96,4 +98,5 @@ Provides tools such as the NVIDIA Container Runtime and NVIDIA Container Toolkit %license LICENSE %config /etc/nvidia-container-runtime/config.toml %{_bindir}/nvidia-container-runtime +%{_bindir}/nvidia-container-runtime.cdi %{_bindir}/nvidia-ctk