@@ -85,6 +85,7 @@ asg_DesiredCapacity="$(aws autoscaling describe-auto-scaling-groups \
85
85
--output text) "
86
86
87
87
asg_MaxSize=$( aws autoscaling describe-auto-scaling-groups \
88
+ --auto-scaling-group-name " $asg_name " \
88
89
--query ' AutoScalingGroups[].MaxSize' \
89
90
--output text)
90
91
@@ -105,13 +106,17 @@ aws autoscaling update-auto-scaling-group \
105
106
--output table
106
107
107
108
# Wait until new instances spin up
109
+ echo -n " Waiting until new instances are in service"
108
110
current_asg_instances=" $( get_asg_instances " $asg_name " ) "
109
111
while num_in_service_less_than " $current_asg_instances " " $asg_NewCapacity " ; do
110
112
sleep 5
113
+ echo -n " ."
111
114
current_asg_instances=" $( get_asg_instances " $asg_name " ) "
112
115
done
116
+ echo " "
113
117
114
118
# Terminate old instances explicitly
119
+ echo " Terminating old instances $original_asg_instances "
115
120
for instance in $original_asg_instances ; do
116
121
aws autoscaling terminate-instance-in-auto-scaling-group \
117
122
--instance-id " $instance " \
@@ -124,4 +129,20 @@ aws autoscaling update-auto-scaling-group \
124
129
--max-size " $asg_MaxSize " \
125
130
--output table
126
131
132
+ # Wait for old instances to complete termination
133
+ for instance in $original_asg_instances ; do
134
+ echo " "
135
+ echo -n " Waiting for $instance to terminate"
136
+ while aws ec2 describe-instances \
137
+ --instance-id " $instance " \
138
+ --query ' Reservations[*].Instances[*].State.Name' \
139
+ --output text \
140
+ | grep -v ' ^terminated$' > /dev/null
141
+ do
142
+ echo -n " ."
143
+ sleep 5
144
+ done
145
+ done
146
+ echo " "
127
147
148
+ echo " Rotate complete. New ASG instances: $( get_asg_instances " $asg_name " ) "
0 commit comments