!/bin/bash

userid=$(id -u)
if [ $userid -ne 0 ]; then
        echo "Aborting. Script needs to run as user root !!!"
        exit 1
fi

echo overlay > /etc/modules-load.d/containerd.conf
echo br_netfilter > /etc/modules-load.d/containerd.conf

modprobe -v br_netfilter
modprobe -v overlay

echo "net.bridge.bridge-nf-call-iptables = 1" > /etc/sysctl.d/99-kubernetes.conf
echo "net.bridge.bridge-nf-call-ip6tables = 1" >> /etc/sysctl.d/99-kubernetes.conf
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.d/99-kubernetes.conf

sysctl --system

apt update
apt install -y containerd

mkdir /etc/containerd
containerd config default > /etc/containerd/config.toml
sed -i  's@SystemdCgroup = false@SystemdCgroup = true@' /etc/containerd/config.toml
systemctl restart containerd

apt update
apt install -y apt-transport-https ca-certificates curl gpg
mkdir -p -m 755 /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /" > /etc/apt/sources.list.d/kubernetes.list

apt update
apt install -y kubelet kubeadm kubectl

apt-mark hold kubelet kubeadm kubectl

crictl completion bash > /etc/bash_completion.d/crictl
crictl config --set runtime-endpoint=unix:///run/containerd/containerd.sock \
   --set image-endpoint=unix:///run/containerd/containerd.sock
   

