71 lines
2.1 KiB
Terraform
71 lines
2.1 KiB
Terraform
|
resource "aws_secretsmanager_secret" "hff_entry_forms_api" {
|
||
|
name = "${local.environment_name}-Config"
|
||
|
tags = { Environment = local.environment_name }
|
||
|
}
|
||
|
|
||
|
resource "aws_ecs_task_definition" "hff_entry_forms_api" {
|
||
|
family = local.environment_name
|
||
|
network_mode = "bridge"
|
||
|
requires_compatibilities = ["EC2"]
|
||
|
execution_role_arn = aws_iam_role.ecs_task.arn
|
||
|
|
||
|
# See https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html
|
||
|
container_definitions = jsonencode([
|
||
|
{
|
||
|
name = local.environment_name
|
||
|
image = "${var.ecr_repo.repository_url}:${data.external.git_describe.result.version}"
|
||
|
cpu = 128
|
||
|
memory = 128
|
||
|
memoryReservation = 32
|
||
|
environment = [
|
||
|
{
|
||
|
name = "PORT"
|
||
|
value = "80"
|
||
|
}
|
||
|
]
|
||
|
portMappings = [
|
||
|
{
|
||
|
protocol = "tcp"
|
||
|
containerPort = 80
|
||
|
}
|
||
|
]
|
||
|
secrets = [
|
||
|
{
|
||
|
name = "INTEGRATION_TOKEN"
|
||
|
description = "Connection string with user credentials."
|
||
|
valueFrom = "${aws_secretsmanager_secret.hff_entry_forms_api.arn}:integrationToken::"
|
||
|
},
|
||
|
{
|
||
|
name = "KNOWN_ORIGINS"
|
||
|
description = "Connection string with user credentials."
|
||
|
valueFrom = "${aws_secretsmanager_secret.hff_entry_forms_api.arn}:knownOrigins::"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
])
|
||
|
|
||
|
tags = {
|
||
|
Name = local.api_domain_name
|
||
|
Environment = local.environment_name
|
||
|
}
|
||
|
}
|
||
|
|
||
|
resource "aws_ecs_service" "hff_entry_forms_api" {
|
||
|
name = local.environment_name
|
||
|
cluster = data.terraform_remote_state.jdbsoft.outputs.aws_ecs_cluster_ortis.id
|
||
|
task_definition = aws_ecs_task_definition.hff_entry_forms_api.arn
|
||
|
desired_count = 1
|
||
|
launch_type = "EC2"
|
||
|
|
||
|
load_balancer {
|
||
|
target_group_arn = aws_lb_target_group.hff_entry_forms_api.arn
|
||
|
container_name = local.environment_name
|
||
|
container_port = 80
|
||
|
}
|
||
|
|
||
|
tags = {
|
||
|
Name = local.api_domain_name
|
||
|
Environment = local.environment_name
|
||
|
}
|
||
|
}
|