Skip to content

Commit 50a1137

Browse files
committed
chore: Talos + kata + extensions
1 parent 4808fe4 commit 50a1137

File tree

2 files changed

+58
-6
lines changed

2 files changed

+58
-6
lines changed

terraform/equinix-metal-talos-cluster/talos.tf

+57-5
Original file line numberDiff line numberDiff line change
@@ -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

terraform/equinix-metal-talos-cluster/variables.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ variable "longhorn_disk" {
6868
# }
6969
variable "kubernetes_version" {
7070
type = string
71-
default = "v1.29.2"
71+
default = "v1.30.0"
7272
description = "Version of Kubernetes to deploy"
7373
}
7474
# variable "ipxe_script_url" {

0 commit comments

Comments
 (0)