diff --git a/modules/networking/delete-default-vpcs/exec.sh b/modules/networking/delete-default-vpcs/exec.sh index 1f29ad0..fb543a1 100755 --- a/modules/networking/delete-default-vpcs/exec.sh +++ b/modules/networking/delete-default-vpcs/exec.sh @@ -1,47 +1,38 @@ #!/bin/bash region=$1 - # get default vpc - vpc=$(aws ec2 --region ${region} \ - describe-vpcs --filter Name=isDefault,Values=true \ - | jq -r .Vpcs[0].VpcId) - if [ "${vpc}" = "null" ]; then - echo "No default vpc found" - continue - fi - echo "Found default vpc ${vpc}" +vpc=$(aws ec2 --region ${region} \ + describe-vpcs --filter Name=isDefault,Values=true \ + | jq -r .Vpcs[0].VpcId) +if [ "${vpc}" = "null" ]; then + echo "No default vpc found" + exit 0 +fi - # get internet gateway - igw=$(aws ec2 --region ${region} \ - describe-internet-gateways --filter Name=attachment.vpc-id,Values=${vpc} \ - | jq -r .InternetGateways[0].InternetGatewayId) - if [ "${igw}" != "null" ]; then - echo "Detaching and deleting internet gateway ${igw}" - aws ec2 --region ${region} \ - detach-internet-gateway --internet-gateway-id ${igw} --vpc-id ${vpc} - aws ec2 --region ${region} \ - delete-internet-gateway --internet-gateway-id ${igw} - fi - - # get subnets - subnets=$(aws ec2 --region ${region} \ - describe-subnets --filters Name=vpc-id,Values=${vpc} \ - | jq -r .Subnets[].SubnetId) - if [ "${subnets}" != "null" ]; then - for subnet in ${subnets}; do - echo "Deleting subnet ${subnet}" - aws ec2 --region ${region} \ - delete-subnet --subnet-id ${subnet} - done - fi - - # https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-vpc.html - # - You can't delete the main route table - # - You can't delete the default network acl - # - You can't delete the default security group - - # delete default vpc - echo "Deleting vpc ${vpc}" +igw=$(aws ec2 --region ${region} \ + describe-internet-gateways --filter Name=attachment.vpc-id,Values=${vpc} \ + | jq -r .InternetGateways[0].InternetGatewayId) +if [ "${igw}" != "null" ]; then + echo "Detaching and deleting internet gateway ${igw}" aws ec2 --region ${region} \ - delete-vpc --vpc-id ${vpc} + detach-internet-gateway --internet-gateway-id ${igw} --vpc-id ${vpc} + aws ec2 --region ${region} \ + delete-internet-gateway --internet-gateway-id ${igw} +fi + +subnets=$(aws ec2 --region ${region} \ + describe-subnets --filters Name=vpc-id,Values=${vpc} \ + | jq -r .Subnets[].SubnetId) +if [ "${subnets}" != "null" ]; then + for subnet in ${subnets}; do + echo "Deleting subnet ${subnet}" + aws ec2 --region ${region} \ + delete-subnet --subnet-id ${subnet} + done +fi + +echo "Deleting vpc ${vpc}" +aws ec2 --region ${region} \ + delete-vpc --vpc-id ${vpc} +