@@ -31,6 +31,7 @@ data "http" "talos_schematic" {
3131 systemExtensions:
3232 officialExtensions:
3333 - siderolabs/gvisor
34+ - siderolabs/kata-containers
3435 - siderolabs/iscsi-tools
3536 - siderolabs/mdadm
3637 EOT
@@ -78,6 +79,11 @@ resource "talos_machine_configuration_apply" "cp" {
7879 - talos.platform=equinixMetal
7980 wipe: false
8081 image: ${ local . talos_install_image }
82+ extensions:
83+ - image: ghcr.io/siderolabs/gvisor:20240325.0
84+ - image: ghcr.io/siderolabs/kata-containers:3.3.0
85+ - image: ghcr.io/siderolabs/iscsi-tools:v0.1.4
86+ - image: ghcr.io/siderolabs/mdadm:v4.2-v1.6.7
8187 network:
8288 hostname: ${ each . value . hostname }
8389 # defaults to false, causes issues when using wildcard DNS
@@ -134,11 +140,57 @@ resource "talos_machine_configuration_apply" "cp" {
134140 - ${ var . kubernetes_apiserver_fqdn }
135141 - ${ equinix_metal_reserved_ip_block . cluster_apiserver_ip . network }
136142 inlineManifests:
137- - apiVersion: node.k8s.io/v1
138- kind: RuntimeClass
139- metadata:
140- name: gvisor
141- handler: runsc
143+ - name: kata-runtime-class
144+ contents: |
145+ apiVersion: node.k8s.io/v1
146+ kind: RuntimeClass
147+ metadata:
148+ name: kata
149+ handler: kata
150+ overhead:
151+ podFixed:
152+ memory: "130Mi"
153+ cpu: "250m"
154+ - name: gvisor-runtime-class
155+ contents: |
156+ apiVersion: node.k8s.io/v1
157+ kind: RuntimeClass
158+ metadata:
159+ name: gvisor
160+ handler: runsc
161+ - name: fuse-device-plugin
162+ contents: |
163+ apiVersion: apps/v1
164+ kind: DaemonSet
165+ metadata:
166+ name: fuse-device-plugin-daemonset
167+ namespace: kube-system
168+ spec:
169+ selector:
170+ matchLabels:
171+ name: fuse-device-plugin-ds
172+ template:
173+ metadata:
174+ labels:
175+ name: fuse-device-plugin-ds
176+ spec:
177+ hostNetwork: true
178+ containers:
179+ - image: soolaugust/fuse-device-plugin:v1.0
180+ name: fuse-device-plugin-ctr
181+ securityContext:
182+ allowPrivilegeEscalation: false
183+ capabilities:
184+ drop: ["ALL"]
185+ volumeMounts:
186+ - name: device-plugin
187+ mountPath: /var/lib/kubelet/device-plugins
188+ volumes:
189+ - name: device-plugin
190+ hostPath:
191+ path: /var/lib/kubelet/device-plugins
192+ imagePullSecrets:
193+ - name: registry-secret
142194 - name: metal-cloud-config
143195 contents: |
144196 apiVersion: v1
0 commit comments