diff --git a/terraform/talos_schematic.tf b/terraform/talos_schematic.tf index 815e4ab..1061e02 100644 --- a/terraform/talos_schematic.tf +++ b/terraform/talos_schematic.tf @@ -19,14 +19,17 @@ data "talos_image_factory_urls" "longhorn_installer" { platform = "metal" } -# GPU-enabled schematic with NVIDIA drivers and toolkit +# GPU-enabled schematic with NVIDIA drivers and toolkit (+ Longhorn deps, since +# worker nodes also run the Longhorn CSI DaemonSet) resource "talos_image_factory_schematic" "gpu_enabled" { schematic = jsonencode({ customization = { systemExtensions = { officialExtensions = [ - "siderolabs/nvidia-driver", - "siderolabs/nvidia-container-toolkit", + "siderolabs/iscsi-tools", + "siderolabs/util-linux-tools", + "siderolabs/nonfree-kmod-nvidia-production", + "siderolabs/nvidia-container-toolkit-production", ] } } diff --git a/terraform/templates/worker.tftpl b/terraform/templates/worker.tftpl index 5709a5f..507ab71 100644 --- a/terraform/templates/worker.tftpl +++ b/terraform/templates/worker.tftpl @@ -48,6 +48,14 @@ machine: image: ${factory_image} wipe: true grubUseUKICmdline: true +%{ if gpu_count > 0 ~} + kernel: + modules: + - name: nvidia + - name: nvidia_uvm + - name: nvidia_drm + - name: nvidia_modeset +%{ endif ~} disks: %{ for disk in extra_disks ~} - device: ${disk.device}