From d958a6d6a1b098da734f666f99576135218c01ac Mon Sep 17 00:00:00 2001 From: Monirul Islam Date: Tue, 23 Jul 2024 20:59:21 +0000 Subject: [PATCH] Kit changes for Nvidia settings APIs Signed-off-by: Monirul Islam --- .../nvidia-container-toolkit-config-k8s | 13 +++++++++++++ .../nvidia-container-toolkit-config-k8s.toml | 8 -------- .../nvidia-container-toolkit-tmpfiles-k8s.conf | 2 +- .../nvidia-container-toolkit.spec | 8 +++++--- .../nvidia-k8s-device-plugin-conf | 13 +++++++++++++ .../nvidia-k8s-device-plugin-exec-start-conf | 12 ++++++++++++ .../nvidia-k8s-device-plugin-tmpfiles.conf | 2 ++ .../nvidia-k8s-device-plugin.service | 2 -- .../nvidia-k8s-device-plugin.spec | 13 +++++++++++++ 9 files changed, 59 insertions(+), 14 deletions(-) create mode 100644 packages/nvidia-container-toolkit/nvidia-container-toolkit-config-k8s delete mode 100644 packages/nvidia-container-toolkit/nvidia-container-toolkit-config-k8s.toml create mode 100644 packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin-conf create mode 100644 packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin-exec-start-conf create mode 100644 packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin-tmpfiles.conf diff --git a/packages/nvidia-container-toolkit/nvidia-container-toolkit-config-k8s b/packages/nvidia-container-toolkit/nvidia-container-toolkit-config-k8s new file mode 100644 index 000000000..e6249e3b7 --- /dev/null +++ b/packages/nvidia-container-toolkit/nvidia-container-toolkit-config-k8s @@ -0,0 +1,13 @@ +[required-extensions] +nvidia-container-runtime = "v1" +std = { version = "v1", helpers = ["default"] } + ++++ +accept-nvidia-visible-devices-as-volume-mounts = {{default true settings.nvidia-container-runtime.visible-devices-as-volume-mounts}} +accept-nvidia-visible-devices-envvar-when-unprivileged = {{default false settings.nvidia-container-runtime.visible-devices-envvar-when-unprivileged}} + +[nvidia-container-cli] +root = "/" +path = "/usr/bin/nvidia-container-cli" +environment = [] +ldconfig = "@/sbin/ldconfig" diff --git a/packages/nvidia-container-toolkit/nvidia-container-toolkit-config-k8s.toml b/packages/nvidia-container-toolkit/nvidia-container-toolkit-config-k8s.toml deleted file mode 100644 index 9ef532c89..000000000 --- a/packages/nvidia-container-toolkit/nvidia-container-toolkit-config-k8s.toml +++ /dev/null @@ -1,8 +0,0 @@ -accept-nvidia-visible-devices-as-volume-mounts = true -accept-nvidia-visible-devices-envvar-when-unprivileged = false - -[nvidia-container-cli] -root = "/" -path = "/usr/bin/nvidia-container-cli" -environment = [] -ldconfig = "@/sbin/ldconfig" diff --git a/packages/nvidia-container-toolkit/nvidia-container-toolkit-tmpfiles-k8s.conf b/packages/nvidia-container-toolkit/nvidia-container-toolkit-tmpfiles-k8s.conf index 011192e39..f669cd3cc 100644 --- a/packages/nvidia-container-toolkit/nvidia-container-toolkit-tmpfiles-k8s.conf +++ b/packages/nvidia-container-toolkit/nvidia-container-toolkit-tmpfiles-k8s.conf @@ -1 +1 @@ -C /etc/nvidia-container-runtime/config.toml - - - - /usr/share/factory/nvidia-container-runtime/nvidia-container-toolkit-config-k8s.toml +d /etc/nvidia-container-runtime - - - - - diff --git a/packages/nvidia-container-toolkit/nvidia-container-toolkit.spec b/packages/nvidia-container-toolkit/nvidia-container-toolkit.spec index 93412ba77..e9b1a744f 100644 --- a/packages/nvidia-container-toolkit/nvidia-container-toolkit.spec +++ b/packages/nvidia-container-toolkit/nvidia-container-toolkit.spec @@ -13,7 +13,7 @@ License: Apache-2.0 URL: https://%{goimport} Source0: https://%{goimport}/archive/v%{gover}/nvidia-container-toolkit-%{gover}.tar.gz -Source1: nvidia-container-toolkit-config-k8s.toml +Source1: nvidia-container-toolkit-config-k8s Source2: nvidia-container-toolkit-config-ecs.toml Source3: nvidia-oci-hooks-json Source4: nvidia-gpu-devices.rules @@ -59,9 +59,11 @@ install -d %{buildroot}%{_cross_templatedir} install -d %{buildroot}%{_cross_udevrulesdir} install -d %{buildroot}%{_cross_datadir}/nvidia-container-toolkit install -d %{buildroot}%{_cross_factorydir}/nvidia-container-runtime +install -d %{buildroot}%{_cross_templatedir}/nvidia-container-runtime install -p -m 0755 nvidia-container-runtime-hook %{buildroot}%{_cross_bindir}/ install -p -m 0755 nvidia-ctk %{buildroot}%{_cross_bindir}/ -install -m 0644 %{S:1} %{S:2} %{buildroot}%{_cross_factorydir}/nvidia-container-runtime/ +install -m 0644 %{S:1} %{buildroot}%{_cross_templatedir}/nvidia-container-runtime/ +install -m 0644 %{S:2} %{buildroot}%{_cross_factorydir}/nvidia-container-runtime/ install -m 0644 %{S:3} %{buildroot}%{_cross_templatedir}/nvidia-oci-hooks-json install -p -m 0644 %{S:4} %{buildroot}%{_cross_udevrulesdir}/90-nvidia-gpu-devices.rules install -m 0644 %{S:5} %{buildroot}%{_cross_tmpfilesdir}/nvidia-container-toolkit-ecs.conf @@ -82,5 +84,5 @@ ln -s shimpei %{buildroot}%{_cross_bindir}/nvidia-oci %{_cross_tmpfilesdir}/nvidia-container-toolkit-ecs.conf %files k8s -%{_cross_factorydir}/nvidia-container-runtime/nvidia-container-toolkit-config-k8s.toml +%{_cross_templatedir}/nvidia-container-runtime/nvidia-container-toolkit-config-k8s %{_cross_tmpfilesdir}/nvidia-container-toolkit-k8s.conf diff --git a/packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin-conf b/packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin-conf new file mode 100644 index 000000000..e652b6508 --- /dev/null +++ b/packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin-conf @@ -0,0 +1,13 @@ +[required-extensions] +kubernetes = "v1" +std = { version = "v1", helpers = ["default"] } + ++++ +version: v1 +flags: + migStrategy: "none" + failOnInitError: true + plugin: + passDeviceSpecs: {{default true settings.kubernetes.nvidia.device-plugin.pass-device-specs}} + deviceListStrategy: {{default "volume-mounts" settings.kubernetes.nvidia.device-plugin.device-list-strategy}} + deviceIDStrategy: {{default "index" settings.kubernetes.nvidia.device-plugin.device-id-strategy}} diff --git a/packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin-exec-start-conf b/packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin-exec-start-conf new file mode 100644 index 000000000..1cb720952 --- /dev/null +++ b/packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin-exec-start-conf @@ -0,0 +1,12 @@ +[required-extensions] +kubernetes = "v1" +std = { version = "v1", helpers = ["any_enabled", "default"] } ++++ +[Service] +ExecStart= +ExecStart=/usr/bin/nvidia-device-plugin \ +{{#if settings.kubernetes.device-plugins.nvidia}} + --config-file=/etc/nvidia-k8s-device-plugin/settings.yaml +{{#else}} + --device-list-strategy volume-mounts --device-id-strategy index --pass-device-specs=true +{{/if}} diff --git a/packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin-tmpfiles.conf b/packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin-tmpfiles.conf new file mode 100644 index 000000000..c6a7428ba --- /dev/null +++ b/packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin-tmpfiles.conf @@ -0,0 +1,2 @@ +d /etc/nvidia-k8s-device-plugin - - - - - +d /etc/systemd/system/nvidia-k8s-device-plugin.service.d - - - - - diff --git a/packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin.service b/packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin.service index b11778aec..b775c45fd 100644 --- a/packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin.service +++ b/packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin.service @@ -1,7 +1,5 @@ [Unit] Description=Start NVIDIA kubernetes device plugin -RefuseManualStart=true -RefuseManualStop=true After=kubelet.service Wants=kubelet.service diff --git a/packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin.spec b/packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin.spec index 313ca74ab..6fd085f52 100644 --- a/packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin.spec +++ b/packages/nvidia-k8s-device-plugin/nvidia-k8s-device-plugin.spec @@ -13,6 +13,10 @@ License: Apache-2.0 URL: https://github.com/NVIDIA/k8s-device-plugin Source0: https://%{goimport}/archive/v%{gover}/v%{gover}.tar.gz#/k8s-device-plugin-%{gover}.tar.gz Source1: nvidia-k8s-device-plugin.service +Source2: nvidia-k8s-device-plugin-conf +Source3: nvidia-k8s-device-plugin-tmpfiles.conf +Source4: nvidia-k8s-device-plugin-exec-start-conf + BuildRequires: %{_cross_os}glibc-devel Requires: %{name}(binaries) @@ -61,11 +65,20 @@ install -p -m 0755 fips/nvidia-device-plugin %{buildroot}%{_cross_fips_bindir} install -d %{buildroot}%{_cross_unitdir} install -p -m 0644 %{S:1} %{buildroot}%{_cross_unitdir} +install -d %{buildroot}%{_cross_unitdir}/nvidia-k8s-device-plugin.service.d +install -D -m 0644 %{S:2} %{buildroot}%{_cross_templatedir}/nvidia-k8s-device-plugin-conf +install -D -m 0644 %{S:4} %{buildroot}%{_cross_templatedir}/nvidia-k8s-device-plugin-exec-start-conf +install -D -m 0644 %{S:3} %{buildroot}%{_cross_tmpfilesdir}/nvidia-k8s-device-plugin-tmpfiles.conf + %files %license LICENSE %{_cross_attribution_file} %{_cross_unitdir}/nvidia-k8s-device-plugin.service +%dir %{_cross_unitdir}/nvidia-k8s-device-plugin.service.d +%{_cross_templatedir}/nvidia-k8s-device-plugin-conf +%{_cross_templatedir}/nvidia-k8s-device-plugin-exec-start-conf +%{_cross_tmpfilesdir}/nvidia-k8s-device-plugin-tmpfiles.conf %files bin %{_cross_bindir}/nvidia-device-plugin