nvidia-container-toolkit/packaging/debian/nvidia-container-toolkit-cdi-refresh.postinst
Carlos Eduardo Arango Gutierrez 512272201c
Some checks are pending
CI Pipeline / code-scanning (push) Waiting to run
CI Pipeline / variables (push) Waiting to run
CI Pipeline / golang (push) Waiting to run
CI Pipeline / image (push) Blocked by required conditions
CI Pipeline / e2e-test (push) Blocked by required conditions
Add nvidia-cdi-refresh service
Automatic regeneration of /var/run/cdi/nvidia.yaml
New units:
	•	nvidia-cdi-refresh.service – one-shot wrapper for
			nvidia-ctk cdi generate (adds sleep + required caps).
	•	nvidia-cdi-refresh.path   – fires on driver install/upgrade via
			modules.dep.bin changes.
	•	60-nvidia-cdi-refresh.rules – udev triggers for module add/remove, PCI
			bind/unbind/change, and MIG /dev/nvidia-caps* char-device events.
Packaging
	•	RPM %post reloads udev/systemd and enables the path unit on fresh
			installs.
	•	DEB postinst does the same (configure, skip on upgrade).

Result: CDI spec is always up to date

Signed-off-by: Carlos Eduardo Arango Gutierrez <eduardoa@nvidia.com>
2025-05-12 18:57:18 +02:00

33 lines
642 B
Bash
Executable File

#!/bin/sh
set -e
case "$1" in
configure)
if command -v udevadm >/dev/null 2>&1; then
udevadm control --reload || true
fi
if command -v systemctl >/dev/null 2>&1 \
&& systemctl --quiet is-system-running 2>/dev/null; then
systemctl daemon-reload || true
if [ -z "$2" ]; then # $2 empty → first install
systemctl enable --now nvidia-cdi-refresh.path || true
fi
fi
;;
abort-upgrade|abort-remove|abort-deconfigure)
# Nothing to do for these dpkg abort cases
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
exit 0