Skip to content

Commit cc5c309

Browse files
Implements Sidecar support (#56)
Co-authored-by: Jared Darling <[email protected]>
1 parent 18a945f commit cc5c309

File tree

3 files changed

+14
-15
lines changed

3 files changed

+14
-15
lines changed

examples/multiple-containers/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ module "td" {
1616
source = "../../"
1717
name_prefix = "multiple-containers"
1818

19-
containers = [
19+
additional_containers = [
2020
module.container-definition-1.json_map_object,
2121
module.container-definition-2.json_map_object,
2222
]

main.tf

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ module "container_definition" {
3939

4040
command = var.command
4141
container_cpu = var.container_cpu
42-
container_definition = var.container_definition
42+
container_definition = var.container_definition_overrides
4343
container_depends_on = var.container_depends_on
4444
container_image = var.container_image
4545
container_memory = var.container_memory
@@ -83,15 +83,14 @@ module "container_definition" {
8383

8484
# Task Definition
8585
resource "aws_ecs_task_definition" "td" {
86-
container_definitions = length(var.containers) == 0 ? "[${module.container_definition.json_map_encoded}]" : jsonencode(var.containers)
87-
family = var.name_prefix
88-
89-
cpu = var.container_cpu
90-
task_role_arn = var.task_role_arn == null ? aws_iam_role.ecs_task_execution_role[0].arn : var.task_role_arn
91-
execution_role_arn = var.execution_role_arn == null ? aws_iam_role.ecs_task_execution_role[0].arn : var.execution_role_arn
92-
ipc_mode = var.ipc_mode
93-
memory = var.container_memory
94-
network_mode = "awsvpc" # awsvpc required for Fargate tasks
86+
container_definitions = jsonencode(concat(var.additional_containers, [module.container_definition.json_map_object]))
87+
cpu = var.container_cpu
88+
execution_role_arn = var.execution_role_arn == null ? aws_iam_role.ecs_task_execution_role[0].arn : var.execution_role_arn
89+
family = "${var.name_prefix}-td"
90+
ipc_mode = var.ipc_mode
91+
memory = var.container_memory
92+
network_mode = "awsvpc" # awsvpc required for Fargate tasks
93+
task_role_arn = var.task_role_arn == null ? aws_iam_role.ecs_task_execution_role[0].arn : var.task_role_arn
9594

9695
runtime_platform {
9796
cpu_architecture = var.runtime_platform_cpu_architecture

variables.tf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ variable "container_cpu" {
2727
default = 1024 # 1 vCPU
2828
}
2929

30-
variable "container_definition" {
30+
variable "container_definition_overrides" {
3131
type = map(any)
3232
description = "Container definition overrides which allows for extra keys or overriding existing keys."
3333
default = {}
@@ -340,10 +340,10 @@ variable "working_directory" {
340340
#------------------------------------------------------------------------------
341341
# AWS ECS Task Definition Variables
342342
#------------------------------------------------------------------------------
343-
variable "containers" {
343+
variable "additional_containers" {
344+
description = "Additional container definitions (sidecars) to use for the task."
345+
default = [] #Use json_map_object from outputs of cloudposse/ecs-container-definition/aws
344346
type = any
345-
description = "Container definitions to use for the task. If this is used, all other container options will be ignored."
346-
default = []
347347
}
348348

349349
variable "ecs_task_execution_role_custom_policies" {

0 commit comments

Comments
 (0)