59 lines
1.8 KiB
Smarty
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 ]
|