promenade/promenade/templates/roles/common/usr/local/bin/promenade-teardown

25 lines
741 B
Bash
Executable File

#!/usr/bin/env bash
{% set hostname = config.get_first('Genesis:hostname', 'KubernetesNode:hostname') -%}
set -xe
if [ $(kubectl get nodes | grep '\bReady\b' | wc -l) -lt 2 ]; then
echo Not enough live nodes to proceed with teardown. 1>&2
exit 1
fi
# Evict pods
kubectl drain --force --timeout 3600s --grace-period 1800 --ignore-daemonsets --delete-local-data {{ hostname }} || true
kubectl label node {{ hostname }} $(kubectl get node {{ hostname }} -o 'jsonpath={.metadata.labels}' | sed 's/map\[//' | sed 's/\]//' | tr ' ' '\n' | sed 's/:.*/-/g' | grep -v 'kubernetes.io')
sleep 30
# Stop kubelet
systemctl stop kubelet
systemctl disable kubelet
# Stop remaining containers processes
docker rm -f $(docker ps -aq) || true