Skip to content

Commit 150486a

Browse files
committed
Add ECS schedule tasks module for forms admin
This provides a place to easily define the schedule tasks.
1 parent ba8c73d commit 150486a

3 files changed

Lines changed: 33 additions & 0 deletions

File tree

infra/deployments/forms/forms-admin/main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ module "forms_admin" {
3434
eventbridge_dead_letter_queue_arn = data.terraform_remote_state.forms_environment.outputs.eventbridge_dead_letter_queue_arn
3535
zendesk_sns_topic_arn = data.terraform_remote_state.forms_environment.outputs.zendesk_alert_eu_west_2_topic_arn
3636
ecs_cluster_arn = data.terraform_remote_state.forms_environment.outputs.ecs_cluster_arn
37+
ecs_events_role_arn = data.terraform_remote_state.forms_environment.outputs.ecs_events_role_arn
3738
alb_arn_suffix = data.terraform_remote_state.forms_environment.outputs.alb_arn_suffix
3839
alb_listener_arn = data.terraform_remote_state.forms_environment.outputs.alb_main_listener_arn
3940
internal_alb_listener_arn = data.terraform_remote_state.forms_environment.outputs.internal_alb_listener_arn
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
locals {
2+
scheduled_tasks = {}
3+
}
4+
5+
module "scheduled_tasks" {
6+
for_each = {
7+
for task_name, task in local.scheduled_tasks : task_name => task
8+
if task.enabled
9+
}
10+
source = "../ecs-scheduled-task"
11+
12+
task_name = "forms-admin-${replace(each.key, "_", "-")}"
13+
schedule_expression = each.value.schedule_expression
14+
command = each.value.command
15+
ecs_cluster_arn = var.ecs_cluster_arn
16+
scheduler_role_arn = var.ecs_events_role_arn
17+
eventbridge_dead_letter_queue_arn = var.eventbridge_dead_letter_queue_arn
18+
base_task_container_definition = module.ecs_service.task_container_definition
19+
application_log_group_name = module.ecs_service.application_log_group_name
20+
execution_role_arn = module.ecs_service.task_definition.execution_role_arn
21+
task_role_arn = module.ecs_service.task_definition.task_role_arn
22+
requires_compatibilities = module.ecs_service.task_definition.requires_compatibilities
23+
cpu = module.ecs_service.task_definition.cpu
24+
memory = module.ecs_service.task_definition.memory
25+
network_security_groups = module.ecs_service.service.network_configuration[0].security_groups
26+
network_subnets = module.ecs_service.service.network_configuration[0].subnets
27+
}

infra/modules/forms-admin/variables.tf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,11 @@ variable "ecs_cluster_arn" {
143143
description = "The arn for the ECS cluster"
144144
}
145145

146+
variable "ecs_events_role_arn" {
147+
type = string
148+
description = "The arn for the shared ECS Events role used by scheduled tasks"
149+
}
150+
146151
variable "alb_arn_suffix" {
147152
type = string
148153
description = "The suffix of the Application Load Balancer ARN. Used with CloudWatch metrics"

0 commit comments

Comments
 (0)