Add scripts to install opc-ua
[eliot.git] / scripts / kubernetes_cleanup.sh
1
2 ######################################################################
3 #                                                                    #
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 ######################################################################
11
12 # constants
13 OSPLATFORM=$(awk -F= '/^NAME/{print $2}' /etc/os-release)
14
15 show_help()
16 {
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"
22 }
23
24 # Rollbacking the changes on ELIOT Manager Node
25 rollback_k8smaster()
26 {
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
43 sudo rm -rf ~/.kube
44 sudo yes y | apt-get autoremove
45 sudo yes y | apt-get autoclean
46
47 rollback_k8sworkers
48
49 }
50
51 #Rollbacking the changes on ELIOT Worker Node
52 rollback_k8sworkers()
53 {
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"
73
74
75 #Read all the Worker Node details from nodelist file.
76  while read line
77  do
78      nodeinfo="${line}"
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
101
102 }
103
104 verify_reset_status()
105 {
106 echo "Success!!"
107 }
108
109 if [ $1 == "--help" ] || [ $1 == "-h" ];
110 then
111   show_help
112   exit 0
113 fi
114
115 if [[ $OSPLATFORM = *Ubuntu* ]]; then
116    rollback_k8smaster
117    verify_reset_status
118 else
119    echo "Script only supports Ubuntu Version."
120 fi