Skip to content

Commit

Permalink
fix external task definition must exist before first run
Browse files Browse the repository at this point in the history
  • Loading branch information
mightyguava committed Jun 5, 2023
1 parent 423cecd commit 7bbb97f
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 7 deletions.
11 changes: 6 additions & 5 deletions main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ locals {
create_exec_role = local.enabled && length(var.task_exec_role_arn) == 0
enable_ecs_service_role = module.this.enabled && var.network_mode != "awsvpc" && length(var.ecs_load_balancers) >= 1
create_security_group = local.enabled && var.network_mode == "awsvpc" && var.security_group_enabled
create_task_definition = local.enabled && length(var.task_definition) == 0

volumes = concat(var.docker_volumes, var.efs_volumes, var.fsx_volumes, var.bind_mount_volumes)

Expand Down Expand Up @@ -46,7 +47,7 @@ module "exec_label" {
}

resource "aws_ecs_task_definition" "default" {
count = local.enabled && var.task_definition == null ? 1 : 0
count = local.create_task_definition
family = module.this.id
container_definitions = var.container_definition_json
requires_compatibilities = [var.launch_type]
Expand Down Expand Up @@ -360,7 +361,7 @@ resource "aws_security_group_rule" "nlb" {
resource "aws_ecs_service" "ignore_changes_task_definition" {
count = local.ecs_service_enabled && var.ignore_changes_task_definition && !var.ignore_changes_desired_count ? 1 : 0
name = module.this.id
task_definition = coalesce(var.task_definition, "${join("", aws_ecs_task_definition.default.*.family)}:${join("", aws_ecs_task_definition.default.*.revision)}")
task_definition = local.create_task_definition ? "${join("", aws_ecs_task_definition.default.*.family)}:${join("", aws_ecs_task_definition.default.*.revision)}" : var.task_definition[0]
desired_count = var.desired_count
deployment_maximum_percent = var.deployment_maximum_percent
deployment_minimum_healthy_percent = var.deployment_minimum_healthy_percent
Expand Down Expand Up @@ -459,7 +460,7 @@ resource "aws_ecs_service" "ignore_changes_task_definition" {
resource "aws_ecs_service" "ignore_changes_task_definition_and_desired_count" {
count = local.ecs_service_enabled && var.ignore_changes_task_definition && var.ignore_changes_desired_count ? 1 : 0
name = module.this.id
task_definition = coalesce(var.task_definition, "${join("", aws_ecs_task_definition.default.*.family)}:${join("", aws_ecs_task_definition.default.*.revision)}")
task_definition = local.create_task_definition ? "${join("", aws_ecs_task_definition.default.*.family)}:${join("", aws_ecs_task_definition.default.*.revision)}" : var.task_definition[0]
desired_count = var.desired_count
deployment_maximum_percent = var.deployment_maximum_percent
deployment_minimum_healthy_percent = var.deployment_minimum_healthy_percent
Expand Down Expand Up @@ -558,7 +559,7 @@ resource "aws_ecs_service" "ignore_changes_task_definition_and_desired_count" {
resource "aws_ecs_service" "ignore_changes_desired_count" {
count = local.ecs_service_enabled && !var.ignore_changes_task_definition && var.ignore_changes_desired_count ? 1 : 0
name = module.this.id
task_definition = coalesce(var.task_definition, "${join("", aws_ecs_task_definition.default.*.family)}:${join("", aws_ecs_task_definition.default.*.revision)}")
task_definition = local.create_task_definition ? "${join("", aws_ecs_task_definition.default.*.family)}:${join("", aws_ecs_task_definition.default.*.revision)}" : var.task_definition[0]
desired_count = var.desired_count
deployment_maximum_percent = var.deployment_maximum_percent
deployment_minimum_healthy_percent = var.deployment_minimum_healthy_percent
Expand Down Expand Up @@ -657,7 +658,7 @@ resource "aws_ecs_service" "ignore_changes_desired_count" {
resource "aws_ecs_service" "default" {
count = local.ecs_service_enabled && !var.ignore_changes_task_definition && !var.ignore_changes_desired_count ? 1 : 0
name = module.this.id
task_definition = coalesce(var.task_definition, "${join("", aws_ecs_task_definition.default.*.family)}:${join("", aws_ecs_task_definition.default.*.revision)}")
task_definition = local.create_task_definition ? "${join("", aws_ecs_task_definition.default.*.family)}:${join("", aws_ecs_task_definition.default.*.revision)}" : var.task_definition[0]
desired_count = var.desired_count
deployment_maximum_percent = var.deployment_maximum_percent
deployment_minimum_healthy_percent = var.deployment_minimum_healthy_percent
Expand Down
10 changes: 8 additions & 2 deletions variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -439,8 +439,14 @@ variable "wait_for_steady_state" {
}

variable "task_definition" {
type = string
description = "Reuse an existing task definition family and revision for the ecs service instead of creating one"
type = any
description = <<-EOT
A `list(string)` of zero or one ARNs of task definitions, to reuse
reuse an existing task definition family and revision for the ecs
service instead of creating one
DEPRECATED: you can also pass a `string` with the ARN, but that
string must be known a "plan" time.
EOT
default = null
}

Expand Down

0 comments on commit 7bbb97f

Please sign in to comment.