keycloak-scim/.github/scripts/aws/rds/aurora_delete.sh

80 lines
2.6 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
set -e
if [[ "$RUNNER_DEBUG" == "1" ]]; then
set -x
fi
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
source ${SCRIPT_DIR}/aurora_common.sh
AURORA_VPC=$(aws ec2 describe-vpcs \
--filters "Name=tag:AuroraCluster,Values=${AURORA_CLUSTER}" \
--query "Vpcs[*].VpcId" \
--output text
)
# Delete the Aurora DB cluster and instances
for i in $( aws rds describe-db-clusters --db-cluster-identifier ${AURORA_CLUSTER} --query "DBClusters[0].DBClusterMembers[].DBInstanceIdentifier" --output text ); do
echo "Deleting Aurora DB instance ${i}"
aws rds delete-db-instance --db-instance-identifier "${i}" --skip-final-snapshot || true
done
aws rds delete-db-cluster \
--db-cluster-identifier ${AURORA_CLUSTER} \
--skip-final-snapshot \
|| true
for i in $( aws rds describe-db-clusters --db-cluster-identifier ${AURORA_CLUSTER} --query "DBClusters[0].DBClusterMembers[].DBInstanceIdentifier" --output text ); do
aws rds wait db-instance-deleted --db-instance-identifier "${i}"
done
aws rds wait db-cluster-deleted --db-cluster-identifier ${AURORA_CLUSTER} || true
# Delete the Aurora subnet group
aws rds delete-db-subnet-group --db-subnet-group-name ${AURORA_SUBNET_GROUP_NAME} || true
# Delete the Aurora subnets
AURORA_SUBNETS=$(aws ec2 describe-subnets \
--filters "Name=vpc-id,Values=${AURORA_VPC}" \
--query "Subnets[*].SubnetId" \
--output text
)
for AURORA_SUBNET in ${AURORA_SUBNETS}; do
aws ec2 delete-subnet --subnet-id ${AURORA_SUBNET}
done
# Delete the Aurora VPC Security Group
AURORA_SECURITY_GROUP_ID=$(aws ec2 describe-security-groups \
--filters "Name=vpc-id,Values=${AURORA_VPC}" "Name=group-name,Values=${AURORA_SECURITY_GROUP_NAME}" \
--query "SecurityGroups[*].GroupId" \
--output text
)
if [ -n "${AURORA_SECURITY_GROUP_ID}" ]; then
aws ec2 delete-security-group --group-id ${AURORA_SECURITY_GROUP_ID} --region ${AURORA_REGION}
fi
# Detach the internet gateway from the VPC and remove
INTERNET_GATEWAY=$(aws ec2 describe-internet-gateways \
--filters "Name=tag:AuroraCluster,Values=${AURORA_CLUSTER}" \
--query "InternetGateways[*].InternetGatewayId" \
--output text
)
aws ec2 detach-internet-gateway \
--internet-gateway-id ${INTERNET_GATEWAY} \
--vpc-id ${AURORA_VPC} \
|| true
aws ec2 delete-internet-gateway --internet-gateway-id ${INTERNET_GATEWAY} || true
# Delete the Aurora VPC, retrying 5 times in case that dependencies are not removed instantly
n=0
until [ "$n" -ge 20 ]
do
aws ec2 delete-vpc --vpc-id ${AURORA_VPC} && break
n=$((n+1))
echo "Unable to remove VPC ${AURORA_VPC}. Attempt ${n}"
sleep 10
done