@@ -14,7 +14,7 @@ locals {
1414
1515resource "aws_vpc" "vpc" {
1616 count = var. create ? 1 : 0
17- cidr_block = " ${ var . vpc- cidr-prefix } .0.0/16 "
17+ cidr_block = var. cidr-block
1818 tags = merge (var. tags , { Name = " depot-connection-${ var . connection-id } " })
1919}
2020
@@ -38,17 +38,17 @@ resource "aws_route" "public-internet-gateway" {
3838}
3939
4040resource "aws_subnet" "public" {
41- count = var. create ? 1 : 0
41+ count = var. create ? length (var . subnets ) : 0
4242 vpc_id = aws_vpc. vpc [0 ]. id
43- availability_zone = var. availability-zone
44- cidr_block = " ${ var . vpc-cidr-prefix } .0.0/16 "
43+ availability_zone = var. subnets [ count . index ] . availability-zone
44+ cidr_block = var. subnets [ count . index ] . cidr-block
4545 map_public_ip_on_launch = true
46- tags = merge (var. tags , { " Name" = " depot-connection- ${ var . connection-id } " })
46+ tags = merge (var. tags , { " Name" = " depot-${ var . connection-id } - ${ var . subnets [ count . index ] . availability-zone } " })
4747}
4848
4949resource "aws_route_table_association" "public" {
50- count = var. create ? 1 : 0
51- subnet_id = aws_subnet. public [0 ]. id
50+ count = var. create ? length (var . subnets ) : 0
51+ subnet_id = aws_subnet. public [count . index ]. id
5252 route_table_id = aws_route_table. public [0 ]. id
5353}
5454
@@ -170,10 +170,6 @@ resource "aws_launch_template" "x86" {
170170 subnet_id = aws_subnet. public [0 ]. id
171171 }
172172
173- placement {
174- availability_zone = var. availability-zone
175- }
176-
177173 tag_specifications {
178174 resource_type = " instance"
179175 tags = merge (var. tags , { " depot-connection" = var.connection- id })
@@ -211,10 +207,6 @@ resource "aws_launch_template" "arm" {
211207 subnet_id = aws_subnet. public [0 ]. id
212208 }
213209
214- placement {
215- availability_zone = var. availability-zone
216- }
217-
218210 tag_specifications {
219211 resource_type = " instance"
220212 tags = merge (var. tags , { " depot-connection" = var.connection- id })
@@ -311,16 +303,15 @@ resource "aws_iam_role" "cloud-agent" {
311303 {
312304 Action = [" ec2:RunInstances" ]
313305 Effect = " Allow"
314- Resource = [
306+ Resource = concat ( [
315307 aws_launch_template . arm [0 ]. arn ,
316308 aws_launch_template . x86 [0 ]. arn ,
317309 aws_security_group . instance-buildkit [0 ]. arn ,
318310 aws_security_group . instance-default [0 ]. arn ,
319- aws_subnet.public[0 ].arn,
320311 " arn:aws:ec2:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :network-interface/*" ,
321312 " arn:aws:ec2:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :volume/*" ,
322313 " arn:aws:ec2:${ data . aws_region . current . name } ::image/*" ,
323- ]
314+ ], [ for s in aws_subnet . public : s . arn ])
324315 },
325316
326317 {
@@ -413,12 +404,13 @@ resource "aws_ecs_task_definition" "cloud-agent" {
413404 essential = true
414405 environment = concat (
415406 [
416- { name = " CLOUD_AGENT_AWS_AVAILABILITY_ZONE" , value = var.availability- zone },
407+ { name = " CLOUD_AGENT_AWS_AVAILABILITY_ZONE" , value = var.subnets[ 0 ]. availability- zone },
417408 { name = " CLOUD_AGENT_AWS_LAUNCH_TEMPLATE_ARM" , value = aws_launch_template.arm[0 ].id },
418409 { name = " CLOUD_AGENT_AWS_LAUNCH_TEMPLATE_X86" , value = aws_launch_template.x86[0 ].id },
419410 { name = " CLOUD_AGENT_AWS_SG_BUILDKIT" , value = aws_security_group.instance- buildkit[0 ].id },
420411 { name = " CLOUD_AGENT_AWS_SG_DEFAULT" , value = aws_security_group.instance- default[0 ].id },
421412 { name = " CLOUD_AGENT_AWS_SUBNET_ID" , value = aws_subnet.public[0 ].id },
413+ { name = " CLOUD_AGENT_AWS_SUBNETS" , value = jsonencode (aws_subnet. public ) },
422414 { name = " CLOUD_AGENT_CLUSTER_ARN" , value = aws_ecs_cluster.cloud- agent[0 ].arn },
423415 { name = " CLOUD_AGENT_CONNECTION_ID" , value = var.connection- id },
424416 { name = " CLOUD_AGENT_SERVICE_NAME" , value = local.service- name },
@@ -456,7 +448,7 @@ resource "aws_ecs_service" "cloud-agent" {
456448
457449 network_configuration {
458450 security_groups = [aws_security_group . cloud-agent [0 ]. id ]
459- subnets = [aws_subnet . public [ 0 ] . id ]
451+ subnets = [for s in aws_subnet . public : s . id ]
460452 assign_public_ip = true
461453 }
462454
0 commit comments