-
Notifications
You must be signed in to change notification settings - Fork 1
/
delete-all.sh
executable file
·108 lines (81 loc) · 3.28 KB
/
delete-all.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#!/bin/bash
#set -eux
region=us-central1
FAIL=0
waitfor() {
for job in `jobs -p`
do
wait $job || let "FAIL+=1"
done
}
echo "--> Destroy VMs"
for i in a b c; do
zone=$region-$i
echo "====> $zone"
gcloud compute instances list --format 'value(name)' --filter="zone:$zone" \
| /usr/bin/parallel "gcloud compute instances delete --zone $zone --quiet {}" &
done
waitfor
echo "--> Destroy Disks"
for i in a b c; do
zone=$region-$i
echo "====> $zone"
gcloud compute disks list --format "value(name)" --filter="zone:$zone and -users:*" \
| /usr/bin/parallel "gcloud compute disks delete --zone $zone --quiet {}" &
done
echo "--> Destroy Images"
gcloud compute images list --no-standard-images --format 'value(name)' \
| /usr/bin/parallel "gcloud compute images delete --quiet {}" &
echo "--> Destroy target proxies"
gcloud compute target-http-proxies list --format 'value(name)' \
| parallel 'gcloud compute target-http-proxies delete --quiet {}' &
gcloud compute target-https-proxies list --format 'value(name)' \
| parallel 'gcloud compute target-https-proxies delete --quiet {}' &
waitfor
echo "--> Destroy url maps"
gcloud compute url-maps list --format 'value(name)' \
| parallel 'gcloud compute url-maps delete --quiet {}' &
waitfor
echo "--> Destroy backend services"
gcloud compute backend-services list --global --format 'value(name)' \
| parallel 'gcloud compute backend-services delete --global --quiet {}' &
waitfor
echo "--> Destroy instance groups"
for i in a b c; do
zone=$region-$i
gcloud compute instance-groups unmanaged list --filter="zone:($zone)" --format 'value(name)' \
| parallel "gcloud compute instance-groups unmanaged delete --quiet {} --zone $zone" &
done
waitfor
echo "--> Destroy firewall rules"
gcloud compute firewall-rules list --format 'value(name)' \
| parallel 'gcloud compute firewall-rules delete --quiet {}' &
echo "--> Destroy forwarding rules"
gcloud compute forwarding-rules list --format 'value(name)' \
| parallel "gcloud compute forwarding-rules delete --quiet \
--region=${region} {}" &
gcloud compute forwarding-rules list --global --format 'value(name)' \
| parallel "gcloud compute forwarding-rules delete --quiet \
--global {}" &
echo "--> Destroy addresses"
gcloud compute addresses list --global --format 'value(name)' | \
parallel 'gcloud compute addresses delete --global --quiet {}' &
gcloud compute addresses list --format 'value(name)' | \
parallel 'gcloud compute addresses delete --quiet {}' &
echo "--> Destroy routes"
gcloud compute routes list --format 'value(name)' --filter 'name!=default' | \
parallel 'gcloud compute routes delete --quiet {}' &
waitfor
echo "--> Destroy target pools"
gcloud compute target-pools list --format 'value(name)' \
| parallel 'gcloud compute target-pools delete --quiet {}' &
waitfor
echo "--> Destroy subnets"
gcloud compute networks subnets list --format 'value(name)' --filter 'name!=default' \
| parallel gcloud compute networks subnets delete --quiet {}
echo "--> Destroy networks"
gcloud compute networks list --format 'value(name)' --filter 'name!=default' \
| parallel gcloud compute networks delete --quiet {}
echo "---------------------------------------"
echo "Finished with $FAIL failures"
echo "---------------------------------------"