From ae7bac73dede9d9a76d0c58b72bfbec51a4bf0aa Mon Sep 17 00:00:00 2001 From: Raboneko <119771935+raboneko@users.noreply.github.com> Date: Mon, 20 Jan 2025 20:32:19 -0800 Subject: [PATCH] Fix: NVIDIA Container Toolkit Post-script, add Podman (#3085) (#3087) * Add that missing fi Signed-off-by: Gil * Fix: Welcome if hell, but should work better; also added Podman Signed-off-by: Gil * Change: Move config out of systemctl status if statement Signed-off-by: Gil --------- Signed-off-by: Gil (cherry picked from commit 26021aad2def609f7016af8752081aabfb3dce37) Co-authored-by: Gil --- .../nvidia-container-toolkit.spec | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/anda/system/nvidia/nvidia-container-toolkit/nvidia-container-toolkit.spec b/anda/system/nvidia/nvidia-container-toolkit/nvidia-container-toolkit.spec index f421ca9fb4..be9072906b 100644 --- a/anda/system/nvidia/nvidia-container-toolkit/nvidia-container-toolkit.spec +++ b/anda/system/nvidia/nvidia-container-toolkit/nvidia-container-toolkit.spec @@ -42,15 +42,29 @@ mkdir -p %{buildroot}%{_sysconfdir}/nvidia-container-runtime %post if rpm -q --quiet moby-engine; then - nvidia-ctk runtime configure --runtime=docker - systemctl restart docker || systemctl --user restart docker && nvidia-ctk config --set nvidia-container-cli.no-cgroups --in-place || : -fi -if rpm -q --quiet containerd; then + if 'docker info -f "{{println .SecurityOptions}}" | grep rootless'; then + nvidia-ctk runtime configure --runtime=docker --config="$HOME"/.config/docker/daemon.json + if systemctl --user is-running docker >/dev/null; then + systemctl --user restart docker + fi + nvidia-ctk config --set nvidia-container-cli.no-cgroups --in-place + else nvidia-ctk runtime configure --runtime=docker + if systemctl is-running docker >/dev/null; then + systemctl restart docker + fi + fi +elif rpm -q --quiet containerd; then nvidia-ctk runtime configure --runtime=containerd - systemctl restart containerd || : -if rpm -q --quiet cri-o; then + if systemctl is-running containerd >/dev/null; then + systemctl restart containerd + fi +elif rpm -q --quiet cri-o; then nvidia-ctk runtime configure --runtime=crio - systemctl restart crio || : + if systemctl is-running crio >/dev/null; then + systemctl restart crio + fi + elif rpm -q --quiet podman; then + nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml fi %files