-
Notifications
You must be signed in to change notification settings - Fork 0
/
del-pods.sh
149 lines (143 loc) · 5.19 KB
/
del-pods.sh
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#!/bin/bash
# Thanks to seakintruth for this! <3
# https://askubuntu.com/a/257766/862557
show_menu(){
normal=`echo "\033[m"`
menu=`echo "\033[36m"` #Blue
number=`echo "\033[33m"` #yellow
bgred=`echo "\033[41m"`
fgred=`echo "\033[31m"`
printf "\n${menu}*********************************************${normal}\n"
printf "\n${menu}DELETE ALL PODS FROM ALL NAMESPACES WITH POD STATUS:${normal}\n"
printf "\n${menu}*********************************************${normal}\n"
printf "${menu}**${number} 0)${menu} CrashLoopBackOff ${normal}\n"
printf "${menu}**${number} 1)${menu} Completed ${normal}\n"
printf "${menu}**${number} 2)${menu} Error ${normal}\n"
printf "${menu}**${number} 3)${menu} ErrImagePull ${normal}\n"
printf "${menu}**${number} 4)${menu} ImagePullBackOff ${normal}\n"
printf "${menu}**${number} 5)${menu} NodeAffinity ${normal}\n"
printf "${menu}**${number} 6)${menu} NodeShutdown ${normal}\n"
printf "${menu}**${number} 7)${menu} Pending ${normal}\n"
printf "${menu}**${number} 8)${menu} Terminated ${normal}\n"
printf "${menu}**${number} 9)${menu} ContainerStatusUnknown ${normal}\n"
printf "${menu}*********************************************${normal}\n"
printf "${menu}**${number} 10)${menu} DELETE ALL ReplicaSets FROM ALL NAMESPACES WITH DESIRED PODs=0 ${normal}\n"
printf "Please enter a menu option and enter or ${fgred}x to exit. ${normal}"
read opt
}
option_picked(){
msgcolor=`echo "\033[01;31m"` # bold red
normal=`echo "\033[00;00m"` # normal white
message=${@:-"${normal}Error: No message passed"}
printf "${msgcolor}${message}${normal}\n"
}
del_pod(){
echo "$current_date" >> deleted.log
for ns in $NAMESPACES
do
kubectl -n $ns get po | grep $POD_STATUS | awk '{print $1}' | xargs kubectl -n $ns delete pod >> deleted.log 2>&1
done
}
del_rs(){
echo "$current_date" >> deleted.log
for ns in $NAMESPACES
do
kubectl -n $ns get rs | grep 0 | awk '{print $1}' | xargs kubectl -n $ns delete rs >> deleted.log 2>&1
done
}
clear
show_menu
while [ $opt != '' ]
do
if [ $opt = '' ]; then
exit;
else
current_date=$(date +"%Y-%m-%d %H:%M:%S")
case $opt in
0) clear;
option_picked "About to delete CrashLoopBackOff pods from all ns";
NAMESPACES=$(kubectl get namespace | awk '{print $1}' | tail -n +2)
POD_STATUS="CrashLoopBackOff"
del_pod;
show_menu;
;;
1) clear;
option_picked "About to delete Completed pods from all ns";
NAMESPACES=$(kubectl get namespace | awk '{print $1}' | tail -n +2)
POD_STATUS="Completed"
del_pod;
show_menu;
;;
2) clear;
option_picked "About to delete Error pods from all ns";
NAMESPACES=$(kubectl get namespace | awk '{print $1}' | tail -n +2)
POD_STATUS="Error"
del_pod;
show_menu;
;;
3) clear;
option_picked "About to delete ErrImagePull pods from all ns";
NAMESPACES=$(kubectl get namespace | awk '{print $1}' | tail -n +2)
POD_STATUS="ErrImagePull"
del_pod;
show_menu;
;;
4) clear;
option_picked "About to delete ImagePullBackOff pods from all ns";
NAMESPACES=$(kubectl get namespace | awk '{print $1}' | tail -n +2)
POD_STATUS="ImagePullBackOff"
del_pod;
show_menu;
;;
5) clear;
option_picked "About to delete NodeAffinity pods from all ns";
NAMESPACES=$(kubectl get namespace | awk '{print $1}' | tail -n +2)
POD_STATUS="NodeAffinity"
del_pod;
show_menu;
;;
6) clear;
option_picked "About to delete NodeShutdown pods from all ns";
NAMESPACES=$(kubectl get namespace | awk '{print $1}' | tail -n +2)
POD_STATUS="NodeShutdown"
del_pod;
show_menu;
;;
7) clear;
option_picked "About to delete Pending pods from all ns";
NAMESPACES=$(kubectl get namespace | awk '{print $1}' | tail -n +2)
POD_STATUS="Pending"
del_pod;
show_menu;
;;
8) clear;
option_picked "About to delete Terminated pods from all ns";
NAMESPACES=$(kubectl get namespace | awk '{print $1}' | tail -n +2)
POD_STATUS="Terminated"
del_pod;
show_menu;
;;
9) clear;
option_picked "About to delete ContainerStatusUnknown pods from all ns";
NAMESPACES=$(kubectl get namespace | awk '{print $1}' | tail -n +2)
POD_STATUS="ContainerStatusUnknown"
del_pod;
show_menu;
;;
10) clear;
option_picked "About to delete all ReplicaSets from all ns with DESIRED PODS=0";
NAMESPACES=$(kubectl get namespace | awk '{print $1}' | tail -n +2)
del_rs;
show_menu;
;;
x)exit;
;;
\n)exit;
;;
*)clear;
option_picked "Pick an option from the menu";
show_menu;
;;
esac
fi
done