mirror of https://github.com/k3s-io/k3s
AWS: Delete ASGs by following instances
We can't tag ASGs, but we can see what instances are running in an ASG, and we can match those by our tags. So look for our running instances, and look for the ASGs that created them, and delete those. This can be defeated (most notably if users change the ASG size to 0), but it is safer that other deletion methods.pull/6/head
parent
cf86ecc604
commit
41743ce87a
|
@ -1198,21 +1198,26 @@ function kube-down {
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -n $(${AWS_ASG_CMD} --output text describe-auto-scaling-groups --auto-scaling-group-names ${ASG_NAME} --query AutoScalingGroups[].AutoScalingGroupName) ]]; then
|
|
||||||
echo "Deleting auto-scaling group: ${ASG_NAME}"
|
|
||||||
${AWS_ASG_CMD} delete-auto-scaling-group --force-delete --auto-scaling-group-name ${ASG_NAME}
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n $(${AWS_ASG_CMD} --output text describe-launch-configurations --launch-configuration-names ${ASG_NAME} --query LaunchConfigurations[].LaunchConfigurationName) ]]; then
|
|
||||||
echo "Deleting auto-scaling launch configuration: ${ASG_NAME}"
|
|
||||||
${AWS_ASG_CMD} delete-launch-configuration --launch-configuration-name ${ASG_NAME}
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Deleting instances in VPC: ${vpc_id}"
|
echo "Deleting instances in VPC: ${vpc_id}"
|
||||||
instance_ids=$($AWS_CMD --output text describe-instances \
|
instance_ids=$($AWS_CMD --output text describe-instances \
|
||||||
--filters Name=vpc-id,Values=${vpc_id} \
|
--filters Name=vpc-id,Values=${vpc_id} \
|
||||||
Name=tag:KubernetesCluster,Values=${CLUSTER_ID} \
|
Name=tag:KubernetesCluster,Values=${CLUSTER_ID} \
|
||||||
--query Reservations[].Instances[].InstanceId)
|
--query Reservations[].Instances[].InstanceId)
|
||||||
|
|
||||||
|
asg_groups=$($AWS_CMD --output text describe-instances \
|
||||||
|
--query 'Reservations[].Instances[].Tags[?Key==`aws:autoscaling:groupName`].Value[]' \
|
||||||
|
--instance-ids ${instance_ids})
|
||||||
|
for asg_group in ${asg_groups}; do
|
||||||
|
if [[ -n $(${AWS_ASG_CMD} --output text describe-auto-scaling-groups --auto-scaling-group-names ${asg_group} --query AutoScalingGroups[].AutoScalingGroupName) ]]; then
|
||||||
|
echo "Deleting auto-scaling group: ${asg_group}"
|
||||||
|
${AWS_ASG_CMD} delete-auto-scaling-group --force-delete --auto-scaling-group-name ${asg_group}
|
||||||
|
fi
|
||||||
|
if [[ -n $(${AWS_ASG_CMD} --output text describe-launch-configurations --launch-configuration-names ${asg_group} --query LaunchConfigurations[].LaunchConfigurationName) ]]; then
|
||||||
|
echo "Deleting auto-scaling launch configuration: ${asg_group}"
|
||||||
|
${AWS_ASG_CMD} delete-launch-configuration --launch-configuration-name ${asg_group}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
if [[ -n "${instance_ids}" ]]; then
|
if [[ -n "${instance_ids}" ]]; then
|
||||||
$AWS_CMD terminate-instances --instance-ids ${instance_ids} > $LOG
|
$AWS_CMD terminate-instances --instance-ids ${instance_ids} > $LOG
|
||||||
echo "Waiting for instances to be deleted"
|
echo "Waiting for instances to be deleted"
|
||||||
|
|
Loading…
Reference in New Issue