diff --git a/Makefile b/Makefile index bf0e6c519..4b41f0ee5 100644 --- a/Makefile +++ b/Makefile @@ -190,4 +190,5 @@ clean-ci: list=$$(oc get secret -n $(EDGE_NAME) --no-headers |grep bmc|awk '{print $$1}'); \ for i in $${list}; do oc patch -n $(EDGE_NAME) secret $${i} --type json -p '[ { "op": "remove", "path": "/metadata/finalizers" } ]'; done; \ oc delete --ignore-not-found=true ns $(EDGE_NAME); \ + oc rollout restart -n openshift-machine-api deployment/metal3; \ kcli delete vm -y $(EDGE_NAME)-m0 $(EDGE_NAME)-m1 $(EDGE_NAME)-m2 $(EDGE_NAME)-w0 diff --git a/hack/clean/clean-libvirt-pool.sh b/hack/clean/clean-libvirt-pool.sh index a6656edc6..a07f8672c 100755 --- a/hack/clean/clean-libvirt-pool.sh +++ b/hack/clean/clean-libvirt-pool.sh @@ -1,64 +1,68 @@ #!/usr/bin/env bash set -o pipefail -set -o nounset set -m -resourcesUsed="" +if [ -n "${1}" ]; then -# get all disk and isos in use -getUsedResources() { - for vm in $(kcli list vm -o json | jq -r .[].name); do - # preserve ISO/iso used by existing vm's - resourcesUsed=$(printf "%s|${resourcesUsed}" "${vm}.ISO") + resourcesUsed="" - # some vm's have a boot-ID iso - depending on how they were created - resourcesUsed=$(printf "%s|${resourcesUsed}" "$(kcli show vm ${vm} | grep iso: | awk '{print $2}' | sed 's#\/var\/lib\/libvirt\/images\/##g')") + # get all disk and isos in use + getUsedResources() { + for vm in $(kcli list vm -o json | jq -r .[].name); do + # preserve ISO/iso used by existing vm's + resourcesUsed=$(printf "%s|${resourcesUsed}" "${vm}.ISO") - # preserve images used by existing vm's - resourcesUsed=$(printf "%s|${resourcesUsed}" "$(kcli show vm ${vm} | grep image: | awk '{print $2}' | sed 's#\/var\/lib\/libvirt\/images\/##g')") + # some vm's have a boot-ID iso - depending on how they were created + resourcesUsed=$(printf "%s|${resourcesUsed}" "$(kcli show vm ${vm} | grep iso: | awk '{print $2}' | sed 's#\/var\/lib\/libvirt\/images\/##g')") - # preserve all disks used by existing vm's - for disk in $(kcli show vm $vm | grep -E 'diskname:' | awk '{print $10}' | sed 's#\/var\/lib\/libvirt\/images\/##'); do - resourcesUsed=$(printf "%s|${resourcesUsed}" "${disk}") + # preserve images used by existing vm's + resourcesUsed=$(printf "%s|${resourcesUsed}" "$(kcli show vm ${vm} | grep image: | awk '{print $2}' | sed 's#\/var\/lib\/libvirt\/images\/##g')") + + # preserve all disks used by existing vm's + for disk in $(kcli show vm $vm | grep -E 'diskname:' | awk '{print $10}' | sed 's#\/var\/lib\/libvirt\/images\/##'); do + resourcesUsed=$(printf "%s|${resourcesUsed}" "${disk}") + done done - done -} + } -# get the resources -getUsedResources + # get the resources + getUsedResources -# build a cmd that greps out the *used* resources -# cmd has to guarantee resources in toDelete are *unused* -# sanitize output by removing any trailing character -# and also double || introduced by getUsedResources\ -# failing to do this will make cmd unusable and unreliable -resourcesGrep=$(echo $resourcesUsed | sed 's/.$//' | sed 's/||/|/'g) -cmd=$(printf "ls /var/lib/libvirt/images | grep -Ev '%s'" ${resourcesGrep}) -toDelete=$(eval $cmd) + # build a cmd that greps out the *used* resources + # cmd has to guarantee resources in toDelete are *unused* + # sanitize output by removing any trailing character + # and also double || introduced by getUsedResources\ + # failing to do this will make cmd unusable and unreliable + resourcesGrep=$(echo $resourcesUsed | sed 's/.$//' | sed 's/||/|/'g) + cmd=$(printf "ls /var/lib/libvirt/images | grep -Ev '%s'" ${resourcesGrep}) + toDelete=$(eval $cmd) -# dry-run will prompt the images to be deleted -# now will wipe the pool -case "${1}" in - 'dry-run') - echo "############### ${0} dry-run" - echo "############### resources in use - won't be deleted" - echo $cmd - echo "" + # dry-run will prompt the images to be deleted + # now will wipe the pool + case $1 in + 'dry-run') + echo "############### ${0} dry-run" + echo "############### resources in use - won't be deleted" + echo $cmd + echo "" - echo "############### resources unused - will be delete" - for resource in $(echo $toDelete); do - echo $resource - done - ;; + echo "############### resources unused - will be delete" + for resource in $(echo $toDelete); do + echo $resource + done + ;; - 'now') - for resource in $(echo $toDelete); do - kcli delete disk --novm --yes ${resource} - done - ;; + 'now') + for resource in $(echo $toDelete); do + kcli delete disk --novm --yes ${resource} + done + ;; - *) - echo "Usage: $0 [dry-run|now]" - ;; -esac \ No newline at end of file + *) + echo "Usage: [dry-run|now]" + ;; + esac +else + echo "Usage: [dry-run|now]" +fi diff --git a/hack/deploy-hub-local/ansible/tasks/base/01-packages.yaml b/hack/deploy-hub-local/ansible/tasks/base/01-packages.yaml index 69b1ead2e..a159c9915 100644 --- a/hack/deploy-hub-local/ansible/tasks/base/01-packages.yaml +++ b/hack/deploy-hub-local/ansible/tasks/base/01-packages.yaml @@ -86,5 +86,6 @@ - golang - glibc-langpack-es - mosh + - fpaste ignore_errors: true tags: [ 01-packages ]