mirror of
https://github.com/NVIDIA/nvidia-container-toolkit
synced 2025-05-06 13:05:19 +00:00
Merge branch 'rename-to-nvidia-container-hook' into 'main'
Rename -toolkit executable to -runtime-hook See merge request nvidia/container-toolkit/container-toolkit!189
This commit is contained in:
commit
3809407b6a
@ -34,7 +34,7 @@ type CLIConfig struct {
|
|||||||
Ldconfig *string `toml:"ldconfig"`
|
Ldconfig *string `toml:"ldconfig"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// HookConfig : options for the nvidia-container-toolkit.
|
// HookConfig : options for the nvidia-container-runtime-hook.
|
||||||
type HookConfig struct {
|
type HookConfig struct {
|
||||||
DisableRequire bool `toml:"disable-require"`
|
DisableRequire bool `toml:"disable-require"`
|
||||||
SwarmResource *string `toml:"swarm-resource"`
|
SwarmResource *string `toml:"swarm-resource"`
|
@ -20,7 +20,6 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
|
||||||
|
|
||||||
"github.com/NVIDIA/nvidia-container-toolkit/internal/config"
|
"github.com/NVIDIA/nvidia-container-toolkit/internal/config"
|
||||||
"github.com/NVIDIA/nvidia-container-toolkit/internal/oci"
|
"github.com/NVIDIA/nvidia-container-toolkit/internal/oci"
|
||||||
@ -61,8 +60,8 @@ func (m stableRuntimeModifier) Modify(spec *specs.Spec) error {
|
|||||||
spec.Hooks = &specs.Hooks{}
|
spec.Hooks = &specs.Hooks{}
|
||||||
} else if len(spec.Hooks.Prestart) != 0 {
|
} else if len(spec.Hooks.Prestart) != 0 {
|
||||||
for _, hook := range spec.Hooks.Prestart {
|
for _, hook := range spec.Hooks.Prestart {
|
||||||
if strings.Contains(hook.Path, config.NVIDIAContainerRuntimeHookExecutable) {
|
if isNVIDIAContainerRuntimeHook(&hook) {
|
||||||
m.logger.Infof("existing nvidia prestart hook found in OCI spec")
|
m.logger.Infof("Existing nvidia prestart hook (%v) found in OCI spec", hook.Path)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" exec /usr/bin/nvidia-container-toolkit "$@"
|
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" exec /usr/bin/nvidia-container-runtime-hook "$@"
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"hook": {
|
"hook": {
|
||||||
"path": "/usr/bin/nvidia-container-toolkit",
|
"path": "/usr/bin/nvidia-container-runtime-hook",
|
||||||
"args": ["nvidia-container-toolkit", "prestart"],
|
"args": ["nvidia-container-runtime-hook", "prestart"],
|
||||||
"env": [
|
"env": [
|
||||||
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||||
]
|
]
|
||||||
|
@ -3,9 +3,9 @@ Section: @SECTION@utils
|
|||||||
Priority: optional
|
Priority: optional
|
||||||
Maintainer: NVIDIA CORPORATION <cudatools@nvidia.com>
|
Maintainer: NVIDIA CORPORATION <cudatools@nvidia.com>
|
||||||
Standards-Version: 3.9.8
|
Standards-Version: 3.9.8
|
||||||
Homepage: https://github.com/NVIDIA/nvidia-container-runtime/wiki
|
Homepage: https://github.com/NVIDIA/nvidia-container-toolkit
|
||||||
Vcs-Git: https://github.com/NVIDIA/nvidia-container-runtime
|
Vcs-Git: https://github.com/NVIDIA/nvidia-container-toolkit
|
||||||
Vcs-Browser: https://github.com/NVIDIA/nvidia-container-runtime
|
Vcs-Browser: https://github.com/NVIDIA/nvidia-container-toolkit
|
||||||
Build-Depends: debhelper (>= 9)
|
Build-Depends: debhelper (>= 9)
|
||||||
|
|
||||||
Package: nvidia-container-toolkit
|
Package: nvidia-container-toolkit
|
||||||
@ -13,5 +13,5 @@ Architecture: any
|
|||||||
Depends: ${misc:Depends}, libnvidia-container-tools (>= @LIBNVIDIA_CONTAINER_TOOLS_VERSION@), libnvidia-container-tools (<< 2.0.0), libseccomp2
|
Depends: ${misc:Depends}, libnvidia-container-tools (>= @LIBNVIDIA_CONTAINER_TOOLS_VERSION@), libnvidia-container-tools (<< 2.0.0), libseccomp2
|
||||||
Breaks: nvidia-container-runtime (<= 3.5.0-1), nvidia-container-runtime-hook
|
Breaks: nvidia-container-runtime (<= 3.5.0-1), nvidia-container-runtime-hook
|
||||||
Replaces: nvidia-container-runtime (<= 3.5.0-1), nvidia-container-runtime-hook
|
Replaces: nvidia-container-runtime (<= 3.5.0-1), nvidia-container-runtime-hook
|
||||||
Description: NVIDIA container runtime hook
|
Description: NVIDIA Container toolkit
|
||||||
Provides a OCI hook to enable GPU support in containers.
|
Provides tools and utilities to enable GPU support in containers.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
config.toml /etc/nvidia-container-runtime
|
config.toml /etc/nvidia-container-runtime
|
||||||
nvidia-container-toolkit /usr/bin
|
nvidia-container-runtime-hook /usr/bin
|
||||||
nvidia-container-runtime /usr/bin
|
nvidia-container-runtime /usr/bin
|
||||||
nvidia-ctk /usr/bin
|
nvidia-ctk /usr/bin
|
||||||
|
@ -7,9 +7,9 @@ NVIDIA_CONTAINER_TOOLKIT=/usr/bin/nvidia-container-toolkit
|
|||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
configure)
|
configure)
|
||||||
if [ -f "${NVIDIA_CONTAINER_TOOLKIT}" ]; then
|
if [ -f "${NVIDIA_CONTAINER_RUNTIME_HOOK}" ]; then
|
||||||
if [ ! -e "${NVIDIA_CONTAINER_RUNTIME_HOOK}" ]; then
|
if [ ! -e "${NVIDIA_CONTAINER_TOOLKIT}" ]; then
|
||||||
ln -s ${NVIDIA_CONTAINER_TOOLKIT} ${NVIDIA_CONTAINER_RUNTIME_HOOK}
|
ln -s ${NVIDIA_CONTAINER_RUNTIME_HOOK} ${NVIDIA_CONTAINER_TOOLKIT}
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
@ -7,7 +7,7 @@ NVIDIA_CONTAINER_TOOLKIT=/usr/bin/nvidia-container-toolkit
|
|||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
purge)
|
purge)
|
||||||
[ -L "${NVIDIA_CONTAINER_RUNTIME_HOOK}" ] && rm ${NVIDIA_CONTAINER_RUNTIME_HOOK}
|
[ -L "${NVIDIA_CONTAINER_TOOLKIT}" ] && rm ${NVIDIA_CONTAINER_TOOLKIT}
|
||||||
;;
|
;;
|
||||||
|
|
||||||
upgrade|failed-upgrade|remove|abort-install|abort-upgrade|disappear)
|
upgrade|failed-upgrade|remove|abort-install|abort-upgrade|disappear)
|
||||||
|
@ -6,11 +6,11 @@ Group: Development Tools
|
|||||||
Vendor: NVIDIA CORPORATION
|
Vendor: NVIDIA CORPORATION
|
||||||
Packager: NVIDIA CORPORATION <cudatools@nvidia.com>
|
Packager: NVIDIA CORPORATION <cudatools@nvidia.com>
|
||||||
|
|
||||||
Summary: NVIDIA container runtime hook
|
Summary: NVIDIA Container Toolkit
|
||||||
URL: https://github.com/NVIDIA/nvidia-container-runtime
|
URL: https://github.com/NVIDIA/nvidia-container-toolkit
|
||||||
License: Apache-2.0
|
License: Apache-2.0
|
||||||
|
|
||||||
Source0: nvidia-container-toolkit
|
Source0: nvidia-container-runtime-hook
|
||||||
Source1: nvidia-container-runtime
|
Source1: nvidia-container-runtime
|
||||||
Source2: nvidia-ctk
|
Source2: nvidia-ctk
|
||||||
Source3: config.toml
|
Source3: config.toml
|
||||||
@ -31,14 +31,14 @@ Requires: libseccomp
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Provides a OCI hook to enable GPU support in containers.
|
Provides tools and utilities to enable GPU support in containers.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
cp %{SOURCE0} %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} .
|
cp %{SOURCE0} %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} .
|
||||||
|
|
||||||
%install
|
%install
|
||||||
mkdir -p %{buildroot}%{_bindir}
|
mkdir -p %{buildroot}%{_bindir}
|
||||||
install -m 755 -t %{buildroot}%{_bindir} nvidia-container-toolkit
|
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
|
||||||
install -m 755 -t %{buildroot}%{_bindir} nvidia-ctk
|
install -m 755 -t %{buildroot}%{_bindir} nvidia-ctk
|
||||||
|
|
||||||
@ -52,14 +52,14 @@ mkdir -p %{buildroot}/usr/share/containers/oci/hooks.d
|
|||||||
install -m 644 -t %{buildroot}/usr/share/containers/oci/hooks.d oci-nvidia-hook.json
|
install -m 644 -t %{buildroot}/usr/share/containers/oci/hooks.d oci-nvidia-hook.json
|
||||||
|
|
||||||
%posttrans
|
%posttrans
|
||||||
ln -sf %{_bindir}/nvidia-container-toolkit %{_bindir}/nvidia-container-runtime-hook
|
ln -sf %{_bindir}/nvidia-container-runtime-hook %{_bindir}/nvidia-container-toolkit
|
||||||
|
|
||||||
%postun
|
%postun
|
||||||
rm -f %{_bindir}/nvidia-container-runtime-hook
|
rm -f %{_bindir}/nvidia-container-runtime-toolkit
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%license LICENSE
|
%license LICENSE
|
||||||
%{_bindir}/nvidia-container-toolkit
|
%{_bindir}/nvidia-container-runtime-hook
|
||||||
%{_bindir}/nvidia-container-runtime
|
%{_bindir}/nvidia-container-runtime
|
||||||
%{_bindir}/nvidia-ctk
|
%{_bindir}/nvidia-ctk
|
||||||
%config /etc/nvidia-container-runtime/config.toml
|
%config /etc/nvidia-container-runtime/config.toml
|
||||||
|
@ -35,14 +35,15 @@ testing::toolkit::install() {
|
|||||||
test -e "$(${READLINK} -f "${shared_dir}/usr/local/nvidia/toolkit/libnvidia-container-go.so.1")"
|
test -e "$(${READLINK} -f "${shared_dir}/usr/local/nvidia/toolkit/libnvidia-container-go.so.1")"
|
||||||
|
|
||||||
test -e "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-cli"
|
test -e "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-cli"
|
||||||
test -e "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-toolkit"
|
test -e "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-runtime-hook"
|
||||||
|
test -L "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-toolkit"
|
||||||
test -e "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-runtime"
|
test -e "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-runtime"
|
||||||
|
|
||||||
grep -q -E "nvidia driver modules are not yet loaded, invoking runc directly" "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-runtime"
|
grep -q -E "nvidia driver modules are not yet loaded, invoking runc directly" "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-runtime"
|
||||||
grep -q -E "exec runc \".@\"" "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-runtime"
|
grep -q -E "exec runc \".@\"" "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-runtime"
|
||||||
|
|
||||||
test -e "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-cli.real"
|
test -e "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-cli.real"
|
||||||
test -e "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-toolkit.real"
|
test -e "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-runtime-hook.real"
|
||||||
test -e "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-runtime.real"
|
test -e "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-runtime.real"
|
||||||
|
|
||||||
test -e "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-runtime.experimental"
|
test -e "${shared_dir}/usr/local/nvidia/toolkit/nvidia-container-runtime.experimental"
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
|
"github.com/NVIDIA/nvidia-container-toolkit/internal/config"
|
||||||
hooks "github.com/containers/podman/v4/pkg/hooks/1.0.0"
|
hooks "github.com/containers/podman/v4/pkg/hooks/1.0.0"
|
||||||
rspec "github.com/opencontainers/runtime-spec/specs-go"
|
rspec "github.com/opencontainers/runtime-spec/specs-go"
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
@ -164,7 +165,7 @@ func getHookPath(hooksDir string, hookFilename string) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func generateOciHook(toolkitDir string) hooks.Hook {
|
func generateOciHook(toolkitDir string) hooks.Hook {
|
||||||
hookPath := filepath.Join(toolkitDir, "nvidia-container-toolkit")
|
hookPath := filepath.Join(toolkitDir, config.NVIDIAContainerRuntimeHookExecutable)
|
||||||
envPath := "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:" + toolkitDir
|
envPath := "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:" + toolkitDir
|
||||||
always := true
|
always := true
|
||||||
|
|
||||||
@ -173,7 +174,7 @@ func generateOciHook(toolkitDir string) hooks.Hook {
|
|||||||
Stages: []string{"prestart"},
|
Stages: []string{"prestart"},
|
||||||
Hook: rspec.Hook{
|
Hook: rspec.Hook{
|
||||||
Path: hookPath,
|
Path: hookPath,
|
||||||
Args: []string{"nvidia-container-toolkit", "prestart"},
|
Args: []string{filepath.Base(config.NVIDIAContainerRuntimeHookExecutable), "prestart"},
|
||||||
Env: []string{envPath},
|
Env: []string{envPath},
|
||||||
},
|
},
|
||||||
When: hooks.When{
|
When: hooks.When{
|
||||||
|
@ -33,7 +33,7 @@ const (
|
|||||||
DefaultNvidiaDriverRoot = "/run/nvidia/driver"
|
DefaultNvidiaDriverRoot = "/run/nvidia/driver"
|
||||||
|
|
||||||
nvidiaContainerCliSource = "/usr/bin/nvidia-container-cli"
|
nvidiaContainerCliSource = "/usr/bin/nvidia-container-cli"
|
||||||
nvidiaContainerRuntimeHookSource = "/usr/bin/nvidia-container-toolkit"
|
nvidiaContainerRuntimeHookSource = "/usr/bin/nvidia-container-runtime-hook"
|
||||||
|
|
||||||
nvidiaContainerToolkitConfigSource = "/etc/nvidia-container-runtime/config.toml"
|
nvidiaContainerToolkitConfigSource = "/etc/nvidia-container-runtime/config.toml"
|
||||||
configFilename = "config.toml"
|
configFilename = "config.toml"
|
||||||
@ -319,8 +319,8 @@ func installRuntimeHook(toolkitDir string, configFilePath string) (string, error
|
|||||||
e := executable{
|
e := executable{
|
||||||
source: nvidiaContainerRuntimeHookSource,
|
source: nvidiaContainerRuntimeHookSource,
|
||||||
target: executableTarget{
|
target: executableTarget{
|
||||||
dotfileName: "nvidia-container-toolkit.real",
|
dotfileName: "nvidia-container-runtime-hook.real",
|
||||||
wrapperName: "nvidia-container-toolkit",
|
wrapperName: "nvidia-container-runtime-hook",
|
||||||
},
|
},
|
||||||
argLines: argLines,
|
argLines: argLines,
|
||||||
}
|
}
|
||||||
@ -330,7 +330,7 @@ func installRuntimeHook(toolkitDir string, configFilePath string) (string, error
|
|||||||
return "", fmt.Errorf("error installing NVIDIA container runtime hook: %v", err)
|
return "", fmt.Errorf("error installing NVIDIA container runtime hook: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = installSymlink(toolkitDir, "nvidia-container-runtime-hook", installedPath)
|
err = installSymlink(toolkitDir, "nvidia-container-toolkit", installedPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", fmt.Errorf("error installing symlink to NVIDIA container runtime hook: %v", err)
|
return "", fmt.Errorf("error installing symlink to NVIDIA container runtime hook: %v", err)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user