X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=blueprints%2FuCPE%2Fscripts%2Fkubernetes_cleanup.sh;fp=blueprints%2FuCPE%2Fscripts%2Fkubernetes_cleanup.sh;h=89d12e7d98b51758592cf62a0c8a48ba83429234;hb=692eda26d4bb9aea2760f0c3d48d7a91c392afd9;hp=0000000000000000000000000000000000000000;hpb=c19ae19ceb20a1c47d53e5d2a482f6f4fd5cfa38;p=eliot.git diff --git a/blueprints/uCPE/scripts/kubernetes_cleanup.sh b/blueprints/uCPE/scripts/kubernetes_cleanup.sh new file mode 100644 index 0000000..89d12e7 --- /dev/null +++ b/blueprints/uCPE/scripts/kubernetes_cleanup.sh @@ -0,0 +1,153 @@ + +###################################################################### +# # +# The script is to undo the changes on ELIOT Manager and ELIOT nodes # +# done by setup.sh file. # +# It uninstalls docker, kubernetes. # +# It releases the port used. # +# It deletes the files created for kubernetes in node machine # +# Script is tested in Ubuntu 16.04 version. # +###################################################################### + +# constants +OSPLATFORM=$(awk -F= '/^NAME/{print $2}' /etc/os-release) + +show_help() +{ + echo "This script will remove docker and its related files from the master and node machines" + echo "This script will remove kubeadm kubectl kubelet kubernetes from the master and node machines" + echo "The changes will be first executed on manager machine and then node machines." + echo "It will pick the node machine details from nodelist file" + echo "This file supports Linux- Ubuntu version only" +} + +# Rollbacking the changes on ELIOT Manager Node +rollback_k8smaster() +{ +if [ "$(id -u)" = 0 ]; then + sudo apt-get install iptables + sudo iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X + sudo apt-get install ipvsadm + sudo fuser -k -n tcp 10250 + sudo yes y | apt-get purge -y docker-engine + sudo yes y | apt-get purge -y docker + sudo yes y | apt-get purge -y docker.io + sudo yes y | apt-get purge -y docker-ce + sudo yes y | apt-get purge -y docker-ce-cli + sudo yes y | groupdel docker + sudo yes y | kubeadm reset + sudo yes y | apt-get purge kubeadm + sudo yes y | apt-get purge kubectl + sudo yes y | apt-get purge kubelet + sudo yes y | apt-get purge kube* + sudo yes y | apt-get purge kubernetes-cni + sudo rm -rf ~/.kube + sudo yes y | apt-get autoremove + sudo yes y | apt-get autoclean +else + sudo fuser -k -n tcp 10250 + sudo yes y | sudo apt-get purge -y docker-engine + sudo yes y | sudo apt-get purge -y docker + sudo yes y | sudo apt-get purge -y docker.io + sudo yes y | sudo apt-get purge -y docker-ce + sudo yes y | sudo apt-get purge -y docker-ce-cli + sudo yes y | sudo kubeadm reset + sudo yes y | sudo apt-get purge kubeadm + sudo yes y | sudo apt-get purge kubectl + sudo yes y | sudo apt-get purge kubelet + sudo yes y | sudo apt-get purge kube* + sudo yes y | sudo apt-get purge kubernetes-cni + sudo rm -rf ~/.kube +fi + +rollback_k8sworkers + +} + +#Rollbacking the changes on ELIOT Worker Node +rollback_k8sworkers() +{ +if [ " $(id -u)" = 0]; then + INSTALL_IPVSADM="sudo apt-get install ipvsadm" + RESET_PORT="fuser -k -n tcp 10250" + #REMOVE_KUBE_FILES="cd /etc/kubernetes && sudo rm -rf !('manifests') " + REMOVE_KUBE_FILES="cd /etc/kubernetes && sudo rm -rf bootstrap-kubelet.conf kubelet.conf pki" + REMOVE_DOCKER1="sudo yes y | apt-get purge -y docker-engine" + REMOVE_DOCKER2="sudo yes y | apt-get purge -y docker" + REMOVE_DOCKER3="sudo yes y | apt-get purge -y docker.io" + REMOVE_DOCKER4="sudo yes y | apt-get purge -y docker-ce" + REMOVE_DOCKER5="sudo yes y | apt-get purge -y docker-ce-cli" + REMOVE_DOCKER6="sudo yes y | groupdel docker" + RESET_KUBEADM="sudo yes y | kubeadm reset" + REMOVE_KUBE_FILES1="sudo yes y | apt-get purge kubeadm" + REMOVE_KUBE_FILES2="sudo yes y | apt-get purge kubectl " + REMOVE_KUBE_FILES3="sudo yes y | apt-get purge kubelet " + REMOVE_KUBE_FILES4="sudo yes y | apt-get purge kube* " + REMOVE_KUBE_FILES5="sudo yes y | apt-get purge kubernetes-cni" + REMOVE_KUBE_FILES6="sudo rm -rf ~/.kube" + AUTO_REMOVE="sudo yes y | apt-get autoremove" + AUTO_CLEAN="sudo yes y | apt-get autoclean" +else + RESET_PORT="fuser -k -n tcp 10250" + REMOVE_KUBE_FILES="cd /etc/kubernetes && sudo rm -rf bootstrap-kubelet.conf kubelet.conf pki" + REMOVE_DOCKER1="sudo yes y | sudo apt-get purge -y docker-engine" + REMOVE_DOCKER2="sudo yes y | sudo apt-get purge -y docker" + REMOVE_DOCKER3="sudo yes y | sudo apt-get purge -y docker.io" + REMOVE_DOCKER4="sudo yes y | sudo apt-get purge -y docker-ce" + REMOVE_DOCKER5="sudo yes y | sudo apt-get purge -y docker-ce-cli" + REMOVE_DOCKER6="sudo yes y | sudo groupdel docker" + RESET_KUBEADM="sudo yes y | sudo kubeadm reset" + REMOVE_KUBE_FILES1="sudo yes y | sudo apt-get purge kubeadm" + REMOVE_KUBE_FILES2="sudo yes y | sudo apt-get purge kubectl " + REMOVE_KUBE_FILES3="sudo yes y | sudo apt-get purge kubelet " + REMOVE_KUBE_FILES4="sudo yes y | sudo apt-get purge kube* " + REMOVE_KUBE_FILES5="sudo yes y | sudo apt-get purge kubernetes-cni" + REMOVE_KUBE_FILES6="sudo rm -rf ~/.kube" +fi + +#Read all the Worker Node details from nodelist file. + while read line + do + nodeinfo="${line}" + nodeusr=$(echo ${nodeinfo} | cut -d"|" -f1) + nodeip=$(echo ${nodeinfo} | cut -d"|" -f2) + nodepaswd=$(echo ${nodeinfo} | cut -d"|" -f3) + sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${INSTALL_IPVSADM} < /dev/null + sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${RESET_PORT} < /dev/null + sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_KUBE_FILES} < /dev/null + sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_DOCKER1} < /dev/null + sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_DOCKER2} < /dev/null + sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_DOCKER3} < /dev/null + sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_DOCKER4} < /dev/null + sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_DOCKER5} < /dev/null + sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_DOCKER6} < /dev/null + sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${RESET_KUBEADM} < /dev/null + sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_KUBE_FILES1} < /dev/null + sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_KUBE_FILES2} < /dev/null + sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_KUBE_FILES3} < /dev/null + sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_KUBE_FILES4} < /dev/null + sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_KUBE_FILES5} < /dev/null + sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${REMOVE_KUBE_FILES6} < /dev/null + sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${AUTO_REMOVE} < /dev/null + sshpass -p ${nodepaswd} ssh ${nodeusr}@${nodeip} ${AUTO_CLEAN} < /dev/null + done < nodelist > /dev/null 2>&1 + +} + +verify_reset_status() +{ +echo "Success!!" +} + +if [ $1 == "--help" ] || [ $1 == "-h" ]; +then + show_help + exit 0 +fi + +if [[ $OSPLATFORM = *Ubuntu* ]]; then + rollback_k8smaster + verify_reset_status +else + echo "Script only supports Ubuntu Version." +fi