30 lines
1.2 KiB
Plaintext
30 lines
1.2 KiB
Plaintext
#cloud-config
|
|
packages:
|
|
- curl
|
|
users:
|
|
- name: cluster
|
|
shell: /bin/bash
|
|
runcmd:
|
|
# update system dependency-lists
|
|
- apt-get update -y
|
|
# configure NAT
|
|
- echo '#!/bin/bash' > /etc/networkd-dispatcher/routable.d/10-eth0-post-up
|
|
- echo 'echo 1 > /proc/sys/net/ipv4/ip_forward' >> /etc/networkd-dispatcher/routable.d/10-eth0-post-up
|
|
- echo 'iptables -t nat -A POSTROUTING -s ${network_ip_range} -o eth0 -j MASQUERADE' >> /etc/networkd-dispatcher/routable.d/10-eth0-post-up
|
|
- chmod +x /etc/networkd-dispatcher/routable.d/10-eth0-post-up
|
|
- /etc/networkd-dispatcher/routable.d/10-eth0-post-up
|
|
# install k3s but do not start yet
|
|
- curl -sfL https://get.k3s.io | tee install-k3s | INSTALL_K3S_SKIP_ENABLE=true sh -s -
|
|
%{ if first_ip != "" ~}
|
|
- until curl -k https://${first_ip}:6443; do sleep 5; done
|
|
%{ endif ~}
|
|
# Enable and start k3s-server
|
|
%{ if first_ip == "" ~}
|
|
- cat install-k3s | K3S_TOKEN=${k3s_token} sh -s - server --cluster-init
|
|
%{~ else ~}
|
|
- cat install-k3s | INSTALL_K3S_SKIP_DOWNLOAD=true K3S_TOKEN=${k3s_token} sh -s - server --server https://${first_ip}:6443
|
|
%{~ endif }
|
|
- chown cluster:cluster /etc/rancher/k3s/k3s.yaml
|
|
- chown cluster:cluster /var/lib/rancher/k3s/server
|
|
- chown cluster:cluster /var/lib/rancher/k3s/server/node-token
|