#!/bin/bash #author: Thomas Roehm #version: 1.3 echo "You´re running version:" echo "" su - kubernetes -c "kubectl version" echo "" read -s -n 1 -p \"'Press any key to continue . . .'\" apt-get update apt-cache policy kubeadm | head -n 30 echo "" read -p "Please enter k8s version you want to patch to (e. g. \"1.16.2-00\"): " VERSION echo "Version: \"$VERSION\" will be updated!" echo "" apt-mark unhold kubernetes-cni kubeadm kubelet kubectl docker-ce containerd.io apt-get update && apt-get install -y kubeadm=${VERSION} echo "" #echo "drain node $(hostname -s)" #su - kubernetes -c "kubectl drain $(hostname -s) --ignore-daemonsets" echo "" APPLYVERSION="v$(echo ${VERSION} | cut -d "-" -f1)" echo "" echo "version $APPLYVERSION will be applied" echo "" read -s -n 1 -p \"'Press any key to continue . . .'\" kubeadm upgrade plan echo "" read -s -n 1 -p \"'Press any key to continue . . .'\" kubeadm upgrade apply ${APPLYVERSION} #apt-cache policy docker-ce #echo "" #read -p "Please enter docker-ce-version you want to patch to (e. g. \"5:18.09.9~3-0~ubuntu-xenial"): " DVERSION #echo "Version: \"$iDVERSION\" will be updated!" #echo "" #apt-get install -y docker-ce echo "" #echo "uncordon node $(hostname -s)" echo "" #su - kubernetes -c "kubectl uncordon $(hostname -s)" echo "patching kublet,kubectl" echo "" read -p "Do you want to proceed? Please enter y or n: " PROCEED echo "" echo "You´ve entered: \"${PROCEED}\"" echo "" if [ ${PROCEED} = "y" ] then apt-get install -y kubelet=${VERSION} kubectl=${VERSION} apt-mark hold kubeadm kubernetes-cni kubelet kubectl docker-ce containerd.io systemctl restart docker.service kubelet.service systemctl status docker.service kubelet.service | cat else exit 1 fi