Skip to content

Commit cce04a4

Browse files
authored
Merge pull request #48 from smarunich/aws-destroy
initial attempt on aws cleanup
2 parents 792c3e8 + bb5d9a7 commit cce04a4

File tree

5 files changed

+70
-3
lines changed

5 files changed

+70
-3
lines changed

Makefile

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,19 @@ app_bookinfo:
130130
azure_oidc:
131131
terraform apply ${terraform_apply_args} -target=module.azure_oidc
132132

133+
.PHONY: fast_track
134+
fast_track:
135+
make k8s
136+
make tsb_mp
137+
make tsb_cp cluster_id=0 cloud=azure || true
138+
make tsb_cp cluster_id=1 cloud=azure || true
139+
make tsb_cp cluster_id=0 cloud=aws || true
140+
make tsb_cp cluster_id=0 cloud=gcp || true
141+
make argocd cluster_id=0 cloud=azure || true
142+
make argocd cluster_id=1 cloud=azure || true
143+
make argocd cluster_id=0 cloud=aws || true
144+
make argocd cluster_id=0 cloud=gcp || true
145+
133146
## destroy destroy the environment
134147
.PHONY: destroy
135148
destroy:
@@ -140,8 +153,11 @@ destroy:
140153
terraform state list | grep "^module.es" | xargs -I '{}' terraform state rm {}
141154
terraform state list | grep "^module.keycloak" | xargs -I '{}' terraform state rm {}
142155
terraform state list | grep "^module.app" | xargs -I '{}' terraform state rm {}
143-
terraform destroy ${terraform_destroy_args} -refresh=false -target=module.aws_k8s -target=module.aws_jumpbox -target=module.aws_base
144-
terraform destroy ${terraform_destroy_args} -refresh=false -target=module.gcp_k8s -target=module.gcp_jumpbox -target=module.gcp_base
145-
terraform destroy ${terraform_destroy_args} -refresh=false -target=module.azure_k8s -target=module.azure_jumpbox -target=module.azure_base
156+
terraform destroy ${terraform_destroy_args} -refresh=false -target=module.aws_k8s
157+
terraform destroy ${terraform_destroy_args} -refresh=false -target=module.aws_jumpbox -target=module.aws_base
158+
terraform destroy ${terraform_destroy_args} -refresh=false -target=module.gcp_k8s
159+
terraform destroy ${terraform_destroy_args} -refresh=false -target=module.gcp_jumpbox -target=module.gcp_base
160+
terraform destroy ${terraform_destroy_args} -refresh=false -target=module.azure_k8s
161+
terraform destroy ${terraform_destroy_args} -refresh=false -target=module.azure_jumpbox -target=module.azure_base
146162
terraform destroy ${terraform_destroy_args} -refresh=false
147163
terraform destroy ${terraform_destroy_args}

main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ module "aws_jumpbox" {
4747
count = var.aws_eks_app_clusters_count > 0 ? 1 : 0
4848
owner = var.owner
4949
name_prefix = var.name_prefix
50+
region = var.aws_region
5051
vpc_id = module.aws_base[0].vpc_id
5152
vpc_subnet = module.aws_base[0].vpc_subnets[0]
5253
cidr = var.cidr
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/usr/bin/env bash
2+
3+
export REGION="${region}"
4+
export VPC_ID="${vpc_id}"
5+
6+
echo 'Destroying K8s ELBs...'
7+
for elb in $(aws elb describe-load-balancers --region $REGION --query 'LoadBalancerDescriptions[?VPCId=="$VPC_ID"]|[].LoadBalancerName' --output text);do echo "Removing $elb..."; aws elb delete-load-balancer --region $REGION --load-balancer-name $elb; done
8+
9+
sleep 60
10+
11+
echo 'Destroying K8s ELB SGs...'
12+
for sg in $(aws ec2 --region $REGION describe-security-groups --filters "Name=vpc-id,Values=$VPC_ID" --query "SecurityGroups[*].GroupId" --output text); do echo "Removing $sg..."; aws ec2 delete-security-group --region $REGION --group-id $sg; done

modules/aws/jumpbox/main.tf

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,41 @@ resource "aws_instance" "jumpbox" {
247247

248248
}
249249

250+
resource "null_resource" "jumpbox_aws_cleanup" {
251+
252+
triggers = {
253+
host = aws_instance.jumpbox.public_ip
254+
user = var.jumpbox_username
255+
private_key = tls_private_key.generated.private_key_pem
256+
}
257+
258+
connection {
259+
host = self.triggers.host
260+
type = "ssh"
261+
agent = false
262+
user = self.triggers.user
263+
private_key = self.triggers.private_key
264+
}
265+
266+
provisioner "file" {
267+
content = templatefile("${path.module}/aws_cleanup.sh.tmpl", {
268+
vpc_id = var.vpc_id
269+
region = var.region
270+
})
271+
destination = "/home/tsbadmin/aws_cleanup.sh"
272+
}
273+
274+
provisioner "remote-exec" {
275+
when = destroy
276+
inline = [
277+
"sh /home/tsbadmin/aws_cleanup.sh"
278+
]
279+
on_failure = continue
280+
}
281+
282+
depends_on = [aws_instance.jumpbox, tls_private_key.generated]
283+
}
284+
250285
resource "local_file" "tsbadmin_pem" {
251286
content = tls_private_key.generated.private_key_pem
252287
filename = "${var.name_prefix}-aws-${var.jumpbox_username}.pem"

modules/aws/jumpbox/variables.tf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ variable "name_prefix" {
55
variable "owner" {
66
}
77

8+
variable "region" {
9+
}
10+
811
variable "vpc_id" {
912
}
1013

0 commit comments

Comments
 (0)