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 python3-pip python3-requests python3-setuptools vim wget; do
21 apt-get remove $package -y
23 update-alternatives --remove python /usr/bin/python3
24 update-alternatives --remove pip /usr/bin/pip3
29 function check_prerequisite {
31 apt-get install python3-pip -y
33 update-alternatives --install /usr/bin/python python /usr/bin/python3 1
34 update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
36 if !(which curl); then
37 apt-get install curl -y
40 if !(which add-apt-repository); then
41 apt-get install software-properties-common -y
45 function clean_ironic_packages {
46 for package in python3-ironicclient \
47 python3-ironic-inspector-client \
48 python3-openstackclient genisoimage; do
49 apt-get remove $package -y
53 function clean_docker_packages {
54 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
56 "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
60 docker rmi -f $(docker image ls -a -q)
61 apt-get remove docker-ce -y
62 apt-get remove -y docker \
68 apt-get purge docker-* -y --allow-change-held-packages
72 function clean_podman_packages {
74 add-apt-repository -y ppa:projectatomic/ppa
75 apt-get remove podman -y
78 function clean_kubernetes_packages {
79 #Just to make sure kubernetes packages are removed during the download
80 curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
81 bash -c 'cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
82 deb https://apt.kubernetes.io/ kubernetes-xenial main
85 apt-get remove kubelet kubeadm kubectl -y
89 apt-get remove -y openvswitch-switch openvswitch-common ovn-central \
91 rm -rf /var/run/openvswitch
92 rm -rf /var/lib/openvswitch
93 rm -rf /var/log/openvswitch
94 rm -rf /var/lib/libvirt
96 rm -rf /var/lib/virtlet
97 rm -rf /var/run/libvirt
99 rm -rf virtlet-diag.sock
101 systemctl stop dockershim
102 systemctl stop criproxy
103 systemctl disable kubelet
104 systemctl disable dockershim
105 systemctl disable criproxy
106 if ip link show | grep virbr0-nic > /dev/null; then ip link delete virbr0-nic; fi
107 if ip link show | grep virbr0 > /dev/null; then ip link delete virbr0; fi
110 function clean_apt_cache {
112 pushd /var/cache/apt/archives
114 if [ $(ls -1q . | wc -l ) -ge 3 ]; then
115 $(rm !("lock"|"partial"))
121 function mv_apt_cache {
123 pushd /var/cache/apt/archives
125 if [ $(ls -1q . | wc -l ) -gt 2 ]; then
126 $(mv !("lock"|"partial") $LOCAL_APT_REPO)
141 if [ $(ls -1q . | wc -l ) -ne 0 ]; then
147 if [ "$1" == "--only-packages" ]; then
149 clean_docker_packages || true
150 #clean_ironic_packages
155 if [ "$1" == "--bm-cleanall" ]; then
163 check_dir $LOCAL_APT_REPO
164 clean_dir $LOCAL_APT_REPO
165 check_dir $PIP_CACHE_DIR
166 clean_dir $PIP_CACHE_DIR
169 check_dir $CONTAINER_IMAGES_DIR
170 clean_dir $CONTAINER_IMAGES_DIR
171 clean_kubernetes_packages
172 clean_podman_packages
173 clean_docker_packages
174 clean_ironic_packages
175 clean_essential_packages
176 rm -rf $LOCAL_APT_REPO
177 rm -rf $PIP_CACHE_DIR
179 rm -rf $CONTAINER_IMAGES_DIR