From 80f57b7df7cefdefa60d5c543d1767d5ac157818 Mon Sep 17 00:00:00 2001 From: Zihong Zheng Date: Mon, 9 Oct 2017 17:35:43 -0700 Subject: [PATCH] GCE kube-down: Delete all remaining firewall rules when KUBE_DELETE_NETWORK is set --- cluster/gce/util.sh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/cluster/gce/util.sh b/cluster/gce/util.sh index e62f362e542..27e818e558a 100755 --- a/cluster/gce/util.sh +++ b/cluster/gce/util.sh @@ -912,6 +912,15 @@ function detect-subnetworks() { echo "${color_red}Could not find subnetwork with region ${REGION}, network ${NETWORK}, and project ${NETWORK_PROJECT}" } +function delete-all-firewall-rules() { + if fws=$(gcloud compute firewall-rules list --project "${NETWORK_PROJECT}" --filter="network=${NETWORK}" --format="value(name)"); then + echo "Deleting firewall rules remaining in network ${NETWORK}: ${fws}" + delete-firewall-rules "$fws" + else + echo "Failed to list firewall rules from the network ${NETWORK}" + fi +} + function delete-firewall-rules() { for fw in $@; do if [[ -n $(gcloud compute firewall-rules --project "${NETWORK_PROJECT}" describe "${fw}" --format='value(name)' 2>/dev/null || true) ]]; then @@ -1728,8 +1737,10 @@ function kube-down() { "${NETWORK}-default-internal" # Pre-1.5 clusters if [[ "${KUBE_DELETE_NETWORK}" == "true" ]]; then + # Delete all remaining firewall rules in the network. + delete-all-firewall-rules || true delete-subnetworks || true - delete-network || true # might fail if there are leaked firewall rules + delete-network || true # might fail if there are leaked resources that reference the network fi # If there are no more remaining master replicas, we should update kubeconfig.