Files
dotfiles/k8s/butane.yml
2026-03-17 16:25:36 -05:00

56 lines
1.4 KiB
YAML

variant: fcos
version: 1.5.0
passwd:
users:
- name: core
ssh_authorized_keys:
- "ssh-rsa YOUR_PUBLIC_SSH_KEY_HERE"
storage:
files:
# 1. Load required kernel modules for Kubernetes/CRI-O
- path: /etc/modules-load.d/k8s.conf
mode: 0644
contents:
inline: |
overlay
br_netfilter
# 2. Configure Sysctl for networking
- path: /etc/sysctl.d/k8s.conf
mode: 0644
contents:
inline: |
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
systemd:
units:
# 3. Ensure CRI-O (Container Runtime) is enabled and started
- name: crio.service
enabled: true
# 4. Kubelet Service definition
- name: kubelet.service
enabled: true
contents: |
[Unit]
Description=Kubernetes Kubelet
Documentation=https://github.com/kubernetes/kubernetes
After=crio.service
Requires=crio.service
[Service]
ExecStartPre=/usr/bin/mkdir -p /etc/kubernetes/manifests
ExecStart=/usr/bin/kubelet \
--container-runtime-endpoint=unix:///var/run/crio/crio.sock \
--register-node=true \
--v=2
Restart=always
StartLimitInterval=0
RestartSec=10
[Install]
WantedBy=multi-user.target