2 ######################################################################
4 # The script is to undo the changes on ELIOT Manager and ELIOT nodes #
5 # done by setup.sh file. #
6 # It uninstalls docker, kubernetes. #
7 # It releases the port used. #
8 # It deletes the files created for kubernetes in node machine #
9 # Script is tested in Ubuntu 16.04 version. #
10 ######################################################################
13 OSPLATFORM=$(awk -F= '/^NAME/{print $2}' /etc/os-release)
17 echo "This script will remove docker and its related files from the master and node machines"
18 echo "This script will remove kubeadm kubectl kubelet kubernetes from the master and node machines"
19 echo "The changes will be first executed on manager machine and then node machines."
20 echo "It will pick the node machine details from nodelist file"
21 echo "This file supports Linux- Ubuntu version only"
24 # Rollbacking the changes on ELIOT Manager Node
27 sudo apt-get install iptables
28 sudo iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
29 sudo apt-get install ipvsadm
30 sudo fuser -k -n tcp 10250
31 sudo yes y | apt-get purge -y docker-engine
32 sudo yes y | apt-get purge -y docker
33 sudo yes y | apt-get purge -y docker.io
34 sudo yes y | apt-get purge -y docker-ce
35 sudo yes y | apt-get purge -y docker-ce-cli
36 sudo yes y | groupdel docker
37 sudo yes y | kubeadm reset
38 sudo yes y | apt-get purge kubeadm
39 sudo yes y | apt-get purge kubectl
40 sudo yes y | apt-get purge kubelet
41 sudo yes y | apt-get purge kube*
42 sudo yes y | apt-get purge kubernetes-cni
44 sudo yes y | apt-get autoremove
45 sudo yes y | apt-get autoclean
51 #Rollbacking the changes on ELIOT Worker Node
54 INSTALL_IPVSADM="sudo apt-get install ipvsadm"
55 RESET_PORT="fuser -k -n tcp 10250"
56 #REMOVE_KUBE_FILES="cd /etc/kubernetes && sudo rm -rf !('manifests') "
57 REMOVE_KUBE_FILES="cd /etc/kubernetes && sudo rm -rf bootstrap-kubelet.conf kubelet.conf pki"
58 REMOVE_DOCKER1="sudo yes y | apt-get purge -y docker-engine"
59 REMOVE_DOCKER2="sudo yes y | apt-get purge -y docker"
60 REMOVE_DOCKER3="sudo yes y | apt-get purge -y docker.io"
61 REMOVE_DOCKER4="sudo yes y | apt-get purge -y docker-ce"
62 REMOVE_DOCKER5="sudo yes y | apt-get purge -y docker-ce-cli"
63 REMOVE_DOCKER6="sudo yes y | groupdel docker"
64 RESET_KUBEADM="sudo yes y | kubeadm reset"
65 REMOVE_KUBE_FILES1="sudo yes y | apt-get purge kubeadm"
66 REMOVE_KUBE_FILES2="sudo yes y | apt-get purge kubectl "
67 REMOVE_KUBE_FILES3="sudo yes y | apt-get purge kubelet "
68 REMOVE_KUBE_FILES4="sudo yes y | apt-get purge kube* "
69 REMOVE_KUBE_FILES5="sudo yes y | apt-get purge kubernetes-cni"
70 REMOVE_KUBE_FILES6="sudo rm -rf ~/.kube"
71 AUTO_REMOVE="sudo yes y | apt-get autoremove"
72 AUTO_CLEAN="sudo yes y | apt-get autoclean"
75 #Read all the Worker Node details from nodelist file.
79 nodeusr=$(echo ${nodeinfo} | cut -d"|" -f1)
80 nodeip=$(echo ${nodeinfo} | cut -d"|" -f2)
81 nodepaswd=$(echo ${nodeinfo} | cut -d"|" -f3)
82 sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${INSTALL_IPVSADM} < /dev/null
83 sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${RESET_PORT} < /dev/null
84 sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_KUBE_FILES} < /dev/null
85 sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_DOCKER1} < /dev/null
86 sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_DOCKER2} < /dev/null
87 sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_DOCKER3} < /dev/null
88 sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_DOCKER4} < /dev/null
89 sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_DOCKER5} < /dev/null
90 sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_DOCKER6} < /dev/null
91 sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${RESET_KUBEADM} < /dev/null
92 sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_KUBE_FILES1} < /dev/null
93 sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_KUBE_FILES2} < /dev/null
94 sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_KUBE_FILES3} < /dev/null
95 sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_KUBE_FILES4} < /dev/null
96 sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_KUBE_FILES5} < /dev/null
97 sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_KUBE_FILES6} < /dev/null
98 sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${AUTO_REMOVE} < /dev/null
99 sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${AUTO_CLEAN} < /dev/null
100 done < nodelist > /dev/null 2>&1
104 verify_reset_status()
109 if [ $1 == "--help" ] || [ $1 == "-h" ];
115 if [[ $OSPLATFORM = *Ubuntu* ]]; then
119 echo "Script only supports Ubuntu Version."