devops/ships/overlays/k3s.yaml

46 lines
1.1 KiB
YAML

variant: flatcar
version: 1.0.0
storage:
files:
- path: /etc/hostname
mode: 0644
contents:
inline: k3s-node
replace: true
- path: /opt/setup-k3s.sh
mode: 0755
contents:
inline: |
#!/bin/bash
# Install K3s with minimal components
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="server \
--disable=traefik \
--disable=servicelb \
--tls-san=$(hostname -I | cut -d' ' -f1) \
--write-kubeconfig-mode=644" sh -
# Create symlinks for easier access
mkdir -p /root/.kube
ln -sf /etc/rancher/k3s/k3s.yaml /root/.kube/config
# Wait for node to be ready
while ! kubectl get nodes; do sleep 5; done
systemd:
units:
- name: k3s-setup.service
enabled: true
contents: |
[Unit]
Description=K3s Setup
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/opt/setup-k3s.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target