4 source $(dirname $PWD)/../lib/common.sh
5 source $(dirname $PWD)/../lib/logging.sh
7 if [[ $EUID -ne 0 ]]; then
8 echo "This script must be run as root"
13 #apt-get autoremove -y
14 rm -rf /etc/apt/sources.list.d/*
17 function clean_essential_packages {
19 for package in crudini curl dnsmasq figlet golang nmap patch psmisc \
20 python-pip python-requests python-setuptools vim wget; do
21 apt-get remove $package -y
27 function check_prerequisite {
29 apt-get install python-pip -y
32 if !(which curl); then
33 apt-get install curl -y
36 if !(which add-apt-repository); then
37 apt-get install software-properties-common -y
41 function clean_ironic_packages {
42 for package in python-ironicclient \
43 python-ironic-inspector-client \
44 python-openstackclient genisoimage; do
45 apt-get remove $package -y
49 function clean_docker_packages {
50 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
52 "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
56 docker rmi -f $(docker image ls -a -q)
57 apt-get remove docker-ce -y
58 apt-get remove -y docker \
64 apt-get purge docker-* -y --allow-change-held-packages
68 function clean_podman_packages {
70 add-apt-repository -y ppa:projectatomic/ppa
71 apt-get remove podman -y
74 function clean_kubernetes_packages {
75 #Just to make sure kubernetes packages are removed during the download
76 curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
77 bash -c 'cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
78 deb https://apt.kubernetes.io/ kubernetes-xenial main
81 apt-get remove kubelet kubeadm kubectl -y
85 apt-get remove -y openvswitch-switch openvswitch-common ovn-central \
87 rm -rf /var/run/openvswitch
88 rm -rf /var/lib/openvswitch
89 rm -rf /var/log/openvswitch
90 rm -rf /var/lib/libvirt
92 rm -rf /var/lib/virtlet
93 rm -rf /var/run/libvirt
95 rm -rf virtlet-diag.sock
97 systemctl stop dockershim
98 systemctl stop criproxy
99 systemctl disable kubelet
100 systemctl disable dockershim
101 systemctl disable criproxy
102 ip link delete virbr0-nic
103 ip link delete virbr0
106 function clean_apt_cache {
108 pushd /var/cache/apt/archives
110 if [ $(ls -1q . | wc -l ) -ge 3 ]; then
111 $(rm !("lock"|"partial"))
117 function mv_apt_cache {
119 pushd /var/cache/apt/archives
121 if [ $(ls -1q . | wc -l ) -gt 2 ]; then
122 $(mv !("lock"|"partial") $LOCAL_APT_REPO)
137 if [ $(ls -1q . | wc -l ) -ne 0 ]; then
143 if [ "$1" == "--only-packages" ]; then
145 clean_docker_packages || true
146 #clean_ironic_packages
151 if [ "$1" == "--bm-cleanall" ]; then
159 check_dir $LOCAL_APT_REPO
160 clean_dir $LOCAL_APT_REPO
161 check_dir $PIP_CACHE_DIR
162 clean_dir $PIP_CACHE_DIR
165 check_dir $CONTAINER_IMAGES_DIR
166 clean_dir $CONTAINER_IMAGES_DIR
167 clean_kubernetes_packages
168 clean_podman_packages
169 clean_docker_packages
170 clean_ironic_packages
171 clean_essential_packages
172 rm -rf $LOCAL_APT_REPO
173 rm -rf $PIP_CACHE_DIR
175 rm -rf $CONTAINER_IMAGES_DIR