Automation of a local dev environment to learn, self-document, save time and avoid to reinvent the wheel
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
debian-unattended/custom/install_kubectl.sh

59 lines
2.0 KiB

#!/bin/sh
if [ "$(id -u)" -ne 0 ]; then
echo "This script should be run as root. Aborting..." > /dev/stderr
exit 1
fi
#
# Following this guide: https://kubernetes.io/docs/tasks/tools/install-kubectl/
#
echo "Updating apt package index..."
apt-get update > /dev/null
echo "Installing prerequisites..."
apt-get -q -y -o Dpkg::Use-Pty=0 install apt-transport-https gnupg2 curl
echo "Adding Kubernetes' repo key..."
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
echo "Adding Kubernetes repo..."
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | tee -a /etc/apt/sources.list.d/kubernetes.list
echo "Updating apt package index again..."
apt-get update > /dev/null
echo "Installing 'kubectl'..."
apt-get -q -y -o Dpkg::Use-Pty=0 install kubectl
# TODO: the command `kubectl cluster-info` gives an error and the script
# provided from the docs gives an error. In the docs they are make
# some sort of assumption that I cannot still figure out.
# Ffs this is an entry level doc and they already start to omit not
# obvious stuff... sorry for not owning a magic crystal ball. >:(
# THIS, is a quality doc:
# https://www.valent-blog.eu/2019/01/01/installare-kubernetes-in-debian-9/
# The lines below comes from this doc.
echo "Installing 'kubelet' and 'kubeadm'..."
apt-get -q -y -o Dpkg::Use-Pty=0 install kubelet kubeadm
echo "Marking in hold the packages 'kubectl', 'kubelet' and 'kubeadm' in order to prevent them to update in the future..."
apt-mark hold kubelet kubeadm kubectl
echo "Reloading systemd and restarting 'kubelet' service"
systemctl daemon-reload
systemctl restart kubelet
# I guess these are the base images of kubernetes (?)
echo "Pulling some base images.."
kubeadm config images pull
echo "Initializing kuvernetes.."
kubeadm init
echo "Adding kubernetes config to this user home folder (useful for non-root users)..."
mkdir -p "$HOME/.kube"
cp -i /etc/kubernetes/admin.conf "$HOME/.kube/config"
chown "$(id -u)":"$(id -g)" "$HOME/.kube/config"