infra/terraform/templates/tailscale-kube-control-plane.yaml.tpl
2022-12-17 23:48:47 +00:00

59 lines
1.8 KiB
Smarty

#cloud-config
# Sets up everything required to kubeadm init a control plane.
# kubeadm init --apiserver-advertise-address 10.0.1.1 --pod-network-cidr 10.244.0.0/16
---
apt:
sources:
tailscale.list:
source: deb https://pkgs.tailscale.com/stable/ubuntu jammy main
keyid: 2596A99EAAB33821893C0A79458CA832957F5868
kubernetes.list:
source: deb https://apt.kubernetes.io/ kubernetes-xenial main
keyid: A362B822F6DEDC652817EA46B53DC80D13EDEF05
docker.list:
source: deb https://download.docker.com/linux/ubuntu jammy stable
keyid: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
write_files:
- path: /etc/sysctl.d/k8s.conf
content: |
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
- path: /etc/modules-load.d/k8s.conf
content: |
overlay
br_netfilter
- path: /etc/containerd/config.toml
content: |
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
disabled_plugins = []
- path: /root/k8s.yaml
content: |
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd
- path: /etc/kubernetes/resolv.conf
content: |
nameserver 1.1.1.1
nameserver 1.0.0.1
nameserver 2606:4700:4700::1111
- path: /etc/default/kubelet
content: |
KUBELET_EXTRA_ARGS="--resolv-conf=/etc/kubernetes/resolv.conf"
packages:
- tailscale
- apt-transport-https
- ca-certificates
- curl
- kubelet
- kubeadm
- kubectl
- containerd.io
runcmd:
- [ modprobe, overlay ]
- [ modprobe, br_netfilter ]
- [ sysctl, --system ]
- [ tailscale, up, -auth-key, ${tailscale_key}, -ssh ]
- [ apt-mark, hold, kubelet, kubeadm, kubectl ]