cdcf8bc47b988b537df84c04c351c08f31702d38
[iec.git] / src / foundation / scripts / k8s_master.sh
1 #!/bin/bash -ex
2 # shellcheck source=/dev/null
3
4 # For host setup as Kubernetes master
5 MGMT_IP=$1
6 POD_NETWORK_CIDR=${2:-192.168.0.0/16}
7 SERVICE_CIDR=${3:-172.16.1.0/24}
8
9 if [ -z "${MGMT_IP}" ]; then
10   echo "Please specify a management IP!"
11   exit 1
12 fi
13
14 if ! kubectl get nodes; then
15   sudo kubeadm config images pull
16   sudo kubeadm init \
17     --pod-network-cidr="${POD_NETWORK_CIDR}" \
18     --apiserver-advertise-address="${MGMT_IP}" \
19     --service-cidr="${SERVICE_CIDR}"
20
21   if [ "$(id -u)" = 0 ]; then
22     echo "export KUBECONFIG=/etc/kubernetes/admin.conf" | \
23       tee -a "${HOME}/.bashrc"
24     # shellcheck disable=SC1090
25     source "${HOME}/.bashrc"
26   fi
27
28   mkdir -p "${HOME}/.kube"
29   # shellcheck disable=SC2216
30   yes | sudo cp -rf /etc/kubernetes/admin.conf "${HOME}/.kube/config"
31   sudo chown "$(id -u)":"$(id -g)" "${HOME}/.kube/config"
32
33   sleep 5
34   sudo swapon -a
35 fi