diff --git a/charts/system/nvidia-device-plugin/.helmignore b/charts/system/nvidia-device-plugin/.helmignore new file mode 100644 index 00000000000..77ca5567b26 --- /dev/null +++ b/charts/system/nvidia-device-plugin/.helmignore @@ -0,0 +1,30 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl +# docs folder +/docs +# icon +icon.png diff --git a/charts/system/nvidia-device-plugin/Chart.yaml b/charts/system/nvidia-device-plugin/Chart.yaml new file mode 100644 index 00000000000..e0f9ee7acfb --- /dev/null +++ b/charts/system/nvidia-device-plugin/Chart.yaml @@ -0,0 +1,44 @@ +annotations: + max_scale_version: 24.04.0 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "false" + truecharts.org/category: operators + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.11" + truecharts.org/train: system +apiVersion: v2 +appVersion: 0.0.1 +dependencies: + - name: common + version: 20.2.10 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] + - name: nvidia-device-plugin + version: 0.14.5 + repository: https://nvidia.github.io/k8s-device-plugin + condition: "" + alias: nvdp + tags: [] + import-values: [] +deprecated: false +description: NVIDIA device plugin for Kubernetes +home: https://truecharts.org/charts/system/nvidia-device-plugin +icon: https://truecharts.org/img/hotlink-ok/chart-icons/nvidia-device-plugin.png +keywords: + - nvidia + - plugins +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: kubeapps +sources: + - https://cert-manager.io/ + - https://github.com/NVIDIA/k8s-device-plugin?tab=readme-ov-file#deployment-via-helm + - https://github.com/truecharts/charts/tree/master/charts/system/nvidia-device-plugin +type: application +version: 0.14.5 diff --git a/charts/system/nvidia-device-plugin/README.md b/charts/system/nvidia-device-plugin/README.md new file mode 100644 index 00000000000..e0ed454cbce --- /dev/null +++ b/charts/system/nvidia-device-plugin/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/system/kubeapps) + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! + +_All Rights Reserved - The TrueCharts Project_ diff --git a/charts/system/nvidia-device-plugin/docs/installation.md b/charts/system/nvidia-device-plugin/docs/installation.md new file mode 100644 index 00000000000..efc50d51a8f --- /dev/null +++ b/charts/system/nvidia-device-plugin/docs/installation.md @@ -0,0 +1,93 @@ +# Talos Linux Setup + +## Enable NVIDIA kernel modules +Before installing the device plugin, some initial steps need to be taken per +[Talos Documentation][1]. Please make sure you have installed the correct system +extensions through a combination of patches + the correct [factory image][2] for your +use case. + +example gpu-worker-patch.yaml +```yaml +machine: + kernel: + modules: + - name: nvidia + - name: nvidia_uvm + - name: nvidia_drm + - name: nvidia_modeset + sysctls: + net.core.bpf_jit_harden: 1 +``` + +### Quick Sanity Check +If running these commands does not produce similar output, you haven't set up base +system completely: +``` +❯ talosctl read /proc/modules +nvidia_uvm 1482752 - - Live 0xffffffffc3b4e000 (PO) +nvidia_drm 73728 - - Live 0xffffffffc3b3b000 (PO) +nvidia_modeset 1290240 - - Live 0xffffffffc39dc000 (PO) +nvidia 56602624 - - Live 0xffffffffc03e0000 (PO) + +❯ talosctl get extensions +NODE NAMESPACE TYPE ID VERSION NAME VERSION +192.168.2.104 runtime ExtensionStatus 0 1 nonfree-kmod-nvidia 535.129.03-v1.6.7 +192.168.2.104 runtime ExtensionStatus 2 1 nvidia-container-toolkit 535.129.03-v1.13.5 +192.168.2.104 runtime ExtensionStatus 4 1 schematic a22f54cdf137d9d058e9a399adecf4bab2f3cc74b15b5bee00005811433e06b0 +192.168.2.104 runtime ExtensionStatus modules.dep 1 modules.dep 6.1.82-talos +``` + +## Create NVIDIA runtime class: +You will need to add this runtime class to pods you wish to add GPU resources to. +``` +❯ cat <