NEW: delete-default-vpcs module

This commit is contained in:
xpk 2022-08-05 14:56:21 +08:00
parent a0de86d92e
commit 3c5c56737f
Signed by: xpk
GPG Key ID: CD4FF6793F09AB86
4 changed files with 65 additions and 0 deletions

View File

@ -0,0 +1,12 @@
# In the root module, use these to call this module
```
data "aws_regions" "current" {}
module delete-default-vpc {
source = "./module/delete-default-vpc"
for_each = data.aws_regions.current.names
region-name = each.value
}
```

View File

@ -0,0 +1,47 @@
#!/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}"
# 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}"
aws ec2 --region ${region} \
delete-vpc --vpc-id ${vpc}

View File

@ -0,0 +1,5 @@
resource "null_resource" "shell" {
provisioner "local-exec" {
command = "/bin/bash -c '${path.module}/exec.sh ${var.region-name}'"
}
}

View File

@ -0,0 +1 @@
variable region-name {}