#cloud-config # apt_update: true apt_upgrade: true package_update: true package_upgrade: true package_reboot_if_required: false runcmd: - | N="$(hostname | sed -e 's/[^0-9]*//')" ; IF="$(ip -o -4 route show to default | awk '{print $5}')" ; IP="$((N+10))" ; printf "network:\n version: 2\n renderer: networkd\n ethernets:\n $IF:\n addresses:\n - 10.0.0.$IP/24" | tee /etc/netplan/90-static.yaml - netplan apply - snap install microk8s --classic - ufw allow in on cni0 && sudo ufw allow out on cni0 - ufw default allow routed - microk8s start - microk8s status -w - | N="$(hostname | sed -e 's/[^0-9]*//')" ; OUT="$(ip -o -4 route show to default | awk '{print $9}')" ; if test "$N" = "0" then microk8s enable dns storage ingress ; for I in $(seq 1 9) ; do microk8s add-node -t "${I}123456789abcdef0123456789abcdef" ; done ; microk8s config | sed -e "s|server: https://10.0.0.10:16443|server: https://$OUT:16443|" >/etc/kubeconfig else while ! microk8s join "10.0.0.10:25000/${N}123456789abcdef0123456789abcdef" do echo retrying to join... ; sleep 10 done fi