-
Notifications
You must be signed in to change notification settings - Fork 0
/
teardown
76 lines (68 loc) · 2.02 KB
/
teardown
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/usr/bin/env bash
# shellcheck disable=SC1091,SC1090
set -euo pipefail
# colour variables
reset=$(tput sgr0)
red=$(tput bold && tput setaf 1)
green=$(tput bold && tput setaf 2)
yellow=$(tput bold && tput setaf 3)
# useful variables
date_time=$(date +'%d-%m-%Y-T%H:%M:%S%z')
working_directory=$(pwd)
sudo_home=$(getent passwd "$SUDO_USER" | cut --delimiter=: --fields=6)
function error() {
echo "[$date_time]: $*" >&2
}
function main() {
if [[ -e /usr/bin/rpm && -e /usr/bin/dnf && -e /usr/bin/yum && -e /etc/centos-release ]]; then
choose_teardown
elif [[ -e /usr/bin/apt && -e /usr/bin/dpkg && -e /etc/os-release && -e /etc/debian_version && ! -e /usr/bin/snap ]]; then
choose_teardown
else
error "$red Please ensure that you are using 'CentOS' or 'Debian' as your host operating system first... $reset"
exit 1
fi
}
function choose_teardown() {
PS3="$yellow Please select a option [Number]: $reset"
options=("Teardown Kubeadm" "Teardown Everything" "Quit")
select delete in "${options[@]}"; do
case $delete in
"Teardown Kubeadm")
teardown_kubeadm_only
break
;;
"Teardown Everything")
teardown_all
break
;;
"Quit")
break
;;
*)
echo "$red Invalid option chosen, please try again... $reset"
;;
esac
done
}
function teardown_kubeadm_only() {
delete_namespaces
source "$working_directory"/reset/reset_kubeadm
}
function teardown_all() {
delete_namespaces
source "$working_directory"/reset/reset_kubeadm
source "$working_directory"/kubernetes/remove_kubernetes
source "$working_directory"/container-runtimes/docker/remove_docker
source "$working_directory"/container-runtimes/containerd/remove_containerd
source "$working_directory"/helm/remove_helm
}
function delete_namespaces() {
echo "$yellow Deleting all of the namespace(s) except for 'kube-system' first... $reset"
kubectl delete all \
--kubeconfig="$sudo_home"/.kube/config \
--all \
--all-namespaces
echo "$green Namespace(s) deleted... $reset"
}
main "$@"