-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathamctl.sh
executable file
·85 lines (65 loc) · 2.13 KB
/
amctl.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
#! /bin/bash
MESH=$1
DELETE=$2
account=($(aws sts get-caller-identity --query "Account" | sed -e 's/^"//' -e 's/"$//'))
echo Running for account $account
meshes=($(aws appmesh list-meshes --query "meshes[*].meshName" --output text))
services=($(aws appmesh list-virtual-services --mesh-name $MESH --query "virtualServices[*].virtualServiceName" --output text))
routers=($(aws appmesh list-virtual-routers --mesh-name $MESH --query "virtualRouters[*].virtualRouterName" --output text))
nodes=($(aws appmesh list-virtual-nodes --mesh-name $MESH --query "virtualNodes[*].virtualNodeName" --output text))
pods=($(kubectl get pods -nprod | awk ' { printf sep $1; sep=" "} ' | sed -e 's/NAME//g'))
echo Found Mesh: ${meshes[*]}
echo Found Virtual Services: ${services[*]}
echo Found Virtual Routers: ${routers[*]}
echo Found Virtual Nodes: ${nodes[*]}
echo Found pods: ${pods[*]}
echo
for vs in "${services[@]}"
do
# echo "Virtual Service: $vs"
if [ -n "$DELETE" ]; then
echo Deleting Virtual Service: $vs
aws appmesh delete-virtual-service --mesh-name $MESH --virtual-service-name $vs
sleep 3
fi
done
for vr in "${routers[@]}"
do
# echo "Router: $vr"
routes=($(aws appmesh list-routes --mesh-name $MESH --virtual-router-name $vr --query 'routes[*].routeName' --output text))
echo Found Route in ${vr}: ${routes[*]}
# Delete routes
for r in "${routes[@]}"
do
if [ -n "$DELETE" ]; then
echo Deleting route: $r
aws appmesh delete-route --mesh-name $MESH --route-name $r --virtual-router-name $vr
sleep 3
fi
done
echo
# Delete routers
if [ -n "$DELETE" ]; then
echo Deleting router: $vr
aws appmesh delete-virtual-router --mesh-name $MESH --virtual-router-name $vr
sleep 3
fi
done
# delete Nodes
for vn in "${nodes[@]}"
do
if [ -n "$DELETE" ]; then
echo Deleting Virtual Node: $vn
aws appmesh delete-virtual-node --mesh-name $MESH --virtual-node-name $vn
sleep 3
fi
done
# delete meshes
for m in "${meshes[@]}"
do
if [ -n "$DELETE" ]; then
echo Deleting App Mesh: $m
aws appmesh delete-mesh --mesh-name $m
sleep 3
fi
done