bottlerocket-os / bottlerocket

An operating system designed for hosting containers
https://bottlerocket.dev
Other
8.64k stars 508 forks source link

[DRAFT] Nvidia Settings API changes #4125

Closed monirul closed 1 week ago

monirul commented 1 month ago

Issue number:

Closes #

Description of changes: This PR introduces new settings API for Nvidia GPUs for Kubernetes Nvidia variants.

New settings are

Bottlerocket Settings Impact Value
settings.nvidia-container-runtime.visible-devices-as-volume-mounts allows to change the  accept-nvidia-visible-devices-as-volume-mounts value for k8s container-toolkit true | false default: true
settings.nvidia-container-runtime.visible-devices-envvar-when-unprivileged allows to set value of  accept-nvidia-visible-devices-envvar-when-unprivileged settings of nvidia container runtime for k8s varient true | false default: false
settings.kubernetes.device-plugins.nvidia.pass-device-specs sets the value of the pass-device-specs settings of the device plugin that pass the list of DeviceSpecs to the kubelet on Allocate true | false default: true
settings.kubernetes.device-plugins.nvidia.device-id-strategy sets the value of the device-id-strategy settings of the device plugin which specifies how GPUs are identified and selected for workloads running in a Kubernetes cluster uuid | index Default: index
settings.kubernetes.device-plugins.nvidia.device-list-strategy sets the value of  device-list-strategy setting in NVIDIA Kubernetes device plugins. It is used to configure how GPUs are listed and allocated to pods in a Kubernetes cluster envvar | volume-mounts default: volume-mounts

Testing done: Yes.

Terms of contribution:

By submitting this pull request, I agree that this contribution is dual-licensed under the terms of both the Apache License, version 2.0, and the MIT license.

cbgbt commented 1 month ago

I spoke with @monirul yesterday about an idea to programmatically verify that feature unification has not taken place. Since we need to do a settings-sdk release for the new models anyways, I think it would be a good idea to make the requisite changes their too.

The basic idea is:

arnaldo2792 commented 1 week ago

This was superseded by #4182.