@@ -14,7 +14,7 @@ locals {
14
14
15
15
resource "aws_vpc" "vpc" {
16
16
count = var. create ? 1 : 0
17
- cidr_block = " ${ var . vpc- cidr-prefix } .0.0/16 "
17
+ cidr_block = var. cidr-block
18
18
tags = merge (var. tags , { Name = " depot-connection-${ var . connection-id } " })
19
19
}
20
20
@@ -38,17 +38,17 @@ resource "aws_route" "public-internet-gateway" {
38
38
}
39
39
40
40
resource "aws_subnet" "public" {
41
- count = var. create ? 1 : 0
41
+ count = var. create ? length (var . subnets ) : 0
42
42
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
45
45
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 } " })
47
47
}
48
48
49
49
resource "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
52
52
route_table_id = aws_route_table. public [0 ]. id
53
53
}
54
54
@@ -170,10 +170,6 @@ resource "aws_launch_template" "x86" {
170
170
subnet_id = aws_subnet. public [0 ]. id
171
171
}
172
172
173
- placement {
174
- availability_zone = var. availability-zone
175
- }
176
-
177
173
tag_specifications {
178
174
resource_type = " instance"
179
175
tags = merge (var. tags , { " depot-connection" = var.connection- id })
@@ -211,10 +207,6 @@ resource "aws_launch_template" "arm" {
211
207
subnet_id = aws_subnet. public [0 ]. id
212
208
}
213
209
214
- placement {
215
- availability_zone = var. availability-zone
216
- }
217
-
218
210
tag_specifications {
219
211
resource_type = " instance"
220
212
tags = merge (var. tags , { " depot-connection" = var.connection- id })
@@ -311,16 +303,15 @@ resource "aws_iam_role" "cloud-agent" {
311
303
{
312
304
Action = [" ec2:RunInstances" ]
313
305
Effect = " Allow"
314
- Resource = [
306
+ Resource = concat ( [
315
307
aws_launch_template . arm [0 ]. arn ,
316
308
aws_launch_template . x86 [0 ]. arn ,
317
309
aws_security_group . instance-buildkit [0 ]. arn ,
318
310
aws_security_group . instance-default [0 ]. arn ,
319
- aws_subnet.public[0 ].arn,
320
311
" arn:aws:ec2:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :network-interface/*" ,
321
312
" arn:aws:ec2:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :volume/*" ,
322
313
" arn:aws:ec2:${ data . aws_region . current . name } ::image/*" ,
323
- ]
314
+ ], [ for s in aws_subnet . public : s . arn ])
324
315
},
325
316
326
317
{
@@ -413,12 +404,13 @@ resource "aws_ecs_task_definition" "cloud-agent" {
413
404
essential = true
414
405
environment = concat (
415
406
[
416
- { name = " CLOUD_AGENT_AWS_AVAILABILITY_ZONE" , value = var.availability- zone },
407
+ { name = " CLOUD_AGENT_AWS_AVAILABILITY_ZONE" , value = var.subnets[ 0 ]. availability- zone },
417
408
{ name = " CLOUD_AGENT_AWS_LAUNCH_TEMPLATE_ARM" , value = aws_launch_template.arm[0 ].id },
418
409
{ name = " CLOUD_AGENT_AWS_LAUNCH_TEMPLATE_X86" , value = aws_launch_template.x86[0 ].id },
419
410
{ name = " CLOUD_AGENT_AWS_SG_BUILDKIT" , value = aws_security_group.instance- buildkit[0 ].id },
420
411
{ name = " CLOUD_AGENT_AWS_SG_DEFAULT" , value = aws_security_group.instance- default[0 ].id },
421
412
{ name = " CLOUD_AGENT_AWS_SUBNET_ID" , value = aws_subnet.public[0 ].id },
413
+ { name = " CLOUD_AGENT_AWS_SUBNETS" , value = jsonencode (aws_subnet. public ) },
422
414
{ name = " CLOUD_AGENT_CLUSTER_ARN" , value = aws_ecs_cluster.cloud- agent[0 ].arn },
423
415
{ name = " CLOUD_AGENT_CONNECTION_ID" , value = var.connection- id },
424
416
{ name = " CLOUD_AGENT_SERVICE_NAME" , value = local.service- name },
@@ -456,7 +448,7 @@ resource "aws_ecs_service" "cloud-agent" {
456
448
457
449
network_configuration {
458
450
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 ]
460
452
assign_public_ip = true
461
453
}
462
454
0 commit comments