Skip to content

Commit 9997bfa

Browse files
committed
feat: add managed storage configuration support to ECS cluster module
1 parent 3837afb commit 9997bfa

File tree

8 files changed

+35
-1
lines changed

8 files changed

+35
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,7 @@ No resources.
197197
| <a name="input_create_task_exec_policy"></a> [create\_task\_exec\_policy](#input\_create\_task\_exec\_policy) | Determines whether the ECS task definition IAM policy should be created. This includes permissions included in AmazonECSTaskExecutionRolePolicy as well as access to secrets and SSM parameters | `bool` | `true` | no |
198198
| <a name="input_default_capacity_provider_use_fargate"></a> [default\_capacity\_provider\_use\_fargate](#input\_default\_capacity\_provider\_use\_fargate) | Determines whether to use Fargate or autoscaling for default capacity provider strategy | `bool` | `true` | no |
199199
| <a name="input_fargate_capacity_providers"></a> [fargate\_capacity\_providers](#input\_fargate\_capacity\_providers) | Map of Fargate capacity provider definitions to use for the cluster | `any` | `{}` | no |
200+
| <a name="input_managed_storage_configuration"></a> [managed\_storage\_configuration](#input\_managed\_storage\_configuration) | Configuration for the managed storage | `any` | `{}` | no |
200201
| <a name="input_services"></a> [services](#input\_services) | Map of service definitions to create | `any` | `{}` | no |
201202
| <a name="input_tags"></a> [tags](#input\_tags) | A map of tags to add to all resources | `map(string)` | `{}` | no |
202203
| <a name="input_task_exec_iam_role_description"></a> [task\_exec\_iam\_role\_description](#input\_task\_exec\_iam\_role\_description) | Description of the role | `string` | `null` | no |

main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ module "cluster" {
1212
cluster_configuration = var.cluster_configuration
1313
cluster_settings = var.cluster_settings
1414
cluster_service_connect_defaults = var.cluster_service_connect_defaults
15-
15+
managed_storage_configuration = var.managed_storage_configuration
1616
# Cluster Cloudwatch log group
1717
create_cloudwatch_log_group = var.create_cloudwatch_log_group
1818
cloudwatch_log_group_name = var.cloudwatch_log_group_name

modules/cluster/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ No modules.
181181
| <a name="input_create_task_exec_policy"></a> [create\_task\_exec\_policy](#input\_create\_task\_exec\_policy) | Determines whether the ECS task definition IAM policy should be created. This includes permissions included in AmazonECSTaskExecutionRolePolicy as well as access to secrets and SSM parameters | `bool` | `true` | no |
182182
| <a name="input_default_capacity_provider_use_fargate"></a> [default\_capacity\_provider\_use\_fargate](#input\_default\_capacity\_provider\_use\_fargate) | Determines whether to use Fargate or autoscaling for default capacity provider strategy | `bool` | `true` | no |
183183
| <a name="input_fargate_capacity_providers"></a> [fargate\_capacity\_providers](#input\_fargate\_capacity\_providers) | Map of Fargate capacity provider definitions to use for the cluster | `any` | `{}` | no |
184+
| <a name="input_managed_storage_configuration"></a> [managed\_storage\_configuration](#input\_managed\_storage\_configuration) | Configuration for the managed storage | `any` | `{}` | no |
184185
| <a name="input_tags"></a> [tags](#input\_tags) | A map of tags to add to all resources | `map(string)` | `{}` | no |
185186
| <a name="input_task_exec_iam_role_description"></a> [task\_exec\_iam\_role\_description](#input\_task\_exec\_iam\_role\_description) | Description of the role | `string` | `null` | no |
186187
| <a name="input_task_exec_iam_role_name"></a> [task\_exec\_iam\_role\_name](#input\_task\_exec\_iam\_role\_name) | Name to use on IAM role created | `string` | `null` | no |

modules/cluster/main.tf

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,15 @@ resource "aws_ecs_cluster" "this" {
4040
}
4141
}
4242
}
43+
44+
dynamic "managed_storage_configuration" {
45+
for_each = try([var.managed_storage_configuration], [])
46+
47+
content {
48+
fargate_ephemeral_storage_kms_key_id = try(managed_storage_configuration.value.fargate_ephemeral_storage_kms_key_id, null)
49+
kms_key_id = try(managed_storage_configuration.value.kms_key_id, null)
50+
}
51+
}
4352
}
4453
}
4554

@@ -67,6 +76,15 @@ resource "aws_ecs_cluster" "this" {
6776
}
6877
}
6978
}
79+
80+
dynamic "managed_storage_configuration" {
81+
for_each = try([var.managed_storage_configuration], [])
82+
83+
content {
84+
fargate_ephemeral_storage_kms_key_id = try(managed_storage_configuration.value.fargate_ephemeral_storage_kms_key_id, null)
85+
kms_key_id = try(managed_storage_configuration.value.kms_key_id, null)
86+
}
87+
}
7088
}
7189
}
7290

modules/cluster/variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@ variable "cluster_service_connect_defaults" {
4343
default = {}
4444
}
4545

46+
variable "managed_storage_configuration" {
47+
description = "Configuration for the managed storage"
48+
type = any
49+
default = {}
50+
}
51+
4652
################################################################################
4753
# CloudWatch Log Group
4854
################################################################################

variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,12 @@ variable "cluster_tags" {
4949
default = {}
5050
}
5151

52+
variable "managed_storage_configuration" {
53+
description = "Configuration for the managed storage"
54+
type = any
55+
default = {}
56+
}
57+
5258
################################################################################
5359
# CloudWatch Log Group
5460
################################################################################

wrappers/cluster/main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ module "wrapper" {
2323
create_task_exec_policy = try(each.value.create_task_exec_policy, var.defaults.create_task_exec_policy, true)
2424
default_capacity_provider_use_fargate = try(each.value.default_capacity_provider_use_fargate, var.defaults.default_capacity_provider_use_fargate, true)
2525
fargate_capacity_providers = try(each.value.fargate_capacity_providers, var.defaults.fargate_capacity_providers, {})
26+
managed_storage_configuration = try(each.value.managed_storage_configuration, var.defaults.managed_storage_configuration, {})
2627
tags = try(each.value.tags, var.defaults.tags, {})
2728
task_exec_iam_role_description = try(each.value.task_exec_iam_role_description, var.defaults.task_exec_iam_role_description, null)
2829
task_exec_iam_role_name = try(each.value.task_exec_iam_role_name, var.defaults.task_exec_iam_role_name, null)

wrappers/main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ module "wrapper" {
2424
create_task_exec_policy = try(each.value.create_task_exec_policy, var.defaults.create_task_exec_policy, true)
2525
default_capacity_provider_use_fargate = try(each.value.default_capacity_provider_use_fargate, var.defaults.default_capacity_provider_use_fargate, true)
2626
fargate_capacity_providers = try(each.value.fargate_capacity_providers, var.defaults.fargate_capacity_providers, {})
27+
managed_storage_configuration = try(each.value.managed_storage_configuration, var.defaults.managed_storage_configuration, {})
2728
services = try(each.value.services, var.defaults.services, {})
2829
tags = try(each.value.tags, var.defaults.tags, {})
2930
task_exec_iam_role_description = try(each.value.task_exec_iam_role_description, var.defaults.task_exec_iam_role_description, null)

0 commit comments

Comments
 (0)