Skip to content

Commit 1c75d68

Browse files
every resource should be turned off
1 parent c9128d2 commit 1c75d68

File tree

9 files changed

+24
-16
lines changed

9 files changed

+24
-16
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ No modules.
177177
|------|-------------|------|---------|:--------:|
178178
| <a name="input_cluster_id"></a> [cluster\_id](#input\_cluster\_id) | ECS Cluster ARN. | `string` | n/a | yes |
179179
| <a name="input_cluster_name"></a> [cluster\_name](#input\_cluster\_name) | ECS Cluster name. | `string` | n/a | yes |
180+
| <a name="input_create"></a> [create](#input\_create) | Controls if resources should be created (affects nearly all resources) | `bool` | `true` | no |
180181
| <a name="input_iam"></a> [iam](#input\_iam) | IAM actions and resource permissions. | `any` | `{}` | no |
181182
| <a name="input_lb"></a> [lb](#input\_lb) | The Load Balancer configuration for the service. A health block containing health check settings for the ALB target groups. See https://www.terraform.io/docs/providers/aws/r/lb_target_group.html#health_check for defaults. | `any` | `{}` | no |
182183
| <a name="input_log_configuration"></a> [log\_configuration](#input\_log\_configuration) | The log configuration for the service. | `any` | `{}` | no |

ecs.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
resource "aws_ecs_task_definition" "this" {
2-
count = try(var.service.create, false) ? 1 : 0
2+
count = var.create && try(var.service.create, false) ? 1 : 0
33

44
family = try(var.service.family, format("%s-task", var.name_prefix))
55
network_mode = try(var.service.network_mode, local.defaults.network_mode)
@@ -16,7 +16,7 @@ resource "aws_ecs_task_definition" "this" {
1616
}
1717

1818
resource "aws_ecs_service" "this" {
19-
count = try(var.service.create, false) ? 1 : 0
19+
count = var.create && try(var.service.create, false) ? 1 : 0
2020

2121
name = local.service_name
2222
cluster = local.cluster_id

iam.tf

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# IAM Actions
33
################################################################################
44
resource "aws_iam_role" "task_execution_role" {
5-
count = try(var.iam.create, false) ? 1 : 0
5+
count = var.create && try(var.iam.create, false) ? 1 : 0
66
name = format("%s-ecs-task-execution-role", var.name_prefix)
77
tags = var.tags
88

@@ -24,13 +24,13 @@ EOF
2424
}
2525

2626
resource "aws_iam_role_policy_attachment" "task_execution_role_policy_attachment" {
27-
for_each = { for k, v in local.iam_role_policies : k => v if var.iam.create }
27+
for_each = { for k, v in local.iam_role_policies : k => v if var.create && var.iam.create }
2828
role = aws_iam_role.task_execution_role[0].id
2929
policy_arn = each.value
3030
}
3131

3232
resource "aws_iam_role" "task_role" {
33-
count = try(var.iam.create, false) ? 1 : 0
33+
count = var.create && try(var.iam.create, false) ? 1 : 0
3434
name = format("%s-ecs-task-role", var.name_prefix)
3535
tags = var.tags
3636

@@ -53,7 +53,7 @@ EOF
5353
}
5454

5555
resource "aws_iam_role_policy" "task_additional_policies_attach" {
56-
for_each = { for k, v in var.iam.additional_policies : k => v if var.iam.create }
56+
for_each = { for k, v in var.iam.additional_policies : k => v if var.create && var.iam.create }
5757

5858
name = format("%s-%s-ecs-task-service-permissions", var.name_prefix, each.key)
5959
role = aws_iam_role.task_role[0].name
@@ -64,14 +64,14 @@ resource "aws_iam_role_policy" "task_additional_policies_attach" {
6464
# ECS Autoscaling
6565
################################################################################
6666
resource "aws_iam_role" "autoscaling" {
67-
count = try(var.scaling.create, false) && try(var.scaling.create_iam_role, false) ? 1 : 0
67+
count = var.create && try(var.scaling.create, false) && try(var.scaling.create_iam_role, false) ? 1 : 0
6868

6969
name = format("%s-appautoscaling-role", local.service_name)
7070
assume_role_policy = file("${path.module}/templates/autoscaling-role.json")
7171
}
7272

7373
resource "aws_iam_role_policy" "autoscaling" {
74-
count = try(var.scaling.create, false) && try(var.scaling.create_iam_role, false) ? 1 : 0
74+
count = var.create && try(var.scaling.create, false) && try(var.scaling.create_iam_role, false) ? 1 : 0
7575

7676
name = format("%s-appautoscaling-policy", local.service_name)
7777
policy = file("${path.module}/templates/autoscaling-policy.json")

lb.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ resource "random_string" "tg" {
99
}
1010

1111
resource "aws_lb_target_group" "this" {
12-
count = try(var.lb.create, false) ? 1 : 0
12+
count = var.create && try(var.lb.create, false) ? 1 : 0
1313
# "name" cannot be longer than 32 characters
1414
name = substr(format("%s-%s-tg-ecs", var.name_prefix, random_string.tg.id), 0, 32)
1515
port = var.lb.port
@@ -46,7 +46,7 @@ resource "aws_lb_target_group" "this" {
4646
}
4747

4848
resource "aws_lb_listener_rule" "this" {
49-
count = try(var.lb.create, false) ? 1 : 0
49+
count = var.create && try(var.lb.create, false) ? 1 : 0
5050

5151
listener_arn = var.lb.listener_arn
5252
priority = var.lb.priority

scaling.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
resource "aws_appautoscaling_target" "this" {
2-
count = try(var.scaling.create, false) ? 1 : 0
2+
count = var.create && try(var.scaling.create, false) ? 1 : 0
33

44
resource_id = format("service/%s/%s", local.cluster_name, local.service_name)
55
min_capacity = var.scaling.min_capacity
@@ -12,7 +12,7 @@ resource "aws_appautoscaling_target" "this" {
1212
}
1313

1414
resource "aws_appautoscaling_policy" "ecs_cpu_policy" {
15-
count = try(var.scaling.create, false) ? 1 : 0
15+
count = var.create && try(var.scaling.create, false) ? 1 : 0
1616

1717
name = format("%s-%s-cpu-autoscaling", local.cluster_name, local.service_name)
1818
policy_type = "TargetTrackingScaling"

service-discovery.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
resource "aws_service_discovery_service" "this" {
2-
count = try(var.sds.create, false) ? 1 : 0
2+
count = var.create && try(var.sds.create, false) ? 1 : 0
33

44
name = var.name
55
description = format("Service Discovery Service for --%s--.", var.name)

sg.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
resource "aws_security_group" "this" {
2-
count = try(var.sg.create, false) ? 1 : 0
2+
count = var.create && try(var.sg.create, false) ? 1 : 0
33

44
name = format("%s-sg-task", var.name_prefix)
55
vpc_id = var.vpc_id
@@ -11,7 +11,7 @@ resource "aws_security_group" "this" {
1111
}
1212

1313
resource "aws_security_group_rule" "cluster" {
14-
for_each = { for k, v in var.sg.group_rules : k => v if var.sg.create }
14+
for_each = { for k, v in var.sg.group_rules : k => v if var.create && var.sg.create }
1515

1616
# Required
1717
security_group_id = aws_security_group.this[0].id

telemetry.tf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
resource "aws_cloudwatch_log_group" "this" {
22

3-
for_each = var.log_configuration.log_group_names
3+
for_each = { for k, v in var.service.container_definitions : k => v.logConfiguration
4+
if var.create && v.logConfiguration.logDriver == "awslogs" }
45

56
name = each.value.options.awslogs-group
67
retention_in_days = try(var.log_configuration.retention_in_days, local.defaults.retention_in_days)

vars.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
variable "create" {
2+
description = "Controls if resources should be created (affects nearly all resources)"
3+
type = bool
4+
default = true
5+
}
6+
17
variable "name" {
28
description = "Resource names that do not require prefix"
39
type = string

0 commit comments

Comments
 (0)