JesusFilm / core

JFP DS Engineering Monorepo
https://docs.core.jesusfilm.org/
19 stars 12 forks source link

fix: add language field #3250

Closed zwsaqx closed 4 months ago

zwsaqx commented 6 months ago

Description

ignore this pull request I messed up the commits and merge. just work on the new one: https://github.com/JesusFilm/core/pull/3442 the toolbar should display and allow editing of the language directly

Issue

it currently doesnt

Link to Basecamp Todo

Solution

add language field

github-actions[bot] commented 6 months ago

The latest updates on your projects.

Name Status Preview Updated (UTC)
watch ✅ Ready Visit Preview Tue Sep 10 02:52:27 UTC 2024
github-actions[bot] commented 6 months ago

The latest updates on your projects.

Name Status Preview Updated (UTC)
journeys ✅ Ready Visit Preview Tue Sep 10 02:51:33 UTC 2024
github-actions[bot] commented 6 months ago

The latest updates on your projects.

Name Status Preview Updated (UTC)
journeys-admin ✅ Ready Visit Preview Tue Sep 10 02:52:24 UTC 2024
github-actions[bot] commented 5 months ago
Warnings
:warning: :exclamation: Big PR (65314 changes)

(change count - 65314): Pull Request size seems relatively large. If Pull Request contains multiple changes, split each into separate PR will helps faster, easier review.

Generated by :no_entry_sign: dangerJS against 97d3ff85f9199ecb24554f1dd2456467fbe49e12

github-actions[bot] commented 5 months ago

The latest updates on your projects.

Name Status Preview Updated (UTC)
videos-admin ✅ Ready Visit Preview Tue Sep 10 02:07:28 UTC 2024
jesus-film-bot commented 5 months ago

Ran Plan for 4 projects:

  1. dir: infrastructure workspace: default
  2. dir: infrastructure/resources/atlantis workspace: default
  3. dir: infrastructure/resources/doppler workspace: default
  4. dir: infrastructure/resources/terraform workspace: default

1. dir: infrastructure workspace: default

Show Output ```diff Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create ~ update in-place - destroy +/- create replacement and then destroy Terraform will perform the following actions: # module.prod.module.api-journeys.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/api-journeys-prod-service" name = "api-journeys-prod-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-prod:49" -> (known after apply) # (15 unchanged attributes hidden) # (5 unchanged blocks hidden) } # module.prod.module.api-journeys.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-prod:49" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-prod" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-api-journeys-prod-app" ~ secrets = [ # (26 unchanged elements hidden) { name = "POWER_BI_WORKSPACE_ID" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/prod/POWER_BI_WORKSPACE_ID" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/prod/REDIS_PORT" }, { name = "REDIS_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/prod/REDIS_URL" }, # (4 unchanged elements hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-api-journeys-prod-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-journeys-prod-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-api-journeys-prod" -> (known after apply) ~ revision = 49 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.prod.module.api-journeys.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/prod/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-journeys/prod/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-journeys/prod/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-languages.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/api-languages-prod-service" name = "api-languages-prod-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-languages-prod:37" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.prod.module.api-languages.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-languages-prod:37" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-languages-prod" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-api-languages-prod-app" ~ secrets = [ # (3 unchanged elements hidden) { name = "PG_DATABASE_URL_LANGUAGES" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/prod/PG_DATABASE_URL_LANGUAGES" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/prod/REDIS_PORT" }, { name = "REDIS_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/prod/REDIS_URL" }, # (2 unchanged elements hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-api-languages-prod-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-languages-prod-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-api-languages-prod" -> (known after apply) ~ revision = 37 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.prod.module.api-languages.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/prod/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-languages/prod/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-languages/prod/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/api-media-prod-service" name = "api-media-prod-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-prod:22" -> (known after apply) # (15 unchanged attributes hidden) # (5 unchanged blocks hidden) } # module.prod.module.api-media.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-prod:22" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-prod" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { ~ cpu = 1024 -> 512 ~ memory = 2048 -> 1024 name = "jfp-api-media-prod-app" ~ secrets = [ - { - name = "ALGOLIA_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_API_KEY" }, - { - name = "ALGOLIA_APPLICATION_ID" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_APPLICATION_ID" }, - { - name = "ALGOLIA_INDEX" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_INDEX" }, - { - name = "ARCLIGHT_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ARCLIGHT_API_KEY" }, - { - name = "ARCLIGHT_V3_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ARCLIGHT_V3_URL" }, - { - name = "BIG_QUERY_APPLICATION_JSON" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/BIG_QUERY_APPLICATION_JSON" }, { name = "CLOUDFLARE_ACCOUNT_ID" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/CLOUDFLARE_ACCOUNT_ID" }, # (1 unchanged element hidden) { name = "CLOUDFLARE_STREAM_TOKEN" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/CLOUDFLARE_STREAM_TOKEN" }, - { - name = "CROWDIN_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/CROWDIN_API_KEY" }, - { - name = "GATEWAY_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/GATEWAY_URL" }, { name = "GOOGLE_APPLICATION_JSON" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/GOOGLE_APPLICATION_JSON" }, { name = "PG_DATABASE_URL_MEDIA" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/PG_DATABASE_URL_MEDIA" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/REDIS_PORT" }, - { - name = "REDIS_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/REDIS_URL" }, { name = "SEGMIND_API_KEY" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/SEGMIND_API_KEY" }, # (2 unchanged elements hidden) ] - systemControls = [] # (7 unchanged attributes hidden) }, ~ { name = "jfp-api-media-prod-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-media-prod-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ cpu = "1024" -> "512" # forces replacement ~ id = "jfp-api-media-prod" -> (known after apply) ~ memory = "2048" -> "1024" # forces replacement ~ revision = 22 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (8 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_API_KEY"] will be destroyed # (because key ["ALGOLIA_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/ALGOLIA_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/ALGOLIA_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "ALGOLIA_API_KEY" } -> null - tags_all = { - "name" = "ALGOLIA_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 3 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_APPLICATION_ID"] will be destroyed # (because key ["ALGOLIA_APPLICATION_ID"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_APPLICATION_ID" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/ALGOLIA_APPLICATION_ID" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/ALGOLIA_APPLICATION_ID" -> null - overwrite = true -> null - tags = { - "name" = "ALGOLIA_APPLICATION_ID" } -> null - tags_all = { - "name" = "ALGOLIA_APPLICATION_ID" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_INDEX"] will be destroyed # (because key ["ALGOLIA_INDEX"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_INDEX" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/ALGOLIA_INDEX" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/ALGOLIA_INDEX" -> null - overwrite = true -> null - tags = { - "name" = "ALGOLIA_INDEX" } -> null - tags_all = { - "name" = "ALGOLIA_INDEX" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_API_KEY"] will be destroyed # (because key ["ARCLIGHT_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ARCLIGHT_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/ARCLIGHT_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/ARCLIGHT_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "ARCLIGHT_API_KEY" } -> null - tags_all = { - "name" = "ARCLIGHT_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 3 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_V3_URL"] will be destroyed # (because key ["ARCLIGHT_V3_URL"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ARCLIGHT_V3_URL" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/ARCLIGHT_V3_URL" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/ARCLIGHT_V3_URL" -> null - overwrite = true -> null - tags = { - "name" = "ARCLIGHT_V3_URL" } -> null - tags_all = { - "name" = "ARCLIGHT_V3_URL" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["BIG_QUERY_APPLICATION_JSON"] will be destroyed # (because key ["BIG_QUERY_APPLICATION_JSON"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/BIG_QUERY_APPLICATION_JSON" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/BIG_QUERY_APPLICATION_JSON" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/BIG_QUERY_APPLICATION_JSON" -> null - overwrite = true -> null - tags = { - "name" = "BIG_QUERY_APPLICATION_JSON" } -> null - tags_all = { - "name" = "BIG_QUERY_APPLICATION_JSON" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["CROWDIN_API_KEY"] will be destroyed # (because key ["CROWDIN_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/CROWDIN_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/CROWDIN_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/CROWDIN_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "CROWDIN_API_KEY" } -> null - tags_all = { - "name" = "CROWDIN_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["GATEWAY_URL"] will be destroyed # (because key ["GATEWAY_URL"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/GATEWAY_URL" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/GATEWAY_URL" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/GATEWAY_URL" -> null - overwrite = true -> null - tags = { - "name" = "GATEWAY_URL" } -> null - tags_all = { - "name" = "GATEWAY_URL" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["REDIS_URL"] will be destroyed # (because key ["REDIS_URL"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/REDIS_URL" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/REDIS_URL" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/REDIS_URL" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_URL" } -> null - tags_all = { - "name" = "REDIS_URL" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-nexus.module.alb-listener.aws_alb_listener.alb_listener will be created + resource "aws_alb_listener" "alb_listener" { + arn = (known after apply) + id = (known after apply) + load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-2:410965620680:loadbalancer/app/jfp-internal-alb-prod/ae1556aacf21465f" + port = 4007 + protocol = "HTTP" + ssl_policy = (known after apply) + tags_all = (known after apply) + default_action { + order = (known after apply) + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "No routes defined" + status_code = "200" } } } # module.prod.module.api-nexus.module.ecs-task.aws_alb_listener_rule.alb_listener_rule will be created + resource "aws_alb_listener_rule" "alb_listener_rule" { + arn = (known after apply) + id = (known after apply) + listener_arn = (known after apply) + priority = (known after apply) + tags_all = (known after apply) + action { + order = (known after apply) + target_group_arn = (known after apply) + type = "forward" } + condition { + host_header { + values = [ + "api-nexus.service.internal", ] } } } # module.prod.module.api-nexus.module.ecs-task.aws_alb_target_group.alb_target_group will be created + resource "aws_alb_target_group" "alb_target_group" { + arn = (known after apply) + arn_suffix = (known after apply) + connection_termination = false + deregistration_delay = "300" + id = (known after apply) + ip_address_type = (known after apply) + lambda_multi_value_headers_enabled = false + load_balancing_algorithm_type = (known after apply) + load_balancing_cross_zone_enabled = (known after apply) + name = "api-nexus-prod-tg" + port = 4007 + preserve_client_ip = (known after apply) + protocol = "HTTP" + protocol_version = (known after apply) + proxy_protocol_v2 = false + slow_start = 0 + tags_all = (known after apply) + target_type = "ip" + vpc_id = "vpc-0b722b0a1f7789afd" + health_check { + enabled = true + healthy_threshold = 2 + interval = 5 + matcher = (known after apply) + path = "/.well-known/apollo/server-health" + port = "traffic-port" + protocol = "HTTP" + timeout = 4 + unhealthy_threshold = 3 } + stickiness (known after apply) + target_failover (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_appautoscaling_policy.ecs_policy_cpu will be created + resource "aws_appautoscaling_policy" "ecs_policy_cpu" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-cpu-autoscaling-prod" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-prod/api-nexus-prod-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageCPUUtilization" } } } # module.prod.module.api-nexus.module.ecs-task.aws_appautoscaling_policy.ecs_policy_memory will be created + resource "aws_appautoscaling_policy" "ecs_policy_memory" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-memory-autoscaling-prod" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-prod/api-nexus-prod-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageMemoryUtilization" } } } # module.prod.module.api-nexus.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be created + resource "aws_appautoscaling_target" "service_autoscaling" { + arn = (known after apply) + id = (known after apply) + max_capacity = 2 + min_capacity = 1 + resource_id = "service/jfp-ecs-cluster-prod/api-nexus-prod-service" + role_arn = (known after apply) + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + tags_all = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_cloudwatch_log_group.ecs_cw_log_group will be created + resource "aws_cloudwatch_log_group" "ecs_cw_log_group" { + arn = (known after apply) + id = (known after apply) + name = "api-nexus-prod-logs" + name_prefix = (known after apply) + retention_in_days = 0 + skip_destroy = false + tags_all = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ecr_lifecycle_policy.ecr_policy will be created + resource "aws_ecr_lifecycle_policy" "ecr_policy" { + id = (known after apply) + policy = jsonencode( { + rules = [ + { + action = { + type = "expire" } + description = "Expire more than 10 images" + rulePriority = 1 + selection = { + countNumber = 10 + countType = "imageCountMoreThan" + tagStatus = "any" } }, ] } ) + registry_id = (known after apply) + repository = "jfp-api-nexus-prod" } # module.prod.module.api-nexus.module.ecs-task.aws_ecr_repository.ecr_repository will be created + resource "aws_ecr_repository" "ecr_repository" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "jfp-api-nexus-prod" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ecs_service.ecs_service will be created + resource "aws_ecs_service" "ecs_service" { + cluster = "arn:aws:ecs:us-east-2:410965620680:cluster/jfp-ecs-cluster-prod" + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = "FARGATE" + name = "api-nexus-prod-service" + platform_version = (known after apply) + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + load_balancer { + container_name = "jfp-api-nexus-prod-app" + container_port = 4007 + target_group_arn = (known after apply) # (1 unchanged attribute hidden) } + network_configuration { + assign_public_ip = false + security_groups = [ + "sg-02935fccc551bacd8", ] + subnets = [ + "subnet-02f4c2a33ace122c5", + "subnet-036663ddfdb3b94b0", + "subnet-05c389158df4b940a", ] } } # module.prod.module.api-nexus.module.ecs-task.aws_ecs_task_definition.ecs_task_definition will be created + resource "aws_ecs_task_definition" "ecs_task_definition" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "1024" + execution_role_arn = "arn:aws:iam::410965620680:role/jfp-ecs-task-execution-role" + family = "jfp-api-nexus-prod" + id = (known after apply) + memory = "2048" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_route53_record.record will be created + resource "aws_route53_record" "record" { + allow_overwrite = (known after apply) + fqdn = (known after apply) + id = (known after apply) + name = "api-nexus" + records = [ + "internal-jfp-internal-alb-prod-1581820397.us-east-2.elb.amazonaws.com", ] + ttl = 300 + type = "CNAME" + zone_id = "Z03223152FHL8WN66TI5X" } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_ACCESS_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/BUCKET_ACCESS_KEY" + overwrite = true + tags = { + "name" = "BUCKET_ACCESS_KEY" } + tags_all = { + "name" = "BUCKET_ACCESS_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_ENDPOINT"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/BUCKET_ENDPOINT" + overwrite = true + tags = { + "name" = "BUCKET_ENDPOINT" } + tags_all = { + "name" = "BUCKET_ENDPOINT" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_NAME"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/BUCKET_NAME" + overwrite = true + tags = { + "name" = "BUCKET_NAME" } + tags_all = { + "name" = "BUCKET_NAME" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_REGION"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/BUCKET_REGION" + overwrite = true + tags = { + "name" = "BUCKET_REGION" } + tags_all = { + "name" = "BUCKET_REGION" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_SECRET_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/BUCKET_SECRET_KEY" + overwrite = true + tags = { + "name" = "BUCKET_SECRET_KEY" } + tags_all = { + "name" = "BUCKET_SECRET_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["CLOUDFLARE_ACCOUNT_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/CLOUDFLARE_ACCOUNT_ID" + overwrite = true + tags = { + "name" = "CLOUDFLARE_ACCOUNT_ID" } + tags_all = { + "name" = "CLOUDFLARE_ACCOUNT_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["CLOUDFLARE_API_TOKEN"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/CLOUDFLARE_API_TOKEN" + overwrite = true + tags = { + "name" = "CLOUDFLARE_API_TOKEN" } + tags_all = { + "name" = "CLOUDFLARE_API_TOKEN" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["CLOUDFLARE_STREAM_TOKEN"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/CLOUDFLARE_STREAM_TOKEN" + overwrite = true + tags = { + "name" = "CLOUDFLARE_STREAM_TOKEN" } + tags_all = { + "name" = "CLOUDFLARE_STREAM_TOKEN" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["FIREBASE_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/FIREBASE_API_KEY" + overwrite = true + tags = { + "name" = "FIREBASE_API_KEY" } + tags_all = { + "name" = "FIREBASE_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/GOOGLE_API_KEY" + overwrite = true + tags = { + "name" = "GOOGLE_API_KEY" } + tags_all = { + "name" = "GOOGLE_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_APPLICATION_JSON"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/GOOGLE_APPLICATION_JSON" + overwrite = true + tags = { + "name" = "GOOGLE_APPLICATION_JSON" } + tags_all = { + "name" = "GOOGLE_APPLICATION_JSON" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_CLIENT_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/GOOGLE_CLIENT_ID" + overwrite = true + tags = { + "name" = "GOOGLE_CLIENT_ID" } + tags_all = { + "name" = "GOOGLE_CLIENT_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_CLIENT_SECRET"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/GOOGLE_CLIENT_SECRET" + overwrite = true + tags = { + "name" = "GOOGLE_CLIENT_SECRET" } + tags_all = { + "name" = "GOOGLE_CLIENT_SECRET" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_NEXUS"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/PG_DATABASE_URL_NEXUS" + overwrite = true + tags = { + "name" = "PG_DATABASE_URL_NEXUS" } + tags_all = { + "name" = "PG_DATABASE_URL_NEXUS" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["REDIS_HOST"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/REDIS_HOST" + overwrite = true + tags = { + "name" = "REDIS_HOST" } + tags_all = { + "name" = "REDIS_HOST" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-tags.module.alb-listener.aws_alb_listener.alb_listener will be created + resource "aws_alb_listener" "alb_listener" { + arn = (known after apply) + id = (known after apply) + load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-2:410965620680:loadbalancer/app/jfp-internal-alb-prod/ae1556aacf21465f" + port = 4006 + protocol = "HTTP" + ssl_policy = (known after apply) + tags_all = (known after apply) + default_action { + order = (known after apply) + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "No routes defined" + status_code = "200" } } } # module.prod.module.api-tags.module.ecs-task.aws_alb_listener_rule.alb_listener_rule will be created + resource "aws_alb_listener_rule" "alb_listener_rule" { + arn = (known after apply) + id = (known after apply) + listener_arn = (known after apply) + priority = (known after apply) + tags_all = (known after apply) + action { + order = (known after apply) + target_group_arn = (known after apply) + type = "forward" } + condition { + host_header { + values = [ + "api-tags.service.internal", ] } } } # module.prod.module.api-tags.module.ecs-task.aws_alb_target_group.alb_target_group will be created + resource "aws_alb_target_group" "alb_target_group" { + arn = (known after apply) + arn_suffix = (known after apply) + connection_termination = false + deregistration_delay = "300" + id = (known after apply) + ip_address_type = (known after apply) + lambda_multi_value_headers_enabled = false + load_balancing_algorithm_type = (known after apply) + load_balancing_cross_zone_enabled = (known after apply) + name = "api-tags-prod-tg" + port = 4006 + preserve_client_ip = (known after apply) + protocol = "HTTP" + protocol_version = (known after apply) + proxy_protocol_v2 = false + slow_start = 0 + tags_all = (known after apply) + target_type = "ip" + vpc_id = "vpc-0b722b0a1f7789afd" + health_check { + enabled = true + healthy_threshold = 2 + interval = 5 + matcher = (known after apply) + path = "/.well-known/apollo/server-health" + port = "traffic-port" + protocol = "HTTP" + timeout = 4 + unhealthy_threshold = 3 } + stickiness (known after apply) + target_failover (known after apply) } # module.prod.module.api-tags.module.ecs-task.aws_appautoscaling_policy.ecs_policy_cpu will be created + resource "aws_appautoscaling_policy" "ecs_policy_cpu" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-cpu-autoscaling-prod" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-prod/api-tags-prod-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageCPUUtilization" } } } # module.prod.module.api-tags.module.ecs-task.aws_appautoscaling_policy.ecs_policy_memory will be created + resource "aws_appautoscaling_policy" "ecs_policy_memory" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-memory-autoscaling-prod" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-prod/api-tags-prod-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageMemoryUtilization" } } } # module.prod.module.api-tags.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be created + resource "aws_appautoscaling_target" "service_autoscaling" { + arn = (known after apply) + id = (known after apply) + max_capacity = 2 + min_capacity = 1 + resource_id = "service/jfp-ecs-cluster-prod/api-tags-prod-service" + role_arn = (known after apply) + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + tags_all = (known after apply) } # module.prod.module.api-tags.module.ecs-task.aws_cloudwatch_log_group.ecs_cw_log_group will be created + resource "aws_cloudwatch_log_group" "ecs_cw_log_group" { + arn = (known after apply) + id = (known after apply) + name = "api-tags-prod-logs" + name_prefix = (known after apply) + retention_in_days = 0 + skip ```


Warning: Output length greater than max comment size. Continued in next comment.

jesus-film-bot commented 5 months ago

Continued plan output from previous comment.

Show Output ```diff _destroy = false + tags_all = (known after apply) } # module.prod.module.api-tags.module.ecs-task.aws_ecr_lifecycle_policy.ecr_policy will be created + resource "aws_ecr_lifecycle_policy" "ecr_policy" { + id = (known after apply) + policy = jsonencode( { + rules = [ + { + action = { + type = "expire" } + description = "Expire more than 10 images" + rulePriority = 1 + selection = { + countNumber = 10 + countType = "imageCountMoreThan" + tagStatus = "any" } }, ] } ) + registry_id = (known after apply) + repository = "jfp-api-tags-prod" } # module.prod.module.api-tags.module.ecs-task.aws_ecr_repository.ecr_repository will be created + resource "aws_ecr_repository" "ecr_repository" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "jfp-api-tags-prod" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) } # module.prod.module.api-tags.module.ecs-task.aws_ecs_service.ecs_service will be created + resource "aws_ecs_service" "ecs_service" { + cluster = "arn:aws:ecs:us-east-2:410965620680:cluster/jfp-ecs-cluster-prod" + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = "FARGATE" + name = "api-tags-prod-service" + platform_version = (known after apply) + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + load_balancer { + container_name = "jfp-api-tags-prod-app" + container_port = 4006 + target_group_arn = (known after apply) # (1 unchanged attribute hidden) } + network_configuration { + assign_public_ip = false + security_groups = [ + "sg-02935fccc551bacd8", ] + subnets = [ + "subnet-02f4c2a33ace122c5", + "subnet-036663ddfdb3b94b0", + "subnet-05c389158df4b940a", ] } } # module.prod.module.api-tags.module.ecs-task.aws_ecs_task_definition.ecs_task_definition will be created + resource "aws_ecs_task_definition" "ecs_task_definition" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "512" + execution_role_arn = "arn:aws:iam::410965620680:role/jfp-ecs-task-execution-role" + family = "jfp-api-tags-prod" + id = (known after apply) + memory = "1024" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) } # module.prod.module.api-tags.module.ecs-task.aws_route53_record.record will be created + resource "aws_route53_record" "record" { + allow_overwrite = (known after apply) + fqdn = (known after apply) + id = (known after apply) + name = "api-tags" + records = [ + "internal-jfp-internal-alb-prod-1581820397.us-east-2.elb.amazonaws.com", ] + ttl = 300 + type = "CNAME" + zone_id = "Z03223152FHL8WN66TI5X" } # module.prod.module.api-tags.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_TAGS"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-tags/prod/PG_DATABASE_URL_TAGS" + overwrite = true + tags = { + "name" = "PG_DATABASE_URL_TAGS" } + tags_all = { + "name" = "PG_DATABASE_URL_TAGS" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-users.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/api-users-prod-service" name = "api-users-prod-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-users-prod:41" -> (known after apply) # (15 unchanged attributes hidden) # (5 unchanged blocks hidden) } # module.prod.module.api-users.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-users-prod:41" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-users-prod" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-api-users-prod-app" ~ secrets = [ # (5 unchanged elements hidden) { name = "JOURNEYS_ADMIN_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/JOURNEYS_ADMIN_URL" }, - { - name = "NAT_ADDRESSES" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/NAT_ADDRESSES" }, { name = "PG_DATABASE_URL_USERS" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/PG_DATABASE_URL_USERS" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/REDIS_PORT" }, { name = "REDIS_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/REDIS_URL" }, # (1 unchanged element hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-api-users-prod-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-users-prod-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-api-users-prod" -> (known after apply) ~ revision = 41 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.prod.module.api-users.module.ecs-task.aws_ssm_parameter.parameters["NAT_ADDRESSES"] will be destroyed # (because key ["NAT_ADDRESSES"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/NAT_ADDRESSES" -> null - data_type = "text" -> null - id = "/ecs/api-users/prod/NAT_ADDRESSES" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-users/prod/NAT_ADDRESSES" -> null - overwrite = true -> null - tags = { - "name" = "NAT_ADDRESSES" } -> null - tags_all = { - "name" = "NAT_ADDRESSES" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-users.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-users/prod/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-users/prod/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-videos.module.alb-listener.aws_alb_listener.alb_listener will be created + resource "aws_alb_listener" "alb_listener" { + arn = (known after apply) + id = (known after apply) + load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-2:410965620680:loadbalancer/app/jfp-internal-alb-prod/ae1556aacf21465f" + port = 4004 + protocol = "HTTP" + ssl_policy = (known after apply) + tags_all = (known after apply) + default_action { + order = (known after apply) + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "No routes defined" + status_code = "200" } } } # module.prod.module.api-videos.module.ecs-task.aws_alb_listener_rule.alb_listener_rule will be created + resource "aws_alb_listener_rule" "alb_listener_rule" { + arn = (known after apply) + id = (known after apply) + listener_arn = (known after apply) + priority = (known after apply) + tags_all = (known after apply) + action { + order = (known after apply) + target_group_arn = (known after apply) + type = "forward" } + condition { + host_header { + values = [ + "api-videos.service.internal", ] } } } # module.prod.module.api-videos.module.ecs-task.aws_alb_target_group.alb_target_group will be created + resource "aws_alb_target_group" "alb_target_group" { + arn = (known after apply) + arn_suffix = (known after apply) + connection_termination = false + deregistration_delay = "300" + id = (known after apply) + ip_address_type = (known after apply) + lambda_multi_value_headers_enabled = false + load_balancing_algorithm_type = (known after apply) + load_balancing_cross_zone_enabled = (known after apply) + name = "api-videos-prod-tg" + port = 4004 + preserve_client_ip = (known after apply) + protocol = "HTTP" + protocol_version = (known after apply) + proxy_protocol_v2 = false + slow_start = 0 + tags_all = (known after apply) + target_type = "ip" + vpc_id = "vpc-0b722b0a1f7789afd" + health_check { + enabled = true + healthy_threshold = 2 + interval = 5 + matcher = (known after apply) + path = "/.well-known/apollo/server-health" + port = "traffic-port" + protocol = "HTTP" + timeout = 4 + unhealthy_threshold = 3 } + stickiness (known after apply) + target_failover (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_appautoscaling_policy.ecs_policy_cpu will be created + resource "aws_appautoscaling_policy" "ecs_policy_cpu" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-cpu-autoscaling-prod" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-prod/api-videos-prod-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageCPUUtilization" } } } # module.prod.module.api-videos.module.ecs-task.aws_appautoscaling_policy.ecs_policy_memory will be created + resource "aws_appautoscaling_policy" "ecs_policy_memory" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-memory-autoscaling-prod" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-prod/api-videos-prod-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageMemoryUtilization" } } } # module.prod.module.api-videos.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be created + resource "aws_appautoscaling_target" "service_autoscaling" { + arn = (known after apply) + id = (known after apply) + max_capacity = 2 + min_capacity = 1 + resource_id = "service/jfp-ecs-cluster-prod/api-videos-prod-service" + role_arn = (known after apply) + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + tags_all = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_cloudwatch_log_group.ecs_cw_log_group will be created + resource "aws_cloudwatch_log_group" "ecs_cw_log_group" { + arn = (known after apply) + id = (known after apply) + name = "api-videos-prod-logs" + name_prefix = (known after apply) + retention_in_days = 0 + skip_destroy = false + tags_all = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ecr_lifecycle_policy.ecr_policy will be created + resource "aws_ecr_lifecycle_policy" "ecr_policy" { + id = (known after apply) + policy = jsonencode( { + rules = [ + { + action = { + type = "expire" } + description = "Expire more than 10 images" + rulePriority = 1 + selection = { + countNumber = 10 + countType = "imageCountMoreThan" + tagStatus = "any" } }, ] } ) + registry_id = (known after apply) + repository = "jfp-api-videos-prod" } # module.prod.module.api-videos.module.ecs-task.aws_ecr_repository.ecr_repository will be created + resource "aws_ecr_repository" "ecr_repository" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "jfp-api-videos-prod" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ecs_service.ecs_service will be created + resource "aws_ecs_service" "ecs_service" { + cluster = "arn:aws:ecs:us-east-2:410965620680:cluster/jfp-ecs-cluster-prod" + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = "FARGATE" + name = "api-videos-prod-service" + platform_version = (known after apply) + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + load_balancer { + container_name = "jfp-api-videos-prod-app" + container_port = 4004 + target_group_arn = (known after apply) # (1 unchanged attribute hidden) } + network_configuration { + assign_public_ip = false + security_groups = [ + "sg-02935fccc551bacd8", ] + subnets = [ + "subnet-02f4c2a33ace122c5", + "subnet-036663ddfdb3b94b0", + "subnet-05c389158df4b940a", ] } } # module.prod.module.api-videos.module.ecs-task.aws_ecs_task_definition.ecs_task_definition will be created + resource "aws_ecs_task_definition" "ecs_task_definition" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "1024" + execution_role_arn = "arn:aws:iam::410965620680:role/jfp-ecs-task-execution-role" + family = "jfp-api-videos-prod" + id = (known after apply) + memory = "4096" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_route53_record.record will be created + resource "aws_route53_record" "record" { + allow_overwrite = (known after apply) + fqdn = (known after apply) + id = (known after apply) + name = "api-videos" + records = [ + "internal-jfp-internal-alb-prod-1581820397.us-east-2.elb.amazonaws.com", ] + ttl = 300 + type = "CNAME" + zone_id = "Z03223152FHL8WN66TI5X" } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/ALGOLIA_API_KEY" + overwrite = true + tags = { + "name" = "ALGOLIA_API_KEY" } + tags_all = { + "name" = "ALGOLIA_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_APPLICATION_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/ALGOLIA_APPLICATION_ID" + overwrite = true + tags = { + "name" = "ALGOLIA_APPLICATION_ID" } + tags_all = { + "name" = "ALGOLIA_APPLICATION_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_INDEX"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/ALGOLIA_INDEX" + overwrite = true + tags = { + "name" = "ALGOLIA_INDEX" } + tags_all = { + "name" = "ALGOLIA_INDEX" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/ARCLIGHT_API_KEY" + overwrite = true + tags = { + "name" = "ARCLIGHT_API_KEY" } + tags_all = { + "name" = "ARCLIGHT_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_V3_URL"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/ARCLIGHT_V3_URL" + overwrite = true + tags = { + "name" = "ARCLIGHT_V3_URL" } + tags_all = { + "name" = "ARCLIGHT_V3_URL" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["BIG_QUERY_APPLICATION_JSON"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/BIG_QUERY_APPLICATION_JSON" + overwrite = true + tags = { + "name" = "BIG_QUERY_APPLICATION_JSON" } + tags_all = { + "name" = "BIG_QUERY_APPLICATION_JSON" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["CROWDIN_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/CROWDIN_API_KEY" + overwrite = true + tags = { + "name" = "CROWDIN_API_KEY" } + tags_all = { + "name" = "CROWDIN_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["GATEWAY_URL"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/GATEWAY_URL" + overwrite = true + tags = { + "name" = "GATEWAY_URL" } + tags_all = { + "name" = "GATEWAY_URL" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_VIDEOS"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/PG_DATABASE_URL_VIDEOS" + overwrite = true + tags = { + "name" = "PG_DATABASE_URL_VIDEOS" } + tags_all = { + "name" = "PG_DATABASE_URL_VIDEOS" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["REDIS_URL"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/REDIS_URL" + overwrite = true + tags = { + "name" = "REDIS_URL" } + tags_all = { + "name" = "REDIS_URL" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.journeys-admin.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/journeys-admin-prod-service" name = "journeys-admin-prod-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-journeys-admin-prod:4" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.prod.module.journeys-admin.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-journeys-admin-prod:4" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-journeys-admin-prod" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-journeys-admin-prod-app" ~ secrets = [ # (4 unchanged elements hidden) { name = "LAUNCH_DARKLY_SDK_KEY" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/LAUNCH_DARKLY_SDK_KEY" }, - { - name = "NEXT_PUBLIC_ALGOLIA_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_API_KEY" }, - { - name = "NEXT_PUBLIC_ALGOLIA_APP_ID" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_APP_ID" }, - { - name = "NEXT_PUBLIC_ALGOLIA_INDEX" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_INDEX" }, { name = "NEXT_PUBLIC_CLOUDFLARE_STREAM_CUSTOMER_CODE" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_CLOUDFLARE_STREAM_CUSTOMER_CODE" }, # (16 unchanged elements hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-journeys-admin-prod-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-journeys-admin-prod-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-journeys-admin-prod" -> (known after apply) ~ revision = 4 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.prod.module.journeys-admin.module.ecs-task.aws_ssm_parameter.parameters["NEXT_PUBLIC_ALGOLIA_API_KEY"] will be destroyed # (because key ["NEXT_PUBLIC_ALGOLIA_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "NEXT_PUBLIC_ALGOLIA_API_KEY" } -> null - tags_all = { - "name" = "NEXT_PUBLIC_ALGOLIA_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.prod.module.journeys-admin.module.ecs-task.aws_ssm_parameter.parameters["NEXT_PUBLIC_ALGOLIA_APP_ID"] will be destroyed # (because key ["NEXT_PUBLIC_ALGOLIA_APP_ID"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_APP_ID" -> null - data_type = "text" -> null - id = "/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_APP_ID" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_APP_ID" -> null - overwrite = true -> null - tags = { - "name" = "NEXT_PUBLIC_ALGOLIA_APP_ID" } -> null - tags_all = { - "name" = "NEXT_PUBLIC_ALGOLIA_APP_ID" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.prod.module.journeys-admin.module.ecs-task.aws_ssm_parameter.parameters["NEXT_PUBLIC_ALGOLIA_INDEX"] will be destroyed # (because key ["NEXT_PUBLIC_ALGOLIA_INDEX"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_INDEX" -> null - data_type = "text" -> null - id = "/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_INDEX" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_INDEX" -> null - overwrite = true -> null - tags = { - "name" = "NEXT_PUBLIC_ALGOLIA_INDEX" } -> null - tags_all = { - "name" = "NEXT_PUBLIC_ALGOLIA_INDEX" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-journeys.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-journeys-stage-service" name = "api-journeys-stage-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-stage:40" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.stage.module.api-journeys.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-stage:40" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-stage" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-api-journeys-stage-app" ~ secrets = [ # (26 unchanged elements hidden) { name = "POWER_BI_WORKSPACE_ID" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/POWER_BI_WORKSPACE_ID" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/REDIS_PORT" }, { name = "REDIS_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/REDIS_URL" }, # (4 unchanged elements hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-api-journeys-stage-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-journeys-stage-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-api-journeys-stage" -> (known after apply) ~ revision = 40 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.stage.module.api-journeys.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-journeys/stage/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-journeys/stage/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-languages.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-languages-stage-service" name = "api-languages-stage-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-languages-stage:27" -> (known after apply) # (15 unchanged attributes hidden) # (5 unchanged blocks hidden) } # module.stage.module.api-languages.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-languages-stage:27" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-languages-stage" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-api-languages-stage-app" ~ secrets = [ # (3 unchanged elements hidden) { name = "PG_DATABASE_URL_LANGUAGES" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/stage/PG_DATABASE_URL_LANGUAGES" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/stage/REDIS_PORT" }, { name = "REDIS_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/stage/REDIS_URL" }, # (2 unchanged elements hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-api-languages-stage-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-languages-stage-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-api-languages-stage" -> (known after apply) ~ revision = 27 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.stage.module.api-languages.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/stage/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-languages/stage/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-languages/stage/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-media-stage-service" name = "api-media-stage-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-stage:20" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.stage.module.api-media.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-stage:20" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-stage" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { ~ cpu = 1024 -> 512 ~ memory = 2048 -> 1024 name = "jfp-api-media-stage-app" ~ secrets = [ - { - name = "ALGOLIA_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_API_KEY" }, - { - name = "ALGOLIA_APPLICATION_ID" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_APPLICATION_ID" }, - { - name = "ALGOLIA_INDEX" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_INDEX" }, - { - name = "ARCLIGHT_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ARCLIGHT_API_KEY" }, - { - name = "ARCLIGHT_V3_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ARCLIGHT_V3_URL" }, - { - name = "BIG_QUERY_APPLICATION_JSON" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/BIG_QUERY_APPLICATION_JSON" }, { name = "CLOUDFLARE_ACCOUNT_ID" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/CLOUDFLARE_ACCOUNT_ID" }, # (1 unchanged element hidden) { name = "CLOUDFLARE_STREAM_TOKEN" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/CLOUDFLARE_STREAM_TOKEN" }, - { - name = "CROWDIN_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/CROWDIN_API_KEY" }, - { - name = "GATEWAY_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/GATEWAY_URL" }, { name = "GOOGLE_APPLICATION_JSON" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/GOOGLE_APPLICATION_JSON" }, { name = "PG_DATABASE_URL_MEDIA" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/PG_DATABASE_URL_MEDIA" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/REDIS_PORT" }, - { - name = "REDIS_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/REDIS_URL" }, { name = "SEGMIND_API_KEY" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/SEGMIND_API_KEY" }, # (2 unchanged elements hidden) ] - systemControls = [] # (7 unchanged attributes hidden) }, ~ { name = "jfp-api-media-stage-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-media-stage-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ cpu = "1024" -> "512" # forces replacement ~ id = "jfp-api-media-stage" -> (known after apply) ~ memory = "2048" -> "1024" # forces replacement ~ revision = 20 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (8 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_API_KEY"] will be destroyed # (because key ["ALGOLIA_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/ALGOLIA_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/ALGOLIA_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "ALGOLIA_API_KEY" } -> null - tags_all = { - "name" = "ALGOLIA_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 3 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_APPLICATION_ID"] will be destroyed # (because key ["ALGOLIA_APPLICATION_ID"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_APPLICATION_ID" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/ALGOLIA_APPLICATION_ID" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/ALGOLIA_APPLICATION_ID" -> null - overwrite = true -> null - tags = { - "name" = "ALGOLIA_APPLICATION_ID" } -> null - tags_all = { - "name" = "ALGOLIA_APPLICATION_ID" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_INDEX"] will be destroyed # (because key ["ALGOLIA_INDEX"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_INDEX" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/ALGOLIA_INDEX" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/ALGOLIA_INDEX" -> null - overwrite = true -> null - tags = { - "name" = "ALGOLIA_INDEX" } -> null - tags_all = { - "name" = "ALGOLIA_INDEX" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_API_KEY"] will be destroyed # (because key ["ARCLIGHT_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ARCLIGHT_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/ARCLIGHT_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/ARCLIGHT_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "ARCLIGHT_API_KEY" } -> null - tags_all = { - "name" = "ARCLIGHT_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_V3_URL"] will be destroyed # (because key ["ARCLIGHT_V3_URL"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ARCLIGHT_V3_URL" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/ARCLIGHT_V3_URL" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/ARCLIGHT_V3_URL" -> null - overwrite = true -> null - tags = { - "name" = "ARCLIGHT_V3_URL" } -> null - tags_all = { - "name" = "ARCLIGHT_V3_URL" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["BIG_QUERY_APPLICATION_JSON"] will be destroyed # (because key ["BIG_QUERY_APPLICATION_JSON"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/BIG_QUERY_APPLICATION_JSON" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/BIG_QUERY_APPLICATION_JSON" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/BIG_QUERY_APPLICATION_JSON" -> null - overwrite = true -> null - tags = { - "name" = "BIG_QUERY_APPLICATION_JSON" } -> null - tags_all = { - "name" = "BIG_QUERY_APPLICATION_JSON" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["CROWDIN_API_KEY"] will be destroyed # (because key ["CROWDIN_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/CROWDIN_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/CROWDIN_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/CROWDIN_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "CROWDIN_API_KEY" } -> null - tags_all = { - "name" = "CROWDIN_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["GATEWAY_URL"] will be destroyed # (because key ["GATEWAY_URL"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/GATEWAY_URL" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/GATEWAY_URL" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/GATEWAY_URL" -> null - overwrite = true -> null - tags = { - "name" = "GATEWAY_URL" } -> null - tags_all = { - "name" = "GATEWAY_URL" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["REDIS_URL"] will be destroyed # (because key ["REDIS_URL"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/REDIS_URL" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/REDIS_URL" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/REDIS_URL" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_URL" } -> null - tags_all = { - "name" = "REDIS_URL" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-nexus.module.alb-listener.aws_alb_listener.alb_listener will be created + resource "aws_alb_listener" "alb_listener" { + arn = (known after apply) + id = (known after apply) + load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-2:410965620680:loadbalancer/app/jfp-internal-alb-stage/846f69021da58f87" + port = 4007 + protocol = "HTTP" + ssl_policy = (known after apply) + tags_all = (known after apply) + default_action { + order = (known after apply) + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "No routes defined" + status_code = "200" } } } # module.stage.module.api-nexus.module.ecs-task.aws_alb_listener_rule.alb_listener_rule will be created + resource "aws_alb_listener_rule" "alb_listener_rule" { + arn = (known after apply) + id = (known after apply) + listener_arn = (known after apply) + priority = (known after apply) + tags_all = (known after apply) + action { + order = (known after apply) + target_group_arn = (known after apply) + type = "forward" } + condition { + host_header { + values = [ + "api-nexus.stage.internal", ] } } } # module.stage.module.api-nexus.module.ecs-task.aws_alb_target_group.alb_target_group will be created + resource "aws_alb_target_group" "alb_target_group" { + arn = (known after apply) + arn_suffix = (known after apply) + connection_termination = false + deregistration_delay = "300" + id = (known after apply) + ip_address_type = (known after apply) + lambda_multi_value_headers_enabled = false + load_balancing_algorithm_type = (known after apply) + load_balancing_cross_zone_enabled = (known after apply) + name = "api-nexus-stage-tg" + port = 4007 + preserve_client_ip = (known after apply) + protocol = "HTTP" + protocol_version = (known after apply) + proxy_protocol_v2 = false + slow_start = 0 + tags_all = (known after apply) + target_type = "ip" + vpc_id = "vpc-08eeff0fe23f23079" + health_check { + enabled = true + healthy_threshold = 2 + interval = 5 + matcher = (known after apply) + path = "/.well-known/apollo/server-health" + port = "traffic-port" + protocol = "HTTP" + timeout = 4 + unhealthy_threshold = 3 } + stickiness (known after apply) + target_failover (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_appautoscaling_policy.ecs_policy_cpu will be created + resource "aws_appautoscaling_policy" "ecs_policy_cpu" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-cpu-autoscaling-stage" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-stage/api-nexus-stage-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageCPUUtilization" } ```


Warning: Output length greater than max comment size. Continued in next comment.

jesus-film-bot commented 5 months ago

Continued plan output from previous comment.

Show Output ```diff } } # module.stage.module.api-nexus.module.ecs-task.aws_appautoscaling_policy.ecs_policy_memory will be created + resource "aws_appautoscaling_policy" "ecs_policy_memory" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-memory-autoscaling-stage" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-stage/api-nexus-stage-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageMemoryUtilization" } } } # module.stage.module.api-nexus.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be created + resource "aws_appautoscaling_target" "service_autoscaling" { + arn = (known after apply) + id = (known after apply) + max_capacity = 2 + min_capacity = 1 + resource_id = "service/jfp-ecs-cluster-stage/api-nexus-stage-service" + role_arn = (known after apply) + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + tags_all = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_cloudwatch_log_group.ecs_cw_log_group will be created + resource "aws_cloudwatch_log_group" "ecs_cw_log_group" { + arn = (known after apply) + id = (known after apply) + name = "api-nexus-stage-logs" + name_prefix = (known after apply) + retention_in_days = 0 + skip_destroy = false + tags_all = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ecr_lifecycle_policy.ecr_policy will be created + resource "aws_ecr_lifecycle_policy" "ecr_policy" { + id = (known after apply) + policy = jsonencode( { + rules = [ + { + action = { + type = "expire" } + description = "Expire more than 10 images" + rulePriority = 1 + selection = { + countNumber = 10 + countType = "imageCountMoreThan" + tagStatus = "any" } }, ] } ) + registry_id = (known after apply) + repository = "jfp-api-nexus-stage" } # module.stage.module.api-nexus.module.ecs-task.aws_ecr_repository.ecr_repository will be created + resource "aws_ecr_repository" "ecr_repository" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "jfp-api-nexus-stage" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ecs_service.ecs_service will be created + resource "aws_ecs_service" "ecs_service" { + cluster = "arn:aws:ecs:us-east-2:410965620680:cluster/jfp-ecs-cluster-stage" + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = "FARGATE" + name = "api-nexus-stage-service" + platform_version = (known after apply) + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + load_balancer { + container_name = "jfp-api-nexus-stage-app" + container_port = 4007 + target_group_arn = (known after apply) # (1 unchanged attribute hidden) } + network_configuration { + assign_public_ip = false + security_groups = [ + "sg-087bc43a262c94bc1", ] + subnets = [ + "subnet-01f4e86883462b5ce", + "subnet-062de12e3e3639eff", + "subnet-09cbfc19be5214a8b", ] } } # module.stage.module.api-nexus.module.ecs-task.aws_ecs_task_definition.ecs_task_definition will be created + resource "aws_ecs_task_definition" "ecs_task_definition" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "1024" + execution_role_arn = "arn:aws:iam::410965620680:role/jfp-ecs-task-execution-role" + family = "jfp-api-nexus-stage" + id = (known after apply) + memory = "2048" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_route53_record.record will be created + resource "aws_route53_record" "record" { + allow_overwrite = (known after apply) + fqdn = (known after apply) + id = (known after apply) + name = "api-nexus" + records = [ + "internal-jfp-internal-alb-stage-154137661.us-east-2.elb.amazonaws.com", ] + ttl = 300 + type = "CNAME" + zone_id = "Z056780738DT3AZL6A4WD" } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_ACCESS_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/BUCKET_ACCESS_KEY" + overwrite = true + tags = { + "name" = "BUCKET_ACCESS_KEY" } + tags_all = { + "name" = "BUCKET_ACCESS_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_ENDPOINT"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/BUCKET_ENDPOINT" + overwrite = true + tags = { + "name" = "BUCKET_ENDPOINT" } + tags_all = { + "name" = "BUCKET_ENDPOINT" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_NAME"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/BUCKET_NAME" + overwrite = true + tags = { + "name" = "BUCKET_NAME" } + tags_all = { + "name" = "BUCKET_NAME" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_REGION"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/BUCKET_REGION" + overwrite = true + tags = { + "name" = "BUCKET_REGION" } + tags_all = { + "name" = "BUCKET_REGION" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_SECRET_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/BUCKET_SECRET_KEY" + overwrite = true + tags = { + "name" = "BUCKET_SECRET_KEY" } + tags_all = { + "name" = "BUCKET_SECRET_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["CLOUDFLARE_ACCOUNT_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/CLOUDFLARE_ACCOUNT_ID" + overwrite = true + tags = { + "name" = "CLOUDFLARE_ACCOUNT_ID" } + tags_all = { + "name" = "CLOUDFLARE_ACCOUNT_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["CLOUDFLARE_API_TOKEN"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/CLOUDFLARE_API_TOKEN" + overwrite = true + tags = { + "name" = "CLOUDFLARE_API_TOKEN" } + tags_all = { + "name" = "CLOUDFLARE_API_TOKEN" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["CLOUDFLARE_STREAM_TOKEN"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/CLOUDFLARE_STREAM_TOKEN" + overwrite = true + tags = { + "name" = "CLOUDFLARE_STREAM_TOKEN" } + tags_all = { + "name" = "CLOUDFLARE_STREAM_TOKEN" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["FIREBASE_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/FIREBASE_API_KEY" + overwrite = true + tags = { + "name" = "FIREBASE_API_KEY" } + tags_all = { + "name" = "FIREBASE_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/GOOGLE_API_KEY" + overwrite = true + tags = { + "name" = "GOOGLE_API_KEY" } + tags_all = { + "name" = "GOOGLE_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_APPLICATION_JSON"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/GOOGLE_APPLICATION_JSON" + overwrite = true + tags = { + "name" = "GOOGLE_APPLICATION_JSON" } + tags_all = { + "name" = "GOOGLE_APPLICATION_JSON" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_CLIENT_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/GOOGLE_CLIENT_ID" + overwrite = true + tags = { + "name" = "GOOGLE_CLIENT_ID" } + tags_all = { + "name" = "GOOGLE_CLIENT_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_CLIENT_SECRET"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/GOOGLE_CLIENT_SECRET" + overwrite = true + tags = { + "name" = "GOOGLE_CLIENT_SECRET" } + tags_all = { + "name" = "GOOGLE_CLIENT_SECRET" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_NEXUS"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/PG_DATABASE_URL_NEXUS" + overwrite = true + tags = { + "name" = "PG_DATABASE_URL_NEXUS" } + tags_all = { + "name" = "PG_DATABASE_URL_NEXUS" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["REDIS_HOST"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/REDIS_HOST" + overwrite = true + tags = { + "name" = "REDIS_HOST" } + tags_all = { + "name" = "REDIS_HOST" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-tags.module.alb-listener.aws_alb_listener.alb_listener will be created + resource "aws_alb_listener" "alb_listener" { + arn = (known after apply) + id = (known after apply) + load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-2:410965620680:loadbalancer/app/jfp-internal-alb-stage/846f69021da58f87" + port = 4006 + protocol = "HTTP" + ssl_policy = (known after apply) + tags_all = (known after apply) + default_action { + order = (known after apply) + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "No routes defined" + status_code = "200" } } } # module.stage.module.api-tags.module.ecs-task.aws_alb_listener_rule.alb_listener_rule will be created + resource "aws_alb_listener_rule" "alb_listener_rule" { + arn = (known after apply) + id = (known after apply) + listener_arn = (known after apply) + priority = (known after apply) + tags_all = (known after apply) + action { + order = (known after apply) + target_group_arn = (known after apply) + type = "forward" } + condition { + host_header { + values = [ + "api-tags.stage.internal", ] } } } # module.stage.module.api-tags.module.ecs-task.aws_alb_target_group.alb_target_group will be created + resource "aws_alb_target_group" "alb_target_group" { + arn = (known after apply) + arn_suffix = (known after apply) + connection_termination = false + deregistration_delay = "300" + id = (known after apply) + ip_address_type = (known after apply) + lambda_multi_value_headers_enabled = false + load_balancing_algorithm_type = (known after apply) + load_balancing_cross_zone_enabled = (known after apply) + name = "api-tags-stage-tg" + port = 4006 + preserve_client_ip = (known after apply) + protocol = "HTTP" + protocol_version = (known after apply) + proxy_protocol_v2 = false + slow_start = 0 + tags_all = (known after apply) + target_type = "ip" + vpc_id = "vpc-08eeff0fe23f23079" + health_check { + enabled = true + healthy_threshold = 2 + interval = 5 + matcher = (known after apply) + path = "/.well-known/apollo/server-health" + port = "traffic-port" + protocol = "HTTP" + timeout = 4 + unhealthy_threshold = 3 } + stickiness (known after apply) + target_failover (known after apply) } # module.stage.module.api-tags.module.ecs-task.aws_appautoscaling_policy.ecs_policy_cpu will be created + resource "aws_appautoscaling_policy" "ecs_policy_cpu" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-cpu-autoscaling-stage" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-stage/api-tags-stage-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageCPUUtilization" } } } # module.stage.module.api-tags.module.ecs-task.aws_appautoscaling_policy.ecs_policy_memory will be created + resource "aws_appautoscaling_policy" "ecs_policy_memory" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-memory-autoscaling-stage" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-stage/api-tags-stage-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageMemoryUtilization" } } } # module.stage.module.api-tags.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be created + resource "aws_appautoscaling_target" "service_autoscaling" { + arn = (known after apply) + id = (known after apply) + max_capacity = 2 + min_capacity = 1 + resource_id = "service/jfp-ecs-cluster-stage/api-tags-stage-service" + role_arn = (known after apply) + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + tags_all = (known after apply) } # module.stage.module.api-tags.module.ecs-task.aws_cloudwatch_log_group.ecs_cw_log_group will be created + resource "aws_cloudwatch_log_group" "ecs_cw_log_group" { + arn = (known after apply) + id = (known after apply) + name = "api-tags-stage-logs" + name_prefix = (known after apply) + retention_in_days = 0 + skip_destroy = false + tags_all = (known after apply) } # module.stage.module.api-tags.module.ecs-task.aws_ecr_lifecycle_policy.ecr_policy will be created + resource "aws_ecr_lifecycle_policy" "ecr_policy" { + id = (known after apply) + policy = jsonencode( { + rules = [ + { + action = { + type = "expire" } + description = "Expire more than 10 images" + rulePriority = 1 + selection = { + countNumber = 10 + countType = "imageCountMoreThan" + tagStatus = "any" } }, ] } ) + registry_id = (known after apply) + repository = "jfp-api-tags-stage" } # module.stage.module.api-tags.module.ecs-task.aws_ecr_repository.ecr_repository will be created + resource "aws_ecr_repository" "ecr_repository" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "jfp-api-tags-stage" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) } # module.stage.module.api-tags.module.ecs-task.aws_ecs_service.ecs_service will be created + resource "aws_ecs_service" "ecs_service" { + cluster = "arn:aws:ecs:us-east-2:410965620680:cluster/jfp-ecs-cluster-stage" + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = "FARGATE" + name = "api-tags-stage-service" + platform_version = (known after apply) + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + load_balancer { + container_name = "jfp-api-tags-stage-app" + container_port = 4006 + target_group_arn = (known after apply) # (1 unchanged attribute hidden) } + network_configuration { + assign_public_ip = false + security_groups = [ + "sg-087bc43a262c94bc1", ] + subnets = [ + "subnet-01f4e86883462b5ce", + "subnet-062de12e3e3639eff", + "subnet-09cbfc19be5214a8b", ] } } # module.stage.module.api-tags.module.ecs-task.aws_ecs_task_definition.ecs_task_definition will be created + resource "aws_ecs_task_definition" "ecs_task_definition" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "512" + execution_role_arn = "arn:aws:iam::410965620680:role/jfp-ecs-task-execution-role" + family = "jfp-api-tags-stage" + id = (known after apply) + memory = "1024" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) } # module.stage.module.api-tags.module.ecs-task.aws_route53_record.record will be created + resource "aws_route53_record" "record" { + allow_overwrite = (known after apply) + fqdn = (known after apply) + id = (known after apply) + name = "api-tags" + records = [ + "internal-jfp-internal-alb-stage-154137661.us-east-2.elb.amazonaws.com", ] + ttl = 300 + type = "CNAME" + zone_id = "Z056780738DT3AZL6A4WD" } # module.stage.module.api-tags.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_TAGS"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-tags/stage/PG_DATABASE_URL_TAGS" + overwrite = true + tags = { + "name" = "PG_DATABASE_URL_TAGS" } + tags_all = { + "name" = "PG_DATABASE_URL_TAGS" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-users.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-users-stage-service" name = "api-users-stage-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-users-stage:31" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.stage.module.api-users.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-users-stage:31" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-users-stage" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-api-users-stage-app" ~ secrets = [ # (5 unchanged elements hidden) { name = "JOURNEYS_ADMIN_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/JOURNEYS_ADMIN_URL" }, - { - name = "NAT_ADDRESSES" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/NAT_ADDRESSES" }, { name = "PG_DATABASE_URL_USERS" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/PG_DATABASE_URL_USERS" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/REDIS_PORT" }, { name = "REDIS_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/REDIS_URL" }, # (1 unchanged element hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-api-users-stage-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-users-stage-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-api-users-stage" -> (known after apply) ~ revision = 31 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.stage.module.api-users.module.ecs-task.aws_ssm_parameter.parameters["NAT_ADDRESSES"] will be destroyed # (because key ["NAT_ADDRESSES"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/NAT_ADDRESSES" -> null - data_type = "text" -> null - id = "/ecs/api-users/stage/NAT_ADDRESSES" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-users/stage/NAT_ADDRESSES" -> null - overwrite = true -> null - tags = { - "name" = "NAT_ADDRESSES" } -> null - tags_all = { - "name" = "NAT_ADDRESSES" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-users.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-users/stage/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-users/stage/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-videos.module.alb-listener.aws_alb_listener.alb_listener will be created + resource "aws_alb_listener" "alb_listener" { + arn = (known after apply) + id = (known after apply) + load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-2:410965620680:loadbalancer/app/jfp-internal-alb-stage/846f69021da58f87" + port = 4004 + protocol = "HTTP" + ssl_policy = (known after apply) + tags_all = (known after apply) + default_action { + order = (known after apply) + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "No routes defined" + status_code = "200" } } } # module.stage.module.api-videos.module.ecs-task.aws_alb_listener_rule.alb_listener_rule will be created + resource "aws_alb_listener_rule" "alb_listener_rule" { + arn = (known after apply) + id = (known after apply) + listener_arn = (known after apply) + priority = (known after apply) + tags_all = (known after apply) + action { + order = (known after apply) + target_group_arn = (known after apply) + type = "forward" } + condition { + host_header { + values = [ + "api-videos.stage.internal", ] } } } # module.stage.module.api-videos.module.ecs-task.aws_alb_target_group.alb_target_group will be created + resource "aws_alb_target_group" "alb_target_group" { + arn = (known after apply) + arn_suffix = (known after apply) + connection_termination = false + deregistration_delay = "300" + id = (known after apply) + ip_address_type = (known after apply) + lambda_multi_value_headers_enabled = false + load_balancing_algorithm_type = (known after apply) + load_balancing_cross_zone_enabled = (known after apply) + name = "api-videos-stage-tg" + port = 4004 + preserve_client_ip = (known after apply) + protocol = "HTTP" + protocol_version = (known after apply) + proxy_protocol_v2 = false + slow_start = 0 + tags_all = (known after apply) + target_type = "ip" + vpc_id = "vpc-08eeff0fe23f23079" + health_check { + enabled = true + healthy_threshold = 2 + interval = 5 + matcher = (known after apply) + path = "/.well-known/apollo/server-health" + port = "traffic-port" + protocol = "HTTP" + timeout = 4 + unhealthy_threshold = 3 } + stickiness (known after apply) + target_failover (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_appautoscaling_policy.ecs_policy_cpu will be created + resource "aws_appautoscaling_policy" "ecs_policy_cpu" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-cpu-autoscaling-stage" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-stage/api-videos-stage-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageCPUUtilization" } } } # module.stage.module.api-videos.module.ecs-task.aws_appautoscaling_policy.ecs_policy_memory will be created + resource "aws_appautoscaling_policy" "ecs_policy_memory" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-memory-autoscaling-stage" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-stage/api-videos-stage-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageMemoryUtilization" } } } # module.stage.module.api-videos.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be created + resource "aws_appautoscaling_target" "service_autoscaling" { + arn = (known after apply) + id = (known after apply) + max_capacity = 2 + min_capacity = 1 + resource_id = "service/jfp-ecs-cluster-stage/api-videos-stage-service" + role_arn = (known after apply) + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + tags_all = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_cloudwatch_log_group.ecs_cw_log_group will be created + resource "aws_cloudwatch_log_group" "ecs_cw_log_group" { + arn = (known after apply) + id = (known after apply) + name = "api-videos-stage-logs" + name_prefix = (known after apply) + retention_in_days = 0 + skip_destroy = false + tags_all = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ecr_lifecycle_policy.ecr_policy will be created + resource "aws_ecr_lifecycle_policy" "ecr_policy" { + id = (known after apply) + policy = jsonencode( { + rules = [ + { + action = { + type = "expire" } + description = "Expire more than 10 images" + rulePriority = 1 + selection = { + countNumber = 10 + countType = "imageCountMoreThan" + tagStatus = "any" } }, ] } ) + registry_id = (known after apply) + repository = "jfp-api-videos-stage" } # module.stage.module.api-videos.module.ecs-task.aws_ecr_repository.ecr_repository will be created + resource "aws_ecr_repository" "ecr_repository" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "jfp-api-videos-stage" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ecs_service.ecs_service will be created + resource "aws_ecs_service" "ecs_service" { + cluster = "arn:aws:ecs:us-east-2:410965620680:cluster/jfp-ecs-cluster-stage" + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = "FARGATE" + name = "api-videos-stage-service" + platform_version = (known after apply) + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + load_balancer { + container_name = "jfp-api-videos-stage-app" + container_port = 4004 + target_group_arn = (known after apply) # (1 unchanged attribute hidden) } + network_configuration { + assign_public_ip = false + security_groups = [ + "sg-087bc43a262c94bc1", ] + subnets = [ + "subnet-01f4e86883462b5ce", + "subnet-062de12e3e3639eff", + "subnet-09cbfc19be5214a8b", ] } } # module.stage.module.api-videos.module.ecs-task.aws_ecs_task_definition.ecs_task_definition will be created + resource "aws_ecs_task_definition" "ecs_task_definition" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "1024" + execution_role_arn = "arn:aws:iam::410965620680:role/jfp-ecs-task-execution-role" + family = "jfp-api-videos-stage" + id = (known after apply) + memory = "4096" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_route53_record.record will be created + resource "aws_route53_record" "record" { + allow_overwrite = (known after apply) + fqdn = (known after apply) + id = (known after apply) + name = "api-videos" + records = [ + "internal-jfp-internal-alb-stage-154137661.us-east-2.elb.amazonaws.com", ] + ttl = 300 + type = "CNAME" + zone_id = "Z056780738DT3AZL6A4WD" } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/ALGOLIA_API_KEY" + overwrite = true + tags = { + "name" = "ALGOLIA_API_KEY" } + tags_all = { + "name" = "ALGOLIA_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_APPLICATION_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/ALGOLIA_APPLICATION_ID" + overwrite = true + tags = { + "name" = "ALGOLIA_APPLICATION_ID" } + tags_all = { + "name" = "ALGOLIA_APPLICATION_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_INDEX"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/ALGOLIA_INDEX" + overwrite = true + tags = { + "name" = "ALGOLIA_INDEX" } + tags_all = { + "name" = "ALGOLIA_INDEX" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/ARCLIGHT_API_KEY" + overwrite = true + tags = { + "name" = "ARCLIGHT_API_KEY" } + tags_all = { + "name" = "ARCLIGHT_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_V3_URL"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/ARCLIGHT_V3_URL" + overwrite = true + tags = { + "name" = "ARCLIGHT_V3_URL" } + tags_all = { + "name" = "ARCLIGHT_V3_URL" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["BIG_QUERY_APPLICATION_JSON"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/BIG_QUERY_APPLICATION_JSON" + overwrite = true + tags = { + "name" = "BIG_QUERY_APPLICATION_JSON" } + tags_all = { + "name" = "BIG_QUERY_APPLICATION_JSON" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["CROWDIN_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/CROWDIN_API_KEY" + overwrite = true + tags = { + "name" = "CROWDIN_API_KEY" } + tags_all = { + "name" = "CROWDIN_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["GATEWAY_URL"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/GATEWAY_URL" + overwrite = true + tags = { + "name" = "GATEWAY_URL" } + tags_all = { + "name" = "GATEWAY_URL" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_VIDEOS"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/PG_DATABASE_URL_VIDEOS" + overwrite = true + tags = { + "name" = "PG_DATABASE_URL_VIDEOS" } + tags_all = { + "name" = "PG_DATABASE_URL_VIDEOS" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["REDIS_URL"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/REDIS_URL" + overwrite = true + tags = { + "name" = "REDIS_URL" } + tags_all = { + "name" = "REDIS_URL" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.journeys-admin.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/journeys-admin-stage-service" name = "journeys-admin-stage-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-journeys-admin-stage:7" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.stage.module.journeys-admin.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-journeys-admin-stage:7" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-journeys-admin-stage" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-journeys-admin-stage-app" ~ secrets = [ # (4 unchanged elements hidden) { name = "LAUNCH_DARKLY_SDK_KEY" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/LAUNCH_DARKLY_SDK_KEY" }, - { - name = "NEXT_PUBLIC_ALGOLIA_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_API_KEY" }, - { - name = "NEXT_PUBLIC_ALGOLIA_APP_ID" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_APP_ID" }, - { - name = "NEXT_PUBLIC_ALGOLIA_INDEX" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_INDEX" }, { name = "NEXT_PUBLIC_CLOUDFLARE_STREAM_CUSTOMER_CODE" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_CLOUDFLARE_STREAM_CUSTOMER_CODE" }, # (16 unchanged elements hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-journeys-admin-stage-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-journeys-admin-stage-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-journeys-admin-stage" -> (known after apply) ~ revision = 7 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.stage.module.journeys-admin.module.ecs-task.aws_ssm_parameter.parameters["NEXT_PUBLIC_ALGOLIA_API_KEY"] will be destroyed # (because key ["NEXT_PUBLIC_ALGOLIA_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "NEXT_PUBLIC_ALGOLIA_API_KEY" } -> null - tags_all = { - "name" = "NEXT_PUBLIC_ALGOLIA_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.stage.module.journeys-admin.module.ecs-task.aws_ssm_parameter.parameters["NEXT_PUBLIC_ALGOLIA_APP_ID"] will be destroyed # (because key ["NEXT_PUBLIC_ALGOLIA_APP_ID"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_APP_ID" -> null - data_type = "text" -> null - id = "/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_APP_ID" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_APP_ID" -> null - overwrite = true -> null - tags = { - "name" = "NEXT_PUBLIC_ALGOLIA_APP_ID" } -> null - tags_all = { - "name" = "NEXT_PUBLIC_ALGOLIA_APP_ID" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.stage.module.journeys-admin.module.ecs-task.aws_ssm_parameter.parameters["NEXT_PUBLIC_ALGOLIA_INDEX"] will be destroyed # (because key ["NEXT_PUBLIC_ALGOLIA_INDEX"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_INDEX" -> null - data_type = "text" -> null - id = "/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_INDEX" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_INDEX" -> null - overwrite = true -> null - tags = { - "name" = "NEXT_PUBLIC_ALGOLIA_INDEX" } -> null - tags_all = { - "name" = "NEXT_PUBLIC_ALGOLIA_INDEX" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } Plan: 134 to add, 10 to change, 44 to destroy. ```

2. dir: infrastructure/resources/atlantis workspace: default

Show Output ```diff No changes. Your infrastructure matches the configuration. Terraform has compared your real infrastructure against your configuration and found no differences, so no changes are needed. ╷ │ Warning: Argument is deprecated │ │ with module.atlantis.module.ecs.aws_ecs_cluster.this[0], │ on .terraform/modules/atlantis.ecs/main.tf line 1, in resource "aws_ecs_cluster" "this": │ 1: resource "aws_ecs_cluster" "this" { │ │ Use the aws_ecs_cluster_capacity_providers resource instead │ │ (and one more similar warning elsewhere) ╵ ```

3. dir: infrastructure/resources/doppler workspace: default

No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

4. dir: infrastructure/resources/terraform workspace: default

No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

Plan Summary

4 projects, 1 with changes, 3 with no changes, 0 failed

github-actions[bot] commented 5 months ago

The latest updates on your projects.

Name Status Preview Updated (UTC)
docs ✅ Ready Visit Preview Tue Sep 10 02:50:16 UTC 2024
github-actions[bot] commented 5 months ago

The latest updates on your projects.

Name Status Preview Updated (UTC)
arclight ✅ Ready Visit Preview Tue Sep 10 02:51:05 UTC 2024
github-actions[bot] commented 5 months ago

The latest updates on your projects.

Name Status Preview Updated (UTC)
nexus-admin ✅ Ready Visit Preview Tue Sep 10 02:50:55 UTC 2024
jesus-film-bot commented 5 months ago

Ran Plan for 4 projects:

  1. dir: infrastructure workspace: default
  2. dir: infrastructure/resources/atlantis workspace: default
  3. dir: infrastructure/resources/doppler workspace: default
  4. dir: infrastructure/resources/terraform workspace: default

1. dir: infrastructure workspace: default

Show Output ```diff Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create ~ update in-place - destroy +/- create replacement and then destroy Terraform will perform the following actions: # module.prod.module.api-journeys.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/api-journeys-prod-service" name = "api-journeys-prod-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-prod:49" -> (known after apply) # (15 unchanged attributes hidden) # (5 unchanged blocks hidden) } # module.prod.module.api-journeys.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-prod:49" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-prod" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-api-journeys-prod-app" ~ secrets = [ # (26 unchanged elements hidden) { name = "POWER_BI_WORKSPACE_ID" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/prod/POWER_BI_WORKSPACE_ID" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/prod/REDIS_PORT" }, { name = "REDIS_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/prod/REDIS_URL" }, # (4 unchanged elements hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-api-journeys-prod-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-journeys-prod-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-api-journeys-prod" -> (known after apply) ~ revision = 49 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.prod.module.api-journeys.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/prod/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-journeys/prod/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-journeys/prod/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-languages.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/api-languages-prod-service" name = "api-languages-prod-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-languages-prod:37" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.prod.module.api-languages.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-languages-prod:37" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-languages-prod" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-api-languages-prod-app" ~ secrets = [ # (3 unchanged elements hidden) { name = "PG_DATABASE_URL_LANGUAGES" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/prod/PG_DATABASE_URL_LANGUAGES" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/prod/REDIS_PORT" }, { name = "REDIS_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/prod/REDIS_URL" }, # (2 unchanged elements hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-api-languages-prod-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-languages-prod-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-api-languages-prod" -> (known after apply) ~ revision = 37 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.prod.module.api-languages.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/prod/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-languages/prod/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-languages/prod/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/api-media-prod-service" name = "api-media-prod-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-prod:22" -> (known after apply) # (15 unchanged attributes hidden) # (5 unchanged blocks hidden) } # module.prod.module.api-media.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-prod:22" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-prod" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { ~ cpu = 1024 -> 512 ~ memory = 2048 -> 1024 name = "jfp-api-media-prod-app" ~ secrets = [ - { - name = "ALGOLIA_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_API_KEY" }, - { - name = "ALGOLIA_APPLICATION_ID" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_APPLICATION_ID" }, - { - name = "ALGOLIA_INDEX" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_INDEX" }, - { - name = "ARCLIGHT_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ARCLIGHT_API_KEY" }, - { - name = "ARCLIGHT_V3_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ARCLIGHT_V3_URL" }, - { - name = "BIG_QUERY_APPLICATION_JSON" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/BIG_QUERY_APPLICATION_JSON" }, { name = "CLOUDFLARE_ACCOUNT_ID" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/CLOUDFLARE_ACCOUNT_ID" }, # (1 unchanged element hidden) { name = "CLOUDFLARE_STREAM_TOKEN" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/CLOUDFLARE_STREAM_TOKEN" }, - { - name = "CROWDIN_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/CROWDIN_API_KEY" }, - { - name = "GATEWAY_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/GATEWAY_URL" }, { name = "GOOGLE_APPLICATION_JSON" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/GOOGLE_APPLICATION_JSON" }, { name = "PG_DATABASE_URL_MEDIA" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/PG_DATABASE_URL_MEDIA" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/REDIS_PORT" }, - { - name = "REDIS_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/REDIS_URL" }, { name = "SEGMIND_API_KEY" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/SEGMIND_API_KEY" }, # (2 unchanged elements hidden) ] - systemControls = [] # (7 unchanged attributes hidden) }, ~ { name = "jfp-api-media-prod-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-media-prod-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ cpu = "1024" -> "512" # forces replacement ~ id = "jfp-api-media-prod" -> (known after apply) ~ memory = "2048" -> "1024" # forces replacement ~ revision = 22 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (8 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_API_KEY"] will be destroyed # (because key ["ALGOLIA_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/ALGOLIA_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/ALGOLIA_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "ALGOLIA_API_KEY" } -> null - tags_all = { - "name" = "ALGOLIA_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 3 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_APPLICATION_ID"] will be destroyed # (because key ["ALGOLIA_APPLICATION_ID"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_APPLICATION_ID" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/ALGOLIA_APPLICATION_ID" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/ALGOLIA_APPLICATION_ID" -> null - overwrite = true -> null - tags = { - "name" = "ALGOLIA_APPLICATION_ID" } -> null - tags_all = { - "name" = "ALGOLIA_APPLICATION_ID" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_INDEX"] will be destroyed # (because key ["ALGOLIA_INDEX"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_INDEX" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/ALGOLIA_INDEX" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/ALGOLIA_INDEX" -> null - overwrite = true -> null - tags = { - "name" = "ALGOLIA_INDEX" } -> null - tags_all = { - "name" = "ALGOLIA_INDEX" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_API_KEY"] will be destroyed # (because key ["ARCLIGHT_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ARCLIGHT_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/ARCLIGHT_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/ARCLIGHT_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "ARCLIGHT_API_KEY" } -> null - tags_all = { - "name" = "ARCLIGHT_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 3 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_V3_URL"] will be destroyed # (because key ["ARCLIGHT_V3_URL"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ARCLIGHT_V3_URL" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/ARCLIGHT_V3_URL" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/ARCLIGHT_V3_URL" -> null - overwrite = true -> null - tags = { - "name" = "ARCLIGHT_V3_URL" } -> null - tags_all = { - "name" = "ARCLIGHT_V3_URL" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["BIG_QUERY_APPLICATION_JSON"] will be destroyed # (because key ["BIG_QUERY_APPLICATION_JSON"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/BIG_QUERY_APPLICATION_JSON" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/BIG_QUERY_APPLICATION_JSON" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/BIG_QUERY_APPLICATION_JSON" -> null - overwrite = true -> null - tags = { - "name" = "BIG_QUERY_APPLICATION_JSON" } -> null - tags_all = { - "name" = "BIG_QUERY_APPLICATION_JSON" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["CROWDIN_API_KEY"] will be destroyed # (because key ["CROWDIN_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/CROWDIN_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/CROWDIN_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/CROWDIN_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "CROWDIN_API_KEY" } -> null - tags_all = { - "name" = "CROWDIN_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["GATEWAY_URL"] will be destroyed # (because key ["GATEWAY_URL"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/GATEWAY_URL" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/GATEWAY_URL" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/GATEWAY_URL" -> null - overwrite = true -> null - tags = { - "name" = "GATEWAY_URL" } -> null - tags_all = { - "name" = "GATEWAY_URL" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["REDIS_URL"] will be destroyed # (because key ["REDIS_URL"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/REDIS_URL" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/REDIS_URL" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/REDIS_URL" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_URL" } -> null - tags_all = { - "name" = "REDIS_URL" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-nexus.module.alb-listener.aws_alb_listener.alb_listener will be created + resource "aws_alb_listener" "alb_listener" { + arn = (known after apply) + id = (known after apply) + load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-2:410965620680:loadbalancer/app/jfp-internal-alb-prod/ae1556aacf21465f" + port = 4007 + protocol = "HTTP" + ssl_policy = (known after apply) + tags_all = (known after apply) + default_action { + order = (known after apply) + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "No routes defined" + status_code = "200" } } } # module.prod.module.api-nexus.module.ecs-task.aws_alb_listener_rule.alb_listener_rule will be created + resource "aws_alb_listener_rule" "alb_listener_rule" { + arn = (known after apply) + id = (known after apply) + listener_arn = (known after apply) + priority = (known after apply) + tags_all = (known after apply) + action { + order = (known after apply) + target_group_arn = (known after apply) + type = "forward" } + condition { + host_header { + values = [ + "api-nexus.service.internal", ] } } } # module.prod.module.api-nexus.module.ecs-task.aws_alb_target_group.alb_target_group will be created + resource "aws_alb_target_group" "alb_target_group" { + arn = (known after apply) + arn_suffix = (known after apply) + connection_termination = false + deregistration_delay = "300" + id = (known after apply) + ip_address_type = (known after apply) + lambda_multi_value_headers_enabled = false + load_balancing_algorithm_type = (known after apply) + load_balancing_cross_zone_enabled = (known after apply) + name = "api-nexus-prod-tg" + port = 4007 + preserve_client_ip = (known after apply) + protocol = "HTTP" + protocol_version = (known after apply) + proxy_protocol_v2 = false + slow_start = 0 + tags_all = (known after apply) + target_type = "ip" + vpc_id = "vpc-0b722b0a1f7789afd" + health_check { + enabled = true + healthy_threshold = 2 + interval = 5 + matcher = (known after apply) + path = "/.well-known/apollo/server-health" + port = "traffic-port" + protocol = "HTTP" + timeout = 4 + unhealthy_threshold = 3 } + stickiness (known after apply) + target_failover (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_appautoscaling_policy.ecs_policy_cpu will be created + resource "aws_appautoscaling_policy" "ecs_policy_cpu" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-cpu-autoscaling-prod" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-prod/api-nexus-prod-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageCPUUtilization" } } } # module.prod.module.api-nexus.module.ecs-task.aws_appautoscaling_policy.ecs_policy_memory will be created + resource "aws_appautoscaling_policy" "ecs_policy_memory" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-memory-autoscaling-prod" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-prod/api-nexus-prod-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageMemoryUtilization" } } } # module.prod.module.api-nexus.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be created + resource "aws_appautoscaling_target" "service_autoscaling" { + arn = (known after apply) + id = (known after apply) + max_capacity = 2 + min_capacity = 1 + resource_id = "service/jfp-ecs-cluster-prod/api-nexus-prod-service" + role_arn = (known after apply) + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + tags_all = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_cloudwatch_log_group.ecs_cw_log_group will be created + resource "aws_cloudwatch_log_group" "ecs_cw_log_group" { + arn = (known after apply) + id = (known after apply) + name = "api-nexus-prod-logs" + name_prefix = (known after apply) + retention_in_days = 0 + skip_destroy = false + tags_all = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ecr_lifecycle_policy.ecr_policy will be created + resource "aws_ecr_lifecycle_policy" "ecr_policy" { + id = (known after apply) + policy = jsonencode( { + rules = [ + { + action = { + type = "expire" } + description = "Expire more than 10 images" + rulePriority = 1 + selection = { + countNumber = 10 + countType = "imageCountMoreThan" + tagStatus = "any" } }, ] } ) + registry_id = (known after apply) + repository = "jfp-api-nexus-prod" } # module.prod.module.api-nexus.module.ecs-task.aws_ecr_repository.ecr_repository will be created + resource "aws_ecr_repository" "ecr_repository" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "jfp-api-nexus-prod" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ecs_service.ecs_service will be created + resource "aws_ecs_service" "ecs_service" { + cluster = "arn:aws:ecs:us-east-2:410965620680:cluster/jfp-ecs-cluster-prod" + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = "FARGATE" + name = "api-nexus-prod-service" + platform_version = (known after apply) + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + load_balancer { + container_name = "jfp-api-nexus-prod-app" + container_port = 4007 + target_group_arn = (known after apply) # (1 unchanged attribute hidden) } + network_configuration { + assign_public_ip = false + security_groups = [ + "sg-02935fccc551bacd8", ] + subnets = [ + "subnet-02f4c2a33ace122c5", + "subnet-036663ddfdb3b94b0", + "subnet-05c389158df4b940a", ] } } # module.prod.module.api-nexus.module.ecs-task.aws_ecs_task_definition.ecs_task_definition will be created + resource "aws_ecs_task_definition" "ecs_task_definition" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "1024" + execution_role_arn = "arn:aws:iam::410965620680:role/jfp-ecs-task-execution-role" + family = "jfp-api-nexus-prod" + id = (known after apply) + memory = "2048" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_route53_record.record will be created + resource "aws_route53_record" "record" { + allow_overwrite = (known after apply) + fqdn = (known after apply) + id = (known after apply) + name = "api-nexus" + records = [ + "internal-jfp-internal-alb-prod-1581820397.us-east-2.elb.amazonaws.com", ] + ttl = 300 + type = "CNAME" + zone_id = "Z03223152FHL8WN66TI5X" } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_ACCESS_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/BUCKET_ACCESS_KEY" + overwrite = true + tags = { + "name" = "BUCKET_ACCESS_KEY" } + tags_all = { + "name" = "BUCKET_ACCESS_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_ENDPOINT"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/BUCKET_ENDPOINT" + overwrite = true + tags = { + "name" = "BUCKET_ENDPOINT" } + tags_all = { + "name" = "BUCKET_ENDPOINT" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_NAME"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/BUCKET_NAME" + overwrite = true + tags = { + "name" = "BUCKET_NAME" } + tags_all = { + "name" = "BUCKET_NAME" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_REGION"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/BUCKET_REGION" + overwrite = true + tags = { + "name" = "BUCKET_REGION" } + tags_all = { + "name" = "BUCKET_REGION" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_SECRET_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/BUCKET_SECRET_KEY" + overwrite = true + tags = { + "name" = "BUCKET_SECRET_KEY" } + tags_all = { + "name" = "BUCKET_SECRET_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["CLOUDFLARE_ACCOUNT_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/CLOUDFLARE_ACCOUNT_ID" + overwrite = true + tags = { + "name" = "CLOUDFLARE_ACCOUNT_ID" } + tags_all = { + "name" = "CLOUDFLARE_ACCOUNT_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["CLOUDFLARE_API_TOKEN"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/CLOUDFLARE_API_TOKEN" + overwrite = true + tags = { + "name" = "CLOUDFLARE_API_TOKEN" } + tags_all = { + "name" = "CLOUDFLARE_API_TOKEN" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["CLOUDFLARE_STREAM_TOKEN"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/CLOUDFLARE_STREAM_TOKEN" + overwrite = true + tags = { + "name" = "CLOUDFLARE_STREAM_TOKEN" } + tags_all = { + "name" = "CLOUDFLARE_STREAM_TOKEN" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["FIREBASE_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/FIREBASE_API_KEY" + overwrite = true + tags = { + "name" = "FIREBASE_API_KEY" } + tags_all = { + "name" = "FIREBASE_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/GOOGLE_API_KEY" + overwrite = true + tags = { + "name" = "GOOGLE_API_KEY" } + tags_all = { + "name" = "GOOGLE_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_APPLICATION_JSON"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/GOOGLE_APPLICATION_JSON" + overwrite = true + tags = { + "name" = "GOOGLE_APPLICATION_JSON" } + tags_all = { + "name" = "GOOGLE_APPLICATION_JSON" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_CLIENT_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/GOOGLE_CLIENT_ID" + overwrite = true + tags = { + "name" = "GOOGLE_CLIENT_ID" } + tags_all = { + "name" = "GOOGLE_CLIENT_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_CLIENT_SECRET"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/GOOGLE_CLIENT_SECRET" + overwrite = true + tags = { + "name" = "GOOGLE_CLIENT_SECRET" } + tags_all = { + "name" = "GOOGLE_CLIENT_SECRET" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_NEXUS"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/PG_DATABASE_URL_NEXUS" + overwrite = true + tags = { + "name" = "PG_DATABASE_URL_NEXUS" } + tags_all = { + "name" = "PG_DATABASE_URL_NEXUS" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["REDIS_HOST"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/REDIS_HOST" + overwrite = true + tags = { + "name" = "REDIS_HOST" } + tags_all = { + "name" = "REDIS_HOST" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-tags.module.alb-listener.aws_alb_listener.alb_listener will be created + resource "aws_alb_listener" "alb_listener" { + arn = (known after apply) + id = (known after apply) + load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-2:410965620680:loadbalancer/app/jfp-internal-alb-prod/ae1556aacf21465f" + port = 4006 + protocol = "HTTP" + ssl_policy = (known after apply) + tags_all = (known after apply) + default_action { + order = (known after apply) + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "No routes defined" + status_code = "200" } } } # module.prod.module.api-tags.module.ecs-task.aws_alb_listener_rule.alb_listener_rule will be created + resource "aws_alb_listener_rule" "alb_listener_rule" { + arn = (known after apply) + id = (known after apply) + listener_arn = (known after apply) + priority = (known after apply) + tags_all = (known after apply) + action { + order = (known after apply) + target_group_arn = (known after apply) + type = "forward" } + condition { + host_header { + values = [ + "api-tags.service.internal", ] } } } # module.prod.module.api-tags.module.ecs-task.aws_alb_target_group.alb_target_group will be created + resource "aws_alb_target_group" "alb_target_group" { + arn = (known after apply) + arn_suffix = (known after apply) + connection_termination = false + deregistration_delay = "300" + id = (known after apply) + ip_address_type = (known after apply) + lambda_multi_value_headers_enabled = false + load_balancing_algorithm_type = (known after apply) + load_balancing_cross_zone_enabled = (known after apply) + name = "api-tags-prod-tg" + port = 4006 + preserve_client_ip = (known after apply) + protocol = "HTTP" + protocol_version = (known after apply) + proxy_protocol_v2 = false + slow_start = 0 + tags_all = (known after apply) + target_type = "ip" + vpc_id = "vpc-0b722b0a1f7789afd" + health_check { + enabled = true + healthy_threshold = 2 + interval = 5 + matcher = (known after apply) + path = "/.well-known/apollo/server-health" + port = "traffic-port" + protocol = "HTTP" + timeout = 4 + unhealthy_threshold = 3 } + stickiness (known after apply) + target_failover (known after apply) } # module.prod.module.api-tags.module.ecs-task.aws_appautoscaling_policy.ecs_policy_cpu will be created + resource "aws_appautoscaling_policy" "ecs_policy_cpu" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-cpu-autoscaling-prod" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-prod/api-tags-prod-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageCPUUtilization" } } } # module.prod.module.api-tags.module.ecs-task.aws_appautoscaling_policy.ecs_policy_memory will be created + resource "aws_appautoscaling_policy" "ecs_policy_memory" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-memory-autoscaling-prod" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-prod/api-tags-prod-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageMemoryUtilization" } } } # module.prod.module.api-tags.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be created + resource "aws_appautoscaling_target" "service_autoscaling" { + arn = (known after apply) + id = (known after apply) + max_capacity = 2 + min_capacity = 1 + resource_id = "service/jfp-ecs-cluster-prod/api-tags-prod-service" + role_arn = (known after apply) + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + tags_all = (known after apply) } # module.prod.module.api-tags.module.ecs-task.aws_cloudwatch_log_group.ecs_cw_log_group will be created + resource "aws_cloudwatch_log_group" "ecs_cw_log_group" { + arn = (known after apply) + id = (known after apply) + name = "api-tags-prod-logs" + name_prefix = (known after apply) + retention_in_days = 0 + skip ```


Warning: Output length greater than max comment size. Continued in next comment.

jesus-film-bot commented 5 months ago

Continued plan output from previous comment.

Show Output ```diff _destroy = false + tags_all = (known after apply) } # module.prod.module.api-tags.module.ecs-task.aws_ecr_lifecycle_policy.ecr_policy will be created + resource "aws_ecr_lifecycle_policy" "ecr_policy" { + id = (known after apply) + policy = jsonencode( { + rules = [ + { + action = { + type = "expire" } + description = "Expire more than 10 images" + rulePriority = 1 + selection = { + countNumber = 10 + countType = "imageCountMoreThan" + tagStatus = "any" } }, ] } ) + registry_id = (known after apply) + repository = "jfp-api-tags-prod" } # module.prod.module.api-tags.module.ecs-task.aws_ecr_repository.ecr_repository will be created + resource "aws_ecr_repository" "ecr_repository" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "jfp-api-tags-prod" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) } # module.prod.module.api-tags.module.ecs-task.aws_ecs_service.ecs_service will be created + resource "aws_ecs_service" "ecs_service" { + cluster = "arn:aws:ecs:us-east-2:410965620680:cluster/jfp-ecs-cluster-prod" + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = "FARGATE" + name = "api-tags-prod-service" + platform_version = (known after apply) + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + load_balancer { + container_name = "jfp-api-tags-prod-app" + container_port = 4006 + target_group_arn = (known after apply) # (1 unchanged attribute hidden) } + network_configuration { + assign_public_ip = false + security_groups = [ + "sg-02935fccc551bacd8", ] + subnets = [ + "subnet-02f4c2a33ace122c5", + "subnet-036663ddfdb3b94b0", + "subnet-05c389158df4b940a", ] } } # module.prod.module.api-tags.module.ecs-task.aws_ecs_task_definition.ecs_task_definition will be created + resource "aws_ecs_task_definition" "ecs_task_definition" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "512" + execution_role_arn = "arn:aws:iam::410965620680:role/jfp-ecs-task-execution-role" + family = "jfp-api-tags-prod" + id = (known after apply) + memory = "1024" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) } # module.prod.module.api-tags.module.ecs-task.aws_route53_record.record will be created + resource "aws_route53_record" "record" { + allow_overwrite = (known after apply) + fqdn = (known after apply) + id = (known after apply) + name = "api-tags" + records = [ + "internal-jfp-internal-alb-prod-1581820397.us-east-2.elb.amazonaws.com", ] + ttl = 300 + type = "CNAME" + zone_id = "Z03223152FHL8WN66TI5X" } # module.prod.module.api-tags.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_TAGS"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-tags/prod/PG_DATABASE_URL_TAGS" + overwrite = true + tags = { + "name" = "PG_DATABASE_URL_TAGS" } + tags_all = { + "name" = "PG_DATABASE_URL_TAGS" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-users.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/api-users-prod-service" name = "api-users-prod-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-users-prod:41" -> (known after apply) # (15 unchanged attributes hidden) # (5 unchanged blocks hidden) } # module.prod.module.api-users.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-users-prod:41" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-users-prod" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-api-users-prod-app" ~ secrets = [ # (5 unchanged elements hidden) { name = "JOURNEYS_ADMIN_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/JOURNEYS_ADMIN_URL" }, - { - name = "NAT_ADDRESSES" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/NAT_ADDRESSES" }, { name = "PG_DATABASE_URL_USERS" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/PG_DATABASE_URL_USERS" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/REDIS_PORT" }, { name = "REDIS_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/REDIS_URL" }, # (1 unchanged element hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-api-users-prod-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-users-prod-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-api-users-prod" -> (known after apply) ~ revision = 41 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.prod.module.api-users.module.ecs-task.aws_ssm_parameter.parameters["NAT_ADDRESSES"] will be destroyed # (because key ["NAT_ADDRESSES"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/NAT_ADDRESSES" -> null - data_type = "text" -> null - id = "/ecs/api-users/prod/NAT_ADDRESSES" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-users/prod/NAT_ADDRESSES" -> null - overwrite = true -> null - tags = { - "name" = "NAT_ADDRESSES" } -> null - tags_all = { - "name" = "NAT_ADDRESSES" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-users.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-users/prod/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-users/prod/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-videos.module.alb-listener.aws_alb_listener.alb_listener will be created + resource "aws_alb_listener" "alb_listener" { + arn = (known after apply) + id = (known after apply) + load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-2:410965620680:loadbalancer/app/jfp-internal-alb-prod/ae1556aacf21465f" + port = 4004 + protocol = "HTTP" + ssl_policy = (known after apply) + tags_all = (known after apply) + default_action { + order = (known after apply) + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "No routes defined" + status_code = "200" } } } # module.prod.module.api-videos.module.ecs-task.aws_alb_listener_rule.alb_listener_rule will be created + resource "aws_alb_listener_rule" "alb_listener_rule" { + arn = (known after apply) + id = (known after apply) + listener_arn = (known after apply) + priority = (known after apply) + tags_all = (known after apply) + action { + order = (known after apply) + target_group_arn = (known after apply) + type = "forward" } + condition { + host_header { + values = [ + "api-videos.service.internal", ] } } } # module.prod.module.api-videos.module.ecs-task.aws_alb_target_group.alb_target_group will be created + resource "aws_alb_target_group" "alb_target_group" { + arn = (known after apply) + arn_suffix = (known after apply) + connection_termination = false + deregistration_delay = "300" + id = (known after apply) + ip_address_type = (known after apply) + lambda_multi_value_headers_enabled = false + load_balancing_algorithm_type = (known after apply) + load_balancing_cross_zone_enabled = (known after apply) + name = "api-videos-prod-tg" + port = 4004 + preserve_client_ip = (known after apply) + protocol = "HTTP" + protocol_version = (known after apply) + proxy_protocol_v2 = false + slow_start = 0 + tags_all = (known after apply) + target_type = "ip" + vpc_id = "vpc-0b722b0a1f7789afd" + health_check { + enabled = true + healthy_threshold = 2 + interval = 5 + matcher = (known after apply) + path = "/.well-known/apollo/server-health" + port = "traffic-port" + protocol = "HTTP" + timeout = 4 + unhealthy_threshold = 3 } + stickiness (known after apply) + target_failover (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_appautoscaling_policy.ecs_policy_cpu will be created + resource "aws_appautoscaling_policy" "ecs_policy_cpu" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-cpu-autoscaling-prod" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-prod/api-videos-prod-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageCPUUtilization" } } } # module.prod.module.api-videos.module.ecs-task.aws_appautoscaling_policy.ecs_policy_memory will be created + resource "aws_appautoscaling_policy" "ecs_policy_memory" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-memory-autoscaling-prod" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-prod/api-videos-prod-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageMemoryUtilization" } } } # module.prod.module.api-videos.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be created + resource "aws_appautoscaling_target" "service_autoscaling" { + arn = (known after apply) + id = (known after apply) + max_capacity = 2 + min_capacity = 1 + resource_id = "service/jfp-ecs-cluster-prod/api-videos-prod-service" + role_arn = (known after apply) + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + tags_all = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_cloudwatch_log_group.ecs_cw_log_group will be created + resource "aws_cloudwatch_log_group" "ecs_cw_log_group" { + arn = (known after apply) + id = (known after apply) + name = "api-videos-prod-logs" + name_prefix = (known after apply) + retention_in_days = 0 + skip_destroy = false + tags_all = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ecr_lifecycle_policy.ecr_policy will be created + resource "aws_ecr_lifecycle_policy" "ecr_policy" { + id = (known after apply) + policy = jsonencode( { + rules = [ + { + action = { + type = "expire" } + description = "Expire more than 10 images" + rulePriority = 1 + selection = { + countNumber = 10 + countType = "imageCountMoreThan" + tagStatus = "any" } }, ] } ) + registry_id = (known after apply) + repository = "jfp-api-videos-prod" } # module.prod.module.api-videos.module.ecs-task.aws_ecr_repository.ecr_repository will be created + resource "aws_ecr_repository" "ecr_repository" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "jfp-api-videos-prod" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ecs_service.ecs_service will be created + resource "aws_ecs_service" "ecs_service" { + cluster = "arn:aws:ecs:us-east-2:410965620680:cluster/jfp-ecs-cluster-prod" + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = "FARGATE" + name = "api-videos-prod-service" + platform_version = (known after apply) + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + load_balancer { + container_name = "jfp-api-videos-prod-app" + container_port = 4004 + target_group_arn = (known after apply) # (1 unchanged attribute hidden) } + network_configuration { + assign_public_ip = false + security_groups = [ + "sg-02935fccc551bacd8", ] + subnets = [ + "subnet-02f4c2a33ace122c5", + "subnet-036663ddfdb3b94b0", + "subnet-05c389158df4b940a", ] } } # module.prod.module.api-videos.module.ecs-task.aws_ecs_task_definition.ecs_task_definition will be created + resource "aws_ecs_task_definition" "ecs_task_definition" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "1024" + execution_role_arn = "arn:aws:iam::410965620680:role/jfp-ecs-task-execution-role" + family = "jfp-api-videos-prod" + id = (known after apply) + memory = "4096" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_route53_record.record will be created + resource "aws_route53_record" "record" { + allow_overwrite = (known after apply) + fqdn = (known after apply) + id = (known after apply) + name = "api-videos" + records = [ + "internal-jfp-internal-alb-prod-1581820397.us-east-2.elb.amazonaws.com", ] + ttl = 300 + type = "CNAME" + zone_id = "Z03223152FHL8WN66TI5X" } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/ALGOLIA_API_KEY" + overwrite = true + tags = { + "name" = "ALGOLIA_API_KEY" } + tags_all = { + "name" = "ALGOLIA_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_APPLICATION_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/ALGOLIA_APPLICATION_ID" + overwrite = true + tags = { + "name" = "ALGOLIA_APPLICATION_ID" } + tags_all = { + "name" = "ALGOLIA_APPLICATION_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_INDEX"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/ALGOLIA_INDEX" + overwrite = true + tags = { + "name" = "ALGOLIA_INDEX" } + tags_all = { + "name" = "ALGOLIA_INDEX" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/ARCLIGHT_API_KEY" + overwrite = true + tags = { + "name" = "ARCLIGHT_API_KEY" } + tags_all = { + "name" = "ARCLIGHT_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_V3_URL"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/ARCLIGHT_V3_URL" + overwrite = true + tags = { + "name" = "ARCLIGHT_V3_URL" } + tags_all = { + "name" = "ARCLIGHT_V3_URL" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["BIG_QUERY_APPLICATION_JSON"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/BIG_QUERY_APPLICATION_JSON" + overwrite = true + tags = { + "name" = "BIG_QUERY_APPLICATION_JSON" } + tags_all = { + "name" = "BIG_QUERY_APPLICATION_JSON" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["CROWDIN_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/CROWDIN_API_KEY" + overwrite = true + tags = { + "name" = "CROWDIN_API_KEY" } + tags_all = { + "name" = "CROWDIN_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["GATEWAY_URL"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/GATEWAY_URL" + overwrite = true + tags = { + "name" = "GATEWAY_URL" } + tags_all = { + "name" = "GATEWAY_URL" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_VIDEOS"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/PG_DATABASE_URL_VIDEOS" + overwrite = true + tags = { + "name" = "PG_DATABASE_URL_VIDEOS" } + tags_all = { + "name" = "PG_DATABASE_URL_VIDEOS" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["REDIS_URL"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/REDIS_URL" + overwrite = true + tags = { + "name" = "REDIS_URL" } + tags_all = { + "name" = "REDIS_URL" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.journeys-admin.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/journeys-admin-prod-service" name = "journeys-admin-prod-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-journeys-admin-prod:4" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.prod.module.journeys-admin.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-journeys-admin-prod:4" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-journeys-admin-prod" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-journeys-admin-prod-app" ~ secrets = [ # (4 unchanged elements hidden) { name = "LAUNCH_DARKLY_SDK_KEY" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/LAUNCH_DARKLY_SDK_KEY" }, - { - name = "NEXT_PUBLIC_ALGOLIA_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_API_KEY" }, - { - name = "NEXT_PUBLIC_ALGOLIA_APP_ID" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_APP_ID" }, - { - name = "NEXT_PUBLIC_ALGOLIA_INDEX" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_INDEX" }, { name = "NEXT_PUBLIC_CLOUDFLARE_STREAM_CUSTOMER_CODE" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_CLOUDFLARE_STREAM_CUSTOMER_CODE" }, # (16 unchanged elements hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-journeys-admin-prod-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-journeys-admin-prod-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-journeys-admin-prod" -> (known after apply) ~ revision = 4 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.prod.module.journeys-admin.module.ecs-task.aws_ssm_parameter.parameters["NEXT_PUBLIC_ALGOLIA_API_KEY"] will be destroyed # (because key ["NEXT_PUBLIC_ALGOLIA_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "NEXT_PUBLIC_ALGOLIA_API_KEY" } -> null - tags_all = { - "name" = "NEXT_PUBLIC_ALGOLIA_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.prod.module.journeys-admin.module.ecs-task.aws_ssm_parameter.parameters["NEXT_PUBLIC_ALGOLIA_APP_ID"] will be destroyed # (because key ["NEXT_PUBLIC_ALGOLIA_APP_ID"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_APP_ID" -> null - data_type = "text" -> null - id = "/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_APP_ID" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_APP_ID" -> null - overwrite = true -> null - tags = { - "name" = "NEXT_PUBLIC_ALGOLIA_APP_ID" } -> null - tags_all = { - "name" = "NEXT_PUBLIC_ALGOLIA_APP_ID" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.prod.module.journeys-admin.module.ecs-task.aws_ssm_parameter.parameters["NEXT_PUBLIC_ALGOLIA_INDEX"] will be destroyed # (because key ["NEXT_PUBLIC_ALGOLIA_INDEX"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_INDEX" -> null - data_type = "text" -> null - id = "/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_INDEX" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_INDEX" -> null - overwrite = true -> null - tags = { - "name" = "NEXT_PUBLIC_ALGOLIA_INDEX" } -> null - tags_all = { - "name" = "NEXT_PUBLIC_ALGOLIA_INDEX" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-journeys.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-journeys-stage-service" name = "api-journeys-stage-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-stage:40" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.stage.module.api-journeys.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-stage:40" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-stage" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-api-journeys-stage-app" ~ secrets = [ # (26 unchanged elements hidden) { name = "POWER_BI_WORKSPACE_ID" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/POWER_BI_WORKSPACE_ID" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/REDIS_PORT" }, { name = "REDIS_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/REDIS_URL" }, # (4 unchanged elements hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-api-journeys-stage-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-journeys-stage-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-api-journeys-stage" -> (known after apply) ~ revision = 40 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.stage.module.api-journeys.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-journeys/stage/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-journeys/stage/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-languages.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-languages-stage-service" name = "api-languages-stage-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-languages-stage:27" -> (known after apply) # (15 unchanged attributes hidden) # (5 unchanged blocks hidden) } # module.stage.module.api-languages.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-languages-stage:27" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-languages-stage" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-api-languages-stage-app" ~ secrets = [ # (3 unchanged elements hidden) { name = "PG_DATABASE_URL_LANGUAGES" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/stage/PG_DATABASE_URL_LANGUAGES" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/stage/REDIS_PORT" }, { name = "REDIS_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/stage/REDIS_URL" }, # (2 unchanged elements hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-api-languages-stage-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-languages-stage-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-api-languages-stage" -> (known after apply) ~ revision = 27 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.stage.module.api-languages.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/stage/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-languages/stage/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-languages/stage/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-media-stage-service" name = "api-media-stage-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-stage:20" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.stage.module.api-media.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-stage:20" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-stage" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { ~ cpu = 1024 -> 512 ~ memory = 2048 -> 1024 name = "jfp-api-media-stage-app" ~ secrets = [ - { - name = "ALGOLIA_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_API_KEY" }, - { - name = "ALGOLIA_APPLICATION_ID" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_APPLICATION_ID" }, - { - name = "ALGOLIA_INDEX" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_INDEX" }, - { - name = "ARCLIGHT_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ARCLIGHT_API_KEY" }, - { - name = "ARCLIGHT_V3_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ARCLIGHT_V3_URL" }, - { - name = "BIG_QUERY_APPLICATION_JSON" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/BIG_QUERY_APPLICATION_JSON" }, { name = "CLOUDFLARE_ACCOUNT_ID" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/CLOUDFLARE_ACCOUNT_ID" }, # (1 unchanged element hidden) { name = "CLOUDFLARE_STREAM_TOKEN" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/CLOUDFLARE_STREAM_TOKEN" }, - { - name = "CROWDIN_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/CROWDIN_API_KEY" }, - { - name = "GATEWAY_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/GATEWAY_URL" }, { name = "GOOGLE_APPLICATION_JSON" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/GOOGLE_APPLICATION_JSON" }, { name = "PG_DATABASE_URL_MEDIA" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/PG_DATABASE_URL_MEDIA" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/REDIS_PORT" }, - { - name = "REDIS_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/REDIS_URL" }, { name = "SEGMIND_API_KEY" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/SEGMIND_API_KEY" }, # (2 unchanged elements hidden) ] - systemControls = [] # (7 unchanged attributes hidden) }, ~ { name = "jfp-api-media-stage-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-media-stage-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ cpu = "1024" -> "512" # forces replacement ~ id = "jfp-api-media-stage" -> (known after apply) ~ memory = "2048" -> "1024" # forces replacement ~ revision = 20 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (8 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_API_KEY"] will be destroyed # (because key ["ALGOLIA_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/ALGOLIA_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/ALGOLIA_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "ALGOLIA_API_KEY" } -> null - tags_all = { - "name" = "ALGOLIA_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 3 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_APPLICATION_ID"] will be destroyed # (because key ["ALGOLIA_APPLICATION_ID"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_APPLICATION_ID" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/ALGOLIA_APPLICATION_ID" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/ALGOLIA_APPLICATION_ID" -> null - overwrite = true -> null - tags = { - "name" = "ALGOLIA_APPLICATION_ID" } -> null - tags_all = { - "name" = "ALGOLIA_APPLICATION_ID" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_INDEX"] will be destroyed # (because key ["ALGOLIA_INDEX"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_INDEX" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/ALGOLIA_INDEX" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/ALGOLIA_INDEX" -> null - overwrite = true -> null - tags = { - "name" = "ALGOLIA_INDEX" } -> null - tags_all = { - "name" = "ALGOLIA_INDEX" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_API_KEY"] will be destroyed # (because key ["ARCLIGHT_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ARCLIGHT_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/ARCLIGHT_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/ARCLIGHT_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "ARCLIGHT_API_KEY" } -> null - tags_all = { - "name" = "ARCLIGHT_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_V3_URL"] will be destroyed # (because key ["ARCLIGHT_V3_URL"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ARCLIGHT_V3_URL" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/ARCLIGHT_V3_URL" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/ARCLIGHT_V3_URL" -> null - overwrite = true -> null - tags = { - "name" = "ARCLIGHT_V3_URL" } -> null - tags_all = { - "name" = "ARCLIGHT_V3_URL" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["BIG_QUERY_APPLICATION_JSON"] will be destroyed # (because key ["BIG_QUERY_APPLICATION_JSON"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/BIG_QUERY_APPLICATION_JSON" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/BIG_QUERY_APPLICATION_JSON" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/BIG_QUERY_APPLICATION_JSON" -> null - overwrite = true -> null - tags = { - "name" = "BIG_QUERY_APPLICATION_JSON" } -> null - tags_all = { - "name" = "BIG_QUERY_APPLICATION_JSON" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["CROWDIN_API_KEY"] will be destroyed # (because key ["CROWDIN_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/CROWDIN_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/CROWDIN_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/CROWDIN_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "CROWDIN_API_KEY" } -> null - tags_all = { - "name" = "CROWDIN_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["GATEWAY_URL"] will be destroyed # (because key ["GATEWAY_URL"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/GATEWAY_URL" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/GATEWAY_URL" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/GATEWAY_URL" -> null - overwrite = true -> null - tags = { - "name" = "GATEWAY_URL" } -> null - tags_all = { - "name" = "GATEWAY_URL" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["REDIS_URL"] will be destroyed # (because key ["REDIS_URL"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/REDIS_URL" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/REDIS_URL" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/REDIS_URL" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_URL" } -> null - tags_all = { - "name" = "REDIS_URL" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-nexus.module.alb-listener.aws_alb_listener.alb_listener will be created + resource "aws_alb_listener" "alb_listener" { + arn = (known after apply) + id = (known after apply) + load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-2:410965620680:loadbalancer/app/jfp-internal-alb-stage/846f69021da58f87" + port = 4007 + protocol = "HTTP" + ssl_policy = (known after apply) + tags_all = (known after apply) + default_action { + order = (known after apply) + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "No routes defined" + status_code = "200" } } } # module.stage.module.api-nexus.module.ecs-task.aws_alb_listener_rule.alb_listener_rule will be created + resource "aws_alb_listener_rule" "alb_listener_rule" { + arn = (known after apply) + id = (known after apply) + listener_arn = (known after apply) + priority = (known after apply) + tags_all = (known after apply) + action { + order = (known after apply) + target_group_arn = (known after apply) + type = "forward" } + condition { + host_header { + values = [ + "api-nexus.stage.internal", ] } } } # module.stage.module.api-nexus.module.ecs-task.aws_alb_target_group.alb_target_group will be created + resource "aws_alb_target_group" "alb_target_group" { + arn = (known after apply) + arn_suffix = (known after apply) + connection_termination = false + deregistration_delay = "300" + id = (known after apply) + ip_address_type = (known after apply) + lambda_multi_value_headers_enabled = false + load_balancing_algorithm_type = (known after apply) + load_balancing_cross_zone_enabled = (known after apply) + name = "api-nexus-stage-tg" + port = 4007 + preserve_client_ip = (known after apply) + protocol = "HTTP" + protocol_version = (known after apply) + proxy_protocol_v2 = false + slow_start = 0 + tags_all = (known after apply) + target_type = "ip" + vpc_id = "vpc-08eeff0fe23f23079" + health_check { + enabled = true + healthy_threshold = 2 + interval = 5 + matcher = (known after apply) + path = "/.well-known/apollo/server-health" + port = "traffic-port" + protocol = "HTTP" + timeout = 4 + unhealthy_threshold = 3 } + stickiness (known after apply) + target_failover (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_appautoscaling_policy.ecs_policy_cpu will be created + resource "aws_appautoscaling_policy" "ecs_policy_cpu" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-cpu-autoscaling-stage" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-stage/api-nexus-stage-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageCPUUtilization" } ```


Warning: Output length greater than max comment size. Continued in next comment.

jesus-film-bot commented 5 months ago

Continued plan output from previous comment.

Show Output ```diff } } # module.stage.module.api-nexus.module.ecs-task.aws_appautoscaling_policy.ecs_policy_memory will be created + resource "aws_appautoscaling_policy" "ecs_policy_memory" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-memory-autoscaling-stage" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-stage/api-nexus-stage-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageMemoryUtilization" } } } # module.stage.module.api-nexus.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be created + resource "aws_appautoscaling_target" "service_autoscaling" { + arn = (known after apply) + id = (known after apply) + max_capacity = 2 + min_capacity = 1 + resource_id = "service/jfp-ecs-cluster-stage/api-nexus-stage-service" + role_arn = (known after apply) + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + tags_all = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_cloudwatch_log_group.ecs_cw_log_group will be created + resource "aws_cloudwatch_log_group" "ecs_cw_log_group" { + arn = (known after apply) + id = (known after apply) + name = "api-nexus-stage-logs" + name_prefix = (known after apply) + retention_in_days = 0 + skip_destroy = false + tags_all = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ecr_lifecycle_policy.ecr_policy will be created + resource "aws_ecr_lifecycle_policy" "ecr_policy" { + id = (known after apply) + policy = jsonencode( { + rules = [ + { + action = { + type = "expire" } + description = "Expire more than 10 images" + rulePriority = 1 + selection = { + countNumber = 10 + countType = "imageCountMoreThan" + tagStatus = "any" } }, ] } ) + registry_id = (known after apply) + repository = "jfp-api-nexus-stage" } # module.stage.module.api-nexus.module.ecs-task.aws_ecr_repository.ecr_repository will be created + resource "aws_ecr_repository" "ecr_repository" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "jfp-api-nexus-stage" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ecs_service.ecs_service will be created + resource "aws_ecs_service" "ecs_service" { + cluster = "arn:aws:ecs:us-east-2:410965620680:cluster/jfp-ecs-cluster-stage" + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = "FARGATE" + name = "api-nexus-stage-service" + platform_version = (known after apply) + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + load_balancer { + container_name = "jfp-api-nexus-stage-app" + container_port = 4007 + target_group_arn = (known after apply) # (1 unchanged attribute hidden) } + network_configuration { + assign_public_ip = false + security_groups = [ + "sg-087bc43a262c94bc1", ] + subnets = [ + "subnet-01f4e86883462b5ce", + "subnet-062de12e3e3639eff", + "subnet-09cbfc19be5214a8b", ] } } # module.stage.module.api-nexus.module.ecs-task.aws_ecs_task_definition.ecs_task_definition will be created + resource "aws_ecs_task_definition" "ecs_task_definition" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "1024" + execution_role_arn = "arn:aws:iam::410965620680:role/jfp-ecs-task-execution-role" + family = "jfp-api-nexus-stage" + id = (known after apply) + memory = "2048" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_route53_record.record will be created + resource "aws_route53_record" "record" { + allow_overwrite = (known after apply) + fqdn = (known after apply) + id = (known after apply) + name = "api-nexus" + records = [ + "internal-jfp-internal-alb-stage-154137661.us-east-2.elb.amazonaws.com", ] + ttl = 300 + type = "CNAME" + zone_id = "Z056780738DT3AZL6A4WD" } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_ACCESS_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/BUCKET_ACCESS_KEY" + overwrite = true + tags = { + "name" = "BUCKET_ACCESS_KEY" } + tags_all = { + "name" = "BUCKET_ACCESS_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_ENDPOINT"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/BUCKET_ENDPOINT" + overwrite = true + tags = { + "name" = "BUCKET_ENDPOINT" } + tags_all = { + "name" = "BUCKET_ENDPOINT" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_NAME"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/BUCKET_NAME" + overwrite = true + tags = { + "name" = "BUCKET_NAME" } + tags_all = { + "name" = "BUCKET_NAME" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_REGION"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/BUCKET_REGION" + overwrite = true + tags = { + "name" = "BUCKET_REGION" } + tags_all = { + "name" = "BUCKET_REGION" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_SECRET_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/BUCKET_SECRET_KEY" + overwrite = true + tags = { + "name" = "BUCKET_SECRET_KEY" } + tags_all = { + "name" = "BUCKET_SECRET_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["CLOUDFLARE_ACCOUNT_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/CLOUDFLARE_ACCOUNT_ID" + overwrite = true + tags = { + "name" = "CLOUDFLARE_ACCOUNT_ID" } + tags_all = { + "name" = "CLOUDFLARE_ACCOUNT_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["CLOUDFLARE_API_TOKEN"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/CLOUDFLARE_API_TOKEN" + overwrite = true + tags = { + "name" = "CLOUDFLARE_API_TOKEN" } + tags_all = { + "name" = "CLOUDFLARE_API_TOKEN" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["CLOUDFLARE_STREAM_TOKEN"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/CLOUDFLARE_STREAM_TOKEN" + overwrite = true + tags = { + "name" = "CLOUDFLARE_STREAM_TOKEN" } + tags_all = { + "name" = "CLOUDFLARE_STREAM_TOKEN" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["FIREBASE_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/FIREBASE_API_KEY" + overwrite = true + tags = { + "name" = "FIREBASE_API_KEY" } + tags_all = { + "name" = "FIREBASE_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/GOOGLE_API_KEY" + overwrite = true + tags = { + "name" = "GOOGLE_API_KEY" } + tags_all = { + "name" = "GOOGLE_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_APPLICATION_JSON"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/GOOGLE_APPLICATION_JSON" + overwrite = true + tags = { + "name" = "GOOGLE_APPLICATION_JSON" } + tags_all = { + "name" = "GOOGLE_APPLICATION_JSON" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_CLIENT_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/GOOGLE_CLIENT_ID" + overwrite = true + tags = { + "name" = "GOOGLE_CLIENT_ID" } + tags_all = { + "name" = "GOOGLE_CLIENT_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_CLIENT_SECRET"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/GOOGLE_CLIENT_SECRET" + overwrite = true + tags = { + "name" = "GOOGLE_CLIENT_SECRET" } + tags_all = { + "name" = "GOOGLE_CLIENT_SECRET" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_NEXUS"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/PG_DATABASE_URL_NEXUS" + overwrite = true + tags = { + "name" = "PG_DATABASE_URL_NEXUS" } + tags_all = { + "name" = "PG_DATABASE_URL_NEXUS" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["REDIS_HOST"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/REDIS_HOST" + overwrite = true + tags = { + "name" = "REDIS_HOST" } + tags_all = { + "name" = "REDIS_HOST" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-tags.module.alb-listener.aws_alb_listener.alb_listener will be created + resource "aws_alb_listener" "alb_listener" { + arn = (known after apply) + id = (known after apply) + load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-2:410965620680:loadbalancer/app/jfp-internal-alb-stage/846f69021da58f87" + port = 4006 + protocol = "HTTP" + ssl_policy = (known after apply) + tags_all = (known after apply) + default_action { + order = (known after apply) + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "No routes defined" + status_code = "200" } } } # module.stage.module.api-tags.module.ecs-task.aws_alb_listener_rule.alb_listener_rule will be created + resource "aws_alb_listener_rule" "alb_listener_rule" { + arn = (known after apply) + id = (known after apply) + listener_arn = (known after apply) + priority = (known after apply) + tags_all = (known after apply) + action { + order = (known after apply) + target_group_arn = (known after apply) + type = "forward" } + condition { + host_header { + values = [ + "api-tags.stage.internal", ] } } } # module.stage.module.api-tags.module.ecs-task.aws_alb_target_group.alb_target_group will be created + resource "aws_alb_target_group" "alb_target_group" { + arn = (known after apply) + arn_suffix = (known after apply) + connection_termination = false + deregistration_delay = "300" + id = (known after apply) + ip_address_type = (known after apply) + lambda_multi_value_headers_enabled = false + load_balancing_algorithm_type = (known after apply) + load_balancing_cross_zone_enabled = (known after apply) + name = "api-tags-stage-tg" + port = 4006 + preserve_client_ip = (known after apply) + protocol = "HTTP" + protocol_version = (known after apply) + proxy_protocol_v2 = false + slow_start = 0 + tags_all = (known after apply) + target_type = "ip" + vpc_id = "vpc-08eeff0fe23f23079" + health_check { + enabled = true + healthy_threshold = 2 + interval = 5 + matcher = (known after apply) + path = "/.well-known/apollo/server-health" + port = "traffic-port" + protocol = "HTTP" + timeout = 4 + unhealthy_threshold = 3 } + stickiness (known after apply) + target_failover (known after apply) } # module.stage.module.api-tags.module.ecs-task.aws_appautoscaling_policy.ecs_policy_cpu will be created + resource "aws_appautoscaling_policy" "ecs_policy_cpu" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-cpu-autoscaling-stage" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-stage/api-tags-stage-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageCPUUtilization" } } } # module.stage.module.api-tags.module.ecs-task.aws_appautoscaling_policy.ecs_policy_memory will be created + resource "aws_appautoscaling_policy" "ecs_policy_memory" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-memory-autoscaling-stage" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-stage/api-tags-stage-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageMemoryUtilization" } } } # module.stage.module.api-tags.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be created + resource "aws_appautoscaling_target" "service_autoscaling" { + arn = (known after apply) + id = (known after apply) + max_capacity = 2 + min_capacity = 1 + resource_id = "service/jfp-ecs-cluster-stage/api-tags-stage-service" + role_arn = (known after apply) + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + tags_all = (known after apply) } # module.stage.module.api-tags.module.ecs-task.aws_cloudwatch_log_group.ecs_cw_log_group will be created + resource "aws_cloudwatch_log_group" "ecs_cw_log_group" { + arn = (known after apply) + id = (known after apply) + name = "api-tags-stage-logs" + name_prefix = (known after apply) + retention_in_days = 0 + skip_destroy = false + tags_all = (known after apply) } # module.stage.module.api-tags.module.ecs-task.aws_ecr_lifecycle_policy.ecr_policy will be created + resource "aws_ecr_lifecycle_policy" "ecr_policy" { + id = (known after apply) + policy = jsonencode( { + rules = [ + { + action = { + type = "expire" } + description = "Expire more than 10 images" + rulePriority = 1 + selection = { + countNumber = 10 + countType = "imageCountMoreThan" + tagStatus = "any" } }, ] } ) + registry_id = (known after apply) + repository = "jfp-api-tags-stage" } # module.stage.module.api-tags.module.ecs-task.aws_ecr_repository.ecr_repository will be created + resource "aws_ecr_repository" "ecr_repository" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "jfp-api-tags-stage" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) } # module.stage.module.api-tags.module.ecs-task.aws_ecs_service.ecs_service will be created + resource "aws_ecs_service" "ecs_service" { + cluster = "arn:aws:ecs:us-east-2:410965620680:cluster/jfp-ecs-cluster-stage" + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = "FARGATE" + name = "api-tags-stage-service" + platform_version = (known after apply) + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + load_balancer { + container_name = "jfp-api-tags-stage-app" + container_port = 4006 + target_group_arn = (known after apply) # (1 unchanged attribute hidden) } + network_configuration { + assign_public_ip = false + security_groups = [ + "sg-087bc43a262c94bc1", ] + subnets = [ + "subnet-01f4e86883462b5ce", + "subnet-062de12e3e3639eff", + "subnet-09cbfc19be5214a8b", ] } } # module.stage.module.api-tags.module.ecs-task.aws_ecs_task_definition.ecs_task_definition will be created + resource "aws_ecs_task_definition" "ecs_task_definition" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "512" + execution_role_arn = "arn:aws:iam::410965620680:role/jfp-ecs-task-execution-role" + family = "jfp-api-tags-stage" + id = (known after apply) + memory = "1024" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) } # module.stage.module.api-tags.module.ecs-task.aws_route53_record.record will be created + resource "aws_route53_record" "record" { + allow_overwrite = (known after apply) + fqdn = (known after apply) + id = (known after apply) + name = "api-tags" + records = [ + "internal-jfp-internal-alb-stage-154137661.us-east-2.elb.amazonaws.com", ] + ttl = 300 + type = "CNAME" + zone_id = "Z056780738DT3AZL6A4WD" } # module.stage.module.api-tags.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_TAGS"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-tags/stage/PG_DATABASE_URL_TAGS" + overwrite = true + tags = { + "name" = "PG_DATABASE_URL_TAGS" } + tags_all = { + "name" = "PG_DATABASE_URL_TAGS" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-users.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-users-stage-service" name = "api-users-stage-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-users-stage:31" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.stage.module.api-users.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-users-stage:31" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-users-stage" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-api-users-stage-app" ~ secrets = [ # (5 unchanged elements hidden) { name = "JOURNEYS_ADMIN_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/JOURNEYS_ADMIN_URL" }, - { - name = "NAT_ADDRESSES" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/NAT_ADDRESSES" }, { name = "PG_DATABASE_URL_USERS" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/PG_DATABASE_URL_USERS" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/REDIS_PORT" }, { name = "REDIS_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/REDIS_URL" }, # (1 unchanged element hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-api-users-stage-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-users-stage-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-api-users-stage" -> (known after apply) ~ revision = 31 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.stage.module.api-users.module.ecs-task.aws_ssm_parameter.parameters["NAT_ADDRESSES"] will be destroyed # (because key ["NAT_ADDRESSES"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/NAT_ADDRESSES" -> null - data_type = "text" -> null - id = "/ecs/api-users/stage/NAT_ADDRESSES" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-users/stage/NAT_ADDRESSES" -> null - overwrite = true -> null - tags = { - "name" = "NAT_ADDRESSES" } -> null - tags_all = { - "name" = "NAT_ADDRESSES" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-users.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-users/stage/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-users/stage/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-videos.module.alb-listener.aws_alb_listener.alb_listener will be created + resource "aws_alb_listener" "alb_listener" { + arn = (known after apply) + id = (known after apply) + load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-2:410965620680:loadbalancer/app/jfp-internal-alb-stage/846f69021da58f87" + port = 4004 + protocol = "HTTP" + ssl_policy = (known after apply) + tags_all = (known after apply) + default_action { + order = (known after apply) + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "No routes defined" + status_code = "200" } } } # module.stage.module.api-videos.module.ecs-task.aws_alb_listener_rule.alb_listener_rule will be created + resource "aws_alb_listener_rule" "alb_listener_rule" { + arn = (known after apply) + id = (known after apply) + listener_arn = (known after apply) + priority = (known after apply) + tags_all = (known after apply) + action { + order = (known after apply) + target_group_arn = (known after apply) + type = "forward" } + condition { + host_header { + values = [ + "api-videos.stage.internal", ] } } } # module.stage.module.api-videos.module.ecs-task.aws_alb_target_group.alb_target_group will be created + resource "aws_alb_target_group" "alb_target_group" { + arn = (known after apply) + arn_suffix = (known after apply) + connection_termination = false + deregistration_delay = "300" + id = (known after apply) + ip_address_type = (known after apply) + lambda_multi_value_headers_enabled = false + load_balancing_algorithm_type = (known after apply) + load_balancing_cross_zone_enabled = (known after apply) + name = "api-videos-stage-tg" + port = 4004 + preserve_client_ip = (known after apply) + protocol = "HTTP" + protocol_version = (known after apply) + proxy_protocol_v2 = false + slow_start = 0 + tags_all = (known after apply) + target_type = "ip" + vpc_id = "vpc-08eeff0fe23f23079" + health_check { + enabled = true + healthy_threshold = 2 + interval = 5 + matcher = (known after apply) + path = "/.well-known/apollo/server-health" + port = "traffic-port" + protocol = "HTTP" + timeout = 4 + unhealthy_threshold = 3 } + stickiness (known after apply) + target_failover (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_appautoscaling_policy.ecs_policy_cpu will be created + resource "aws_appautoscaling_policy" "ecs_policy_cpu" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-cpu-autoscaling-stage" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-stage/api-videos-stage-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageCPUUtilization" } } } # module.stage.module.api-videos.module.ecs-task.aws_appautoscaling_policy.ecs_policy_memory will be created + resource "aws_appautoscaling_policy" "ecs_policy_memory" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-memory-autoscaling-stage" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-stage/api-videos-stage-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageMemoryUtilization" } } } # module.stage.module.api-videos.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be created + resource "aws_appautoscaling_target" "service_autoscaling" { + arn = (known after apply) + id = (known after apply) + max_capacity = 2 + min_capacity = 1 + resource_id = "service/jfp-ecs-cluster-stage/api-videos-stage-service" + role_arn = (known after apply) + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + tags_all = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_cloudwatch_log_group.ecs_cw_log_group will be created + resource "aws_cloudwatch_log_group" "ecs_cw_log_group" { + arn = (known after apply) + id = (known after apply) + name = "api-videos-stage-logs" + name_prefix = (known after apply) + retention_in_days = 0 + skip_destroy = false + tags_all = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ecr_lifecycle_policy.ecr_policy will be created + resource "aws_ecr_lifecycle_policy" "ecr_policy" { + id = (known after apply) + policy = jsonencode( { + rules = [ + { + action = { + type = "expire" } + description = "Expire more than 10 images" + rulePriority = 1 + selection = { + countNumber = 10 + countType = "imageCountMoreThan" + tagStatus = "any" } }, ] } ) + registry_id = (known after apply) + repository = "jfp-api-videos-stage" } # module.stage.module.api-videos.module.ecs-task.aws_ecr_repository.ecr_repository will be created + resource "aws_ecr_repository" "ecr_repository" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "jfp-api-videos-stage" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ecs_service.ecs_service will be created + resource "aws_ecs_service" "ecs_service" { + cluster = "arn:aws:ecs:us-east-2:410965620680:cluster/jfp-ecs-cluster-stage" + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = "FARGATE" + name = "api-videos-stage-service" + platform_version = (known after apply) + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + load_balancer { + container_name = "jfp-api-videos-stage-app" + container_port = 4004 + target_group_arn = (known after apply) # (1 unchanged attribute hidden) } + network_configuration { + assign_public_ip = false + security_groups = [ + "sg-087bc43a262c94bc1", ] + subnets = [ + "subnet-01f4e86883462b5ce", + "subnet-062de12e3e3639eff", + "subnet-09cbfc19be5214a8b", ] } } # module.stage.module.api-videos.module.ecs-task.aws_ecs_task_definition.ecs_task_definition will be created + resource "aws_ecs_task_definition" "ecs_task_definition" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "1024" + execution_role_arn = "arn:aws:iam::410965620680:role/jfp-ecs-task-execution-role" + family = "jfp-api-videos-stage" + id = (known after apply) + memory = "4096" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_route53_record.record will be created + resource "aws_route53_record" "record" { + allow_overwrite = (known after apply) + fqdn = (known after apply) + id = (known after apply) + name = "api-videos" + records = [ + "internal-jfp-internal-alb-stage-154137661.us-east-2.elb.amazonaws.com", ] + ttl = 300 + type = "CNAME" + zone_id = "Z056780738DT3AZL6A4WD" } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/ALGOLIA_API_KEY" + overwrite = true + tags = { + "name" = "ALGOLIA_API_KEY" } + tags_all = { + "name" = "ALGOLIA_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_APPLICATION_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/ALGOLIA_APPLICATION_ID" + overwrite = true + tags = { + "name" = "ALGOLIA_APPLICATION_ID" } + tags_all = { + "name" = "ALGOLIA_APPLICATION_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_INDEX"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/ALGOLIA_INDEX" + overwrite = true + tags = { + "name" = "ALGOLIA_INDEX" } + tags_all = { + "name" = "ALGOLIA_INDEX" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/ARCLIGHT_API_KEY" + overwrite = true + tags = { + "name" = "ARCLIGHT_API_KEY" } + tags_all = { + "name" = "ARCLIGHT_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_V3_URL"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/ARCLIGHT_V3_URL" + overwrite = true + tags = { + "name" = "ARCLIGHT_V3_URL" } + tags_all = { + "name" = "ARCLIGHT_V3_URL" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["BIG_QUERY_APPLICATION_JSON"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/BIG_QUERY_APPLICATION_JSON" + overwrite = true + tags = { + "name" = "BIG_QUERY_APPLICATION_JSON" } + tags_all = { + "name" = "BIG_QUERY_APPLICATION_JSON" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["CROWDIN_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/CROWDIN_API_KEY" + overwrite = true + tags = { + "name" = "CROWDIN_API_KEY" } + tags_all = { + "name" = "CROWDIN_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["GATEWAY_URL"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/GATEWAY_URL" + overwrite = true + tags = { + "name" = "GATEWAY_URL" } + tags_all = { + "name" = "GATEWAY_URL" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_VIDEOS"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/PG_DATABASE_URL_VIDEOS" + overwrite = true + tags = { + "name" = "PG_DATABASE_URL_VIDEOS" } + tags_all = { + "name" = "PG_DATABASE_URL_VIDEOS" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["REDIS_URL"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/REDIS_URL" + overwrite = true + tags = { + "name" = "REDIS_URL" } + tags_all = { + "name" = "REDIS_URL" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.journeys-admin.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/journeys-admin-stage-service" name = "journeys-admin-stage-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-journeys-admin-stage:7" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.stage.module.journeys-admin.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-journeys-admin-stage:7" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-journeys-admin-stage" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-journeys-admin-stage-app" ~ secrets = [ # (4 unchanged elements hidden) { name = "LAUNCH_DARKLY_SDK_KEY" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/LAUNCH_DARKLY_SDK_KEY" }, - { - name = "NEXT_PUBLIC_ALGOLIA_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_API_KEY" }, - { - name = "NEXT_PUBLIC_ALGOLIA_APP_ID" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_APP_ID" }, - { - name = "NEXT_PUBLIC_ALGOLIA_INDEX" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_INDEX" }, { name = "NEXT_PUBLIC_CLOUDFLARE_STREAM_CUSTOMER_CODE" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_CLOUDFLARE_STREAM_CUSTOMER_CODE" }, # (16 unchanged elements hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-journeys-admin-stage-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-journeys-admin-stage-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-journeys-admin-stage" -> (known after apply) ~ revision = 7 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.stage.module.journeys-admin.module.ecs-task.aws_ssm_parameter.parameters["NEXT_PUBLIC_ALGOLIA_API_KEY"] will be destroyed # (because key ["NEXT_PUBLIC_ALGOLIA_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "NEXT_PUBLIC_ALGOLIA_API_KEY" } -> null - tags_all = { - "name" = "NEXT_PUBLIC_ALGOLIA_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.stage.module.journeys-admin.module.ecs-task.aws_ssm_parameter.parameters["NEXT_PUBLIC_ALGOLIA_APP_ID"] will be destroyed # (because key ["NEXT_PUBLIC_ALGOLIA_APP_ID"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_APP_ID" -> null - data_type = "text" -> null - id = "/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_APP_ID" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_APP_ID" -> null - overwrite = true -> null - tags = { - "name" = "NEXT_PUBLIC_ALGOLIA_APP_ID" } -> null - tags_all = { - "name" = "NEXT_PUBLIC_ALGOLIA_APP_ID" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.stage.module.journeys-admin.module.ecs-task.aws_ssm_parameter.parameters["NEXT_PUBLIC_ALGOLIA_INDEX"] will be destroyed # (because key ["NEXT_PUBLIC_ALGOLIA_INDEX"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_INDEX" -> null - data_type = "text" -> null - id = "/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_INDEX" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_INDEX" -> null - overwrite = true -> null - tags = { - "name" = "NEXT_PUBLIC_ALGOLIA_INDEX" } -> null - tags_all = { - "name" = "NEXT_PUBLIC_ALGOLIA_INDEX" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } Plan: 134 to add, 10 to change, 44 to destroy. ```

2. dir: infrastructure/resources/atlantis workspace: default

Show Output ```diff No changes. Your infrastructure matches the configuration. Terraform has compared your real infrastructure against your configuration and found no differences, so no changes are needed. ╷ │ Warning: Argument is deprecated │ │ with module.atlantis.module.ecs.aws_ecs_cluster.this[0], │ on .terraform/modules/atlantis.ecs/main.tf line 1, in resource "aws_ecs_cluster" "this": │ 1: resource "aws_ecs_cluster" "this" { │ │ Use the aws_ecs_cluster_capacity_providers resource instead │ │ (and one more similar warning elsewhere) ╵ ```

3. dir: infrastructure/resources/doppler workspace: default

No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

4. dir: infrastructure/resources/terraform workspace: default

No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

Plan Summary

4 projects, 1 with changes, 3 with no changes, 0 failed

jesus-film-bot commented 5 months ago

Ran Plan for 4 projects:

  1. dir: infrastructure workspace: default
  2. dir: infrastructure/resources/atlantis workspace: default
  3. dir: infrastructure/resources/doppler workspace: default
  4. dir: infrastructure/resources/terraform workspace: default

1. dir: infrastructure workspace: default

Show Output ```diff Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create ~ update in-place - destroy +/- create replacement and then destroy Terraform will perform the following actions: # module.prod.module.api-journeys.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/api-journeys-prod-service" name = "api-journeys-prod-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-prod:49" -> (known after apply) # (15 unchanged attributes hidden) # (5 unchanged blocks hidden) } # module.prod.module.api-journeys.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-prod:49" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-prod" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-api-journeys-prod-app" ~ secrets = [ # (26 unchanged elements hidden) { name = "POWER_BI_WORKSPACE_ID" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/prod/POWER_BI_WORKSPACE_ID" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/prod/REDIS_PORT" }, { name = "REDIS_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/prod/REDIS_URL" }, # (4 unchanged elements hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-api-journeys-prod-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-journeys-prod-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-api-journeys-prod" -> (known after apply) ~ revision = 49 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.prod.module.api-journeys.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/prod/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-journeys/prod/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-journeys/prod/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-languages.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/api-languages-prod-service" name = "api-languages-prod-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-languages-prod:37" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.prod.module.api-languages.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-languages-prod:37" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-languages-prod" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-api-languages-prod-app" ~ secrets = [ # (3 unchanged elements hidden) { name = "PG_DATABASE_URL_LANGUAGES" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/prod/PG_DATABASE_URL_LANGUAGES" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/prod/REDIS_PORT" }, { name = "REDIS_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/prod/REDIS_URL" }, # (2 unchanged elements hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-api-languages-prod-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-languages-prod-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-api-languages-prod" -> (known after apply) ~ revision = 37 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.prod.module.api-languages.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/prod/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-languages/prod/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-languages/prod/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/api-media-prod-service" name = "api-media-prod-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-prod:22" -> (known after apply) # (15 unchanged attributes hidden) # (5 unchanged blocks hidden) } # module.prod.module.api-media.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-prod:22" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-prod" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { ~ cpu = 1024 -> 512 ~ memory = 2048 -> 1024 name = "jfp-api-media-prod-app" ~ secrets = [ - { - name = "ALGOLIA_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_API_KEY" }, - { - name = "ALGOLIA_APPLICATION_ID" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_APPLICATION_ID" }, - { - name = "ALGOLIA_INDEX" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_INDEX" }, - { - name = "ARCLIGHT_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ARCLIGHT_API_KEY" }, - { - name = "ARCLIGHT_V3_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ARCLIGHT_V3_URL" }, - { - name = "BIG_QUERY_APPLICATION_JSON" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/BIG_QUERY_APPLICATION_JSON" }, { name = "CLOUDFLARE_ACCOUNT_ID" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/CLOUDFLARE_ACCOUNT_ID" }, # (1 unchanged element hidden) { name = "CLOUDFLARE_STREAM_TOKEN" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/CLOUDFLARE_STREAM_TOKEN" }, - { - name = "CROWDIN_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/CROWDIN_API_KEY" }, - { - name = "GATEWAY_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/GATEWAY_URL" }, { name = "GOOGLE_APPLICATION_JSON" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/GOOGLE_APPLICATION_JSON" }, { name = "PG_DATABASE_URL_MEDIA" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/PG_DATABASE_URL_MEDIA" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/REDIS_PORT" }, - { - name = "REDIS_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/REDIS_URL" }, { name = "SEGMIND_API_KEY" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/SEGMIND_API_KEY" }, # (2 unchanged elements hidden) ] - systemControls = [] # (7 unchanged attributes hidden) }, ~ { name = "jfp-api-media-prod-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-media-prod-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ cpu = "1024" -> "512" # forces replacement ~ id = "jfp-api-media-prod" -> (known after apply) ~ memory = "2048" -> "1024" # forces replacement ~ revision = 22 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (8 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_API_KEY"] will be destroyed # (because key ["ALGOLIA_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/ALGOLIA_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/ALGOLIA_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "ALGOLIA_API_KEY" } -> null - tags_all = { - "name" = "ALGOLIA_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 3 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_APPLICATION_ID"] will be destroyed # (because key ["ALGOLIA_APPLICATION_ID"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_APPLICATION_ID" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/ALGOLIA_APPLICATION_ID" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/ALGOLIA_APPLICATION_ID" -> null - overwrite = true -> null - tags = { - "name" = "ALGOLIA_APPLICATION_ID" } -> null - tags_all = { - "name" = "ALGOLIA_APPLICATION_ID" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_INDEX"] will be destroyed # (because key ["ALGOLIA_INDEX"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_INDEX" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/ALGOLIA_INDEX" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/ALGOLIA_INDEX" -> null - overwrite = true -> null - tags = { - "name" = "ALGOLIA_INDEX" } -> null - tags_all = { - "name" = "ALGOLIA_INDEX" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_API_KEY"] will be destroyed # (because key ["ARCLIGHT_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ARCLIGHT_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/ARCLIGHT_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/ARCLIGHT_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "ARCLIGHT_API_KEY" } -> null - tags_all = { - "name" = "ARCLIGHT_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 3 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_V3_URL"] will be destroyed # (because key ["ARCLIGHT_V3_URL"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ARCLIGHT_V3_URL" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/ARCLIGHT_V3_URL" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/ARCLIGHT_V3_URL" -> null - overwrite = true -> null - tags = { - "name" = "ARCLIGHT_V3_URL" } -> null - tags_all = { - "name" = "ARCLIGHT_V3_URL" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["BIG_QUERY_APPLICATION_JSON"] will be destroyed # (because key ["BIG_QUERY_APPLICATION_JSON"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/BIG_QUERY_APPLICATION_JSON" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/BIG_QUERY_APPLICATION_JSON" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/BIG_QUERY_APPLICATION_JSON" -> null - overwrite = true -> null - tags = { - "name" = "BIG_QUERY_APPLICATION_JSON" } -> null - tags_all = { - "name" = "BIG_QUERY_APPLICATION_JSON" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["CROWDIN_API_KEY"] will be destroyed # (because key ["CROWDIN_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/CROWDIN_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/CROWDIN_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/CROWDIN_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "CROWDIN_API_KEY" } -> null - tags_all = { - "name" = "CROWDIN_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["GATEWAY_URL"] will be destroyed # (because key ["GATEWAY_URL"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/GATEWAY_URL" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/GATEWAY_URL" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/GATEWAY_URL" -> null - overwrite = true -> null - tags = { - "name" = "GATEWAY_URL" } -> null - tags_all = { - "name" = "GATEWAY_URL" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["REDIS_URL"] will be destroyed # (because key ["REDIS_URL"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/REDIS_URL" -> null - data_type = "text" -> null - id = "/ecs/api-media/prod/REDIS_URL" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/prod/REDIS_URL" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_URL" } -> null - tags_all = { - "name" = "REDIS_URL" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-nexus.module.alb-listener.aws_alb_listener.alb_listener will be created + resource "aws_alb_listener" "alb_listener" { + arn = (known after apply) + id = (known after apply) + load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-2:410965620680:loadbalancer/app/jfp-internal-alb-prod/ae1556aacf21465f" + port = 4007 + protocol = "HTTP" + ssl_policy = (known after apply) + tags_all = (known after apply) + default_action { + order = (known after apply) + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "No routes defined" + status_code = "200" } } } # module.prod.module.api-nexus.module.ecs-task.aws_alb_listener_rule.alb_listener_rule will be created + resource "aws_alb_listener_rule" "alb_listener_rule" { + arn = (known after apply) + id = (known after apply) + listener_arn = (known after apply) + priority = (known after apply) + tags_all = (known after apply) + action { + order = (known after apply) + target_group_arn = (known after apply) + type = "forward" } + condition { + host_header { + values = [ + "api-nexus.service.internal", ] } } } # module.prod.module.api-nexus.module.ecs-task.aws_alb_target_group.alb_target_group will be created + resource "aws_alb_target_group" "alb_target_group" { + arn = (known after apply) + arn_suffix = (known after apply) + connection_termination = false + deregistration_delay = "300" + id = (known after apply) + ip_address_type = (known after apply) + lambda_multi_value_headers_enabled = false + load_balancing_algorithm_type = (known after apply) + load_balancing_cross_zone_enabled = (known after apply) + name = "api-nexus-prod-tg" + port = 4007 + preserve_client_ip = (known after apply) + protocol = "HTTP" + protocol_version = (known after apply) + proxy_protocol_v2 = false + slow_start = 0 + tags_all = (known after apply) + target_type = "ip" + vpc_id = "vpc-0b722b0a1f7789afd" + health_check { + enabled = true + healthy_threshold = 2 + interval = 5 + matcher = (known after apply) + path = "/.well-known/apollo/server-health" + port = "traffic-port" + protocol = "HTTP" + timeout = 4 + unhealthy_threshold = 3 } + stickiness (known after apply) + target_failover (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_appautoscaling_policy.ecs_policy_cpu will be created + resource "aws_appautoscaling_policy" "ecs_policy_cpu" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-cpu-autoscaling-prod" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-prod/api-nexus-prod-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageCPUUtilization" } } } # module.prod.module.api-nexus.module.ecs-task.aws_appautoscaling_policy.ecs_policy_memory will be created + resource "aws_appautoscaling_policy" "ecs_policy_memory" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-memory-autoscaling-prod" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-prod/api-nexus-prod-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageMemoryUtilization" } } } # module.prod.module.api-nexus.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be created + resource "aws_appautoscaling_target" "service_autoscaling" { + arn = (known after apply) + id = (known after apply) + max_capacity = 2 + min_capacity = 1 + resource_id = "service/jfp-ecs-cluster-prod/api-nexus-prod-service" + role_arn = (known after apply) + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + tags_all = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_cloudwatch_log_group.ecs_cw_log_group will be created + resource "aws_cloudwatch_log_group" "ecs_cw_log_group" { + arn = (known after apply) + id = (known after apply) + name = "api-nexus-prod-logs" + name_prefix = (known after apply) + retention_in_days = 0 + skip_destroy = false + tags_all = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ecr_lifecycle_policy.ecr_policy will be created + resource "aws_ecr_lifecycle_policy" "ecr_policy" { + id = (known after apply) + policy = jsonencode( { + rules = [ + { + action = { + type = "expire" } + description = "Expire more than 10 images" + rulePriority = 1 + selection = { + countNumber = 10 + countType = "imageCountMoreThan" + tagStatus = "any" } }, ] } ) + registry_id = (known after apply) + repository = "jfp-api-nexus-prod" } # module.prod.module.api-nexus.module.ecs-task.aws_ecr_repository.ecr_repository will be created + resource "aws_ecr_repository" "ecr_repository" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "jfp-api-nexus-prod" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ecs_service.ecs_service will be created + resource "aws_ecs_service" "ecs_service" { + cluster = "arn:aws:ecs:us-east-2:410965620680:cluster/jfp-ecs-cluster-prod" + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = "FARGATE" + name = "api-nexus-prod-service" + platform_version = (known after apply) + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + load_balancer { + container_name = "jfp-api-nexus-prod-app" + container_port = 4007 + target_group_arn = (known after apply) # (1 unchanged attribute hidden) } + network_configuration { + assign_public_ip = false + security_groups = [ + "sg-02935fccc551bacd8", ] + subnets = [ + "subnet-02f4c2a33ace122c5", + "subnet-036663ddfdb3b94b0", + "subnet-05c389158df4b940a", ] } } # module.prod.module.api-nexus.module.ecs-task.aws_ecs_task_definition.ecs_task_definition will be created + resource "aws_ecs_task_definition" "ecs_task_definition" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "1024" + execution_role_arn = "arn:aws:iam::410965620680:role/jfp-ecs-task-execution-role" + family = "jfp-api-nexus-prod" + id = (known after apply) + memory = "2048" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_route53_record.record will be created + resource "aws_route53_record" "record" { + allow_overwrite = (known after apply) + fqdn = (known after apply) + id = (known after apply) + name = "api-nexus" + records = [ + "internal-jfp-internal-alb-prod-1581820397.us-east-2.elb.amazonaws.com", ] + ttl = 300 + type = "CNAME" + zone_id = "Z03223152FHL8WN66TI5X" } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_ACCESS_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/BUCKET_ACCESS_KEY" + overwrite = true + tags = { + "name" = "BUCKET_ACCESS_KEY" } + tags_all = { + "name" = "BUCKET_ACCESS_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_ENDPOINT"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/BUCKET_ENDPOINT" + overwrite = true + tags = { + "name" = "BUCKET_ENDPOINT" } + tags_all = { + "name" = "BUCKET_ENDPOINT" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_NAME"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/BUCKET_NAME" + overwrite = true + tags = { + "name" = "BUCKET_NAME" } + tags_all = { + "name" = "BUCKET_NAME" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_REGION"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/BUCKET_REGION" + overwrite = true + tags = { + "name" = "BUCKET_REGION" } + tags_all = { + "name" = "BUCKET_REGION" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_SECRET_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/BUCKET_SECRET_KEY" + overwrite = true + tags = { + "name" = "BUCKET_SECRET_KEY" } + tags_all = { + "name" = "BUCKET_SECRET_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["CLOUDFLARE_ACCOUNT_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/CLOUDFLARE_ACCOUNT_ID" + overwrite = true + tags = { + "name" = "CLOUDFLARE_ACCOUNT_ID" } + tags_all = { + "name" = "CLOUDFLARE_ACCOUNT_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["CLOUDFLARE_API_TOKEN"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/CLOUDFLARE_API_TOKEN" + overwrite = true + tags = { + "name" = "CLOUDFLARE_API_TOKEN" } + tags_all = { + "name" = "CLOUDFLARE_API_TOKEN" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["CLOUDFLARE_STREAM_TOKEN"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/CLOUDFLARE_STREAM_TOKEN" + overwrite = true + tags = { + "name" = "CLOUDFLARE_STREAM_TOKEN" } + tags_all = { + "name" = "CLOUDFLARE_STREAM_TOKEN" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["FIREBASE_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/FIREBASE_API_KEY" + overwrite = true + tags = { + "name" = "FIREBASE_API_KEY" } + tags_all = { + "name" = "FIREBASE_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/GOOGLE_API_KEY" + overwrite = true + tags = { + "name" = "GOOGLE_API_KEY" } + tags_all = { + "name" = "GOOGLE_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_APPLICATION_JSON"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/GOOGLE_APPLICATION_JSON" + overwrite = true + tags = { + "name" = "GOOGLE_APPLICATION_JSON" } + tags_all = { + "name" = "GOOGLE_APPLICATION_JSON" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_CLIENT_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/GOOGLE_CLIENT_ID" + overwrite = true + tags = { + "name" = "GOOGLE_CLIENT_ID" } + tags_all = { + "name" = "GOOGLE_CLIENT_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_CLIENT_SECRET"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/GOOGLE_CLIENT_SECRET" + overwrite = true + tags = { + "name" = "GOOGLE_CLIENT_SECRET" } + tags_all = { + "name" = "GOOGLE_CLIENT_SECRET" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_NEXUS"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/PG_DATABASE_URL_NEXUS" + overwrite = true + tags = { + "name" = "PG_DATABASE_URL_NEXUS" } + tags_all = { + "name" = "PG_DATABASE_URL_NEXUS" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["REDIS_HOST"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/prod/REDIS_HOST" + overwrite = true + tags = { + "name" = "REDIS_HOST" } + tags_all = { + "name" = "REDIS_HOST" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-tags.module.alb-listener.aws_alb_listener.alb_listener will be created + resource "aws_alb_listener" "alb_listener" { + arn = (known after apply) + id = (known after apply) + load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-2:410965620680:loadbalancer/app/jfp-internal-alb-prod/ae1556aacf21465f" + port = 4006 + protocol = "HTTP" + ssl_policy = (known after apply) + tags_all = (known after apply) + default_action { + order = (known after apply) + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "No routes defined" + status_code = "200" } } } # module.prod.module.api-tags.module.ecs-task.aws_alb_listener_rule.alb_listener_rule will be created + resource "aws_alb_listener_rule" "alb_listener_rule" { + arn = (known after apply) + id = (known after apply) + listener_arn = (known after apply) + priority = (known after apply) + tags_all = (known after apply) + action { + order = (known after apply) + target_group_arn = (known after apply) + type = "forward" } + condition { + host_header { + values = [ + "api-tags.service.internal", ] } } } # module.prod.module.api-tags.module.ecs-task.aws_alb_target_group.alb_target_group will be created + resource "aws_alb_target_group" "alb_target_group" { + arn = (known after apply) + arn_suffix = (known after apply) + connection_termination = false + deregistration_delay = "300" + id = (known after apply) + ip_address_type = (known after apply) + lambda_multi_value_headers_enabled = false + load_balancing_algorithm_type = (known after apply) + load_balancing_cross_zone_enabled = (known after apply) + name = "api-tags-prod-tg" + port = 4006 + preserve_client_ip = (known after apply) + protocol = "HTTP" + protocol_version = (known after apply) + proxy_protocol_v2 = false + slow_start = 0 + tags_all = (known after apply) + target_type = "ip" + vpc_id = "vpc-0b722b0a1f7789afd" + health_check { + enabled = true + healthy_threshold = 2 + interval = 5 + matcher = (known after apply) + path = "/.well-known/apollo/server-health" + port = "traffic-port" + protocol = "HTTP" + timeout = 4 + unhealthy_threshold = 3 } + stickiness (known after apply) + target_failover (known after apply) } # module.prod.module.api-tags.module.ecs-task.aws_appautoscaling_policy.ecs_policy_cpu will be created + resource "aws_appautoscaling_policy" "ecs_policy_cpu" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-cpu-autoscaling-prod" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-prod/api-tags-prod-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageCPUUtilization" } } } # module.prod.module.api-tags.module.ecs-task.aws_appautoscaling_policy.ecs_policy_memory will be created + resource "aws_appautoscaling_policy" "ecs_policy_memory" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-memory-autoscaling-prod" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-prod/api-tags-prod-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageMemoryUtilization" } } } # module.prod.module.api-tags.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be created + resource "aws_appautoscaling_target" "service_autoscaling" { + arn = (known after apply) + id = (known after apply) + max_capacity = 2 + min_capacity = 1 + resource_id = "service/jfp-ecs-cluster-prod/api-tags-prod-service" + role_arn = (known after apply) + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + tags_all = (known after apply) } # module.prod.module.api-tags.module.ecs-task.aws_cloudwatch_log_group.ecs_cw_log_group will be created + resource "aws_cloudwatch_log_group" "ecs_cw_log_group" { + arn = (known after apply) + id = (known after apply) + name = "api-tags-prod-logs" + name_prefix = (known after apply) + retention_in_days = 0 + skip ```


Warning: Output length greater than max comment size. Continued in next comment.

jesus-film-bot commented 5 months ago

Continued plan output from previous comment.

Show Output ```diff _destroy = false + tags_all = (known after apply) } # module.prod.module.api-tags.module.ecs-task.aws_ecr_lifecycle_policy.ecr_policy will be created + resource "aws_ecr_lifecycle_policy" "ecr_policy" { + id = (known after apply) + policy = jsonencode( { + rules = [ + { + action = { + type = "expire" } + description = "Expire more than 10 images" + rulePriority = 1 + selection = { + countNumber = 10 + countType = "imageCountMoreThan" + tagStatus = "any" } }, ] } ) + registry_id = (known after apply) + repository = "jfp-api-tags-prod" } # module.prod.module.api-tags.module.ecs-task.aws_ecr_repository.ecr_repository will be created + resource "aws_ecr_repository" "ecr_repository" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "jfp-api-tags-prod" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) } # module.prod.module.api-tags.module.ecs-task.aws_ecs_service.ecs_service will be created + resource "aws_ecs_service" "ecs_service" { + cluster = "arn:aws:ecs:us-east-2:410965620680:cluster/jfp-ecs-cluster-prod" + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = "FARGATE" + name = "api-tags-prod-service" + platform_version = (known after apply) + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + load_balancer { + container_name = "jfp-api-tags-prod-app" + container_port = 4006 + target_group_arn = (known after apply) # (1 unchanged attribute hidden) } + network_configuration { + assign_public_ip = false + security_groups = [ + "sg-02935fccc551bacd8", ] + subnets = [ + "subnet-02f4c2a33ace122c5", + "subnet-036663ddfdb3b94b0", + "subnet-05c389158df4b940a", ] } } # module.prod.module.api-tags.module.ecs-task.aws_ecs_task_definition.ecs_task_definition will be created + resource "aws_ecs_task_definition" "ecs_task_definition" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "512" + execution_role_arn = "arn:aws:iam::410965620680:role/jfp-ecs-task-execution-role" + family = "jfp-api-tags-prod" + id = (known after apply) + memory = "1024" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) } # module.prod.module.api-tags.module.ecs-task.aws_route53_record.record will be created + resource "aws_route53_record" "record" { + allow_overwrite = (known after apply) + fqdn = (known after apply) + id = (known after apply) + name = "api-tags" + records = [ + "internal-jfp-internal-alb-prod-1581820397.us-east-2.elb.amazonaws.com", ] + ttl = 300 + type = "CNAME" + zone_id = "Z03223152FHL8WN66TI5X" } # module.prod.module.api-tags.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_TAGS"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-tags/prod/PG_DATABASE_URL_TAGS" + overwrite = true + tags = { + "name" = "PG_DATABASE_URL_TAGS" } + tags_all = { + "name" = "PG_DATABASE_URL_TAGS" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-users.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/api-users-prod-service" name = "api-users-prod-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-users-prod:41" -> (known after apply) # (15 unchanged attributes hidden) # (5 unchanged blocks hidden) } # module.prod.module.api-users.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-users-prod:41" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-users-prod" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-api-users-prod-app" ~ secrets = [ # (5 unchanged elements hidden) { name = "JOURNEYS_ADMIN_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/JOURNEYS_ADMIN_URL" }, - { - name = "NAT_ADDRESSES" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/NAT_ADDRESSES" }, { name = "PG_DATABASE_URL_USERS" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/PG_DATABASE_URL_USERS" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/REDIS_PORT" }, { name = "REDIS_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/REDIS_URL" }, # (1 unchanged element hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-api-users-prod-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-users-prod-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-api-users-prod" -> (known after apply) ~ revision = 41 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.prod.module.api-users.module.ecs-task.aws_ssm_parameter.parameters["NAT_ADDRESSES"] will be destroyed # (because key ["NAT_ADDRESSES"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/NAT_ADDRESSES" -> null - data_type = "text" -> null - id = "/ecs/api-users/prod/NAT_ADDRESSES" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-users/prod/NAT_ADDRESSES" -> null - overwrite = true -> null - tags = { - "name" = "NAT_ADDRESSES" } -> null - tags_all = { - "name" = "NAT_ADDRESSES" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-users.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/prod/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-users/prod/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-users/prod/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.prod.module.api-videos.module.alb-listener.aws_alb_listener.alb_listener will be created + resource "aws_alb_listener" "alb_listener" { + arn = (known after apply) + id = (known after apply) + load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-2:410965620680:loadbalancer/app/jfp-internal-alb-prod/ae1556aacf21465f" + port = 4004 + protocol = "HTTP" + ssl_policy = (known after apply) + tags_all = (known after apply) + default_action { + order = (known after apply) + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "No routes defined" + status_code = "200" } } } # module.prod.module.api-videos.module.ecs-task.aws_alb_listener_rule.alb_listener_rule will be created + resource "aws_alb_listener_rule" "alb_listener_rule" { + arn = (known after apply) + id = (known after apply) + listener_arn = (known after apply) + priority = (known after apply) + tags_all = (known after apply) + action { + order = (known after apply) + target_group_arn = (known after apply) + type = "forward" } + condition { + host_header { + values = [ + "api-videos.service.internal", ] } } } # module.prod.module.api-videos.module.ecs-task.aws_alb_target_group.alb_target_group will be created + resource "aws_alb_target_group" "alb_target_group" { + arn = (known after apply) + arn_suffix = (known after apply) + connection_termination = false + deregistration_delay = "300" + id = (known after apply) + ip_address_type = (known after apply) + lambda_multi_value_headers_enabled = false + load_balancing_algorithm_type = (known after apply) + load_balancing_cross_zone_enabled = (known after apply) + name = "api-videos-prod-tg" + port = 4004 + preserve_client_ip = (known after apply) + protocol = "HTTP" + protocol_version = (known after apply) + proxy_protocol_v2 = false + slow_start = 0 + tags_all = (known after apply) + target_type = "ip" + vpc_id = "vpc-0b722b0a1f7789afd" + health_check { + enabled = true + healthy_threshold = 2 + interval = 5 + matcher = (known after apply) + path = "/.well-known/apollo/server-health" + port = "traffic-port" + protocol = "HTTP" + timeout = 4 + unhealthy_threshold = 3 } + stickiness (known after apply) + target_failover (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_appautoscaling_policy.ecs_policy_cpu will be created + resource "aws_appautoscaling_policy" "ecs_policy_cpu" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-cpu-autoscaling-prod" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-prod/api-videos-prod-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageCPUUtilization" } } } # module.prod.module.api-videos.module.ecs-task.aws_appautoscaling_policy.ecs_policy_memory will be created + resource "aws_appautoscaling_policy" "ecs_policy_memory" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-memory-autoscaling-prod" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-prod/api-videos-prod-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageMemoryUtilization" } } } # module.prod.module.api-videos.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be created + resource "aws_appautoscaling_target" "service_autoscaling" { + arn = (known after apply) + id = (known after apply) + max_capacity = 2 + min_capacity = 1 + resource_id = "service/jfp-ecs-cluster-prod/api-videos-prod-service" + role_arn = (known after apply) + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + tags_all = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_cloudwatch_log_group.ecs_cw_log_group will be created + resource "aws_cloudwatch_log_group" "ecs_cw_log_group" { + arn = (known after apply) + id = (known after apply) + name = "api-videos-prod-logs" + name_prefix = (known after apply) + retention_in_days = 0 + skip_destroy = false + tags_all = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ecr_lifecycle_policy.ecr_policy will be created + resource "aws_ecr_lifecycle_policy" "ecr_policy" { + id = (known after apply) + policy = jsonencode( { + rules = [ + { + action = { + type = "expire" } + description = "Expire more than 10 images" + rulePriority = 1 + selection = { + countNumber = 10 + countType = "imageCountMoreThan" + tagStatus = "any" } }, ] } ) + registry_id = (known after apply) + repository = "jfp-api-videos-prod" } # module.prod.module.api-videos.module.ecs-task.aws_ecr_repository.ecr_repository will be created + resource "aws_ecr_repository" "ecr_repository" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "jfp-api-videos-prod" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ecs_service.ecs_service will be created + resource "aws_ecs_service" "ecs_service" { + cluster = "arn:aws:ecs:us-east-2:410965620680:cluster/jfp-ecs-cluster-prod" + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = "FARGATE" + name = "api-videos-prod-service" + platform_version = (known after apply) + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + load_balancer { + container_name = "jfp-api-videos-prod-app" + container_port = 4004 + target_group_arn = (known after apply) # (1 unchanged attribute hidden) } + network_configuration { + assign_public_ip = false + security_groups = [ + "sg-02935fccc551bacd8", ] + subnets = [ + "subnet-02f4c2a33ace122c5", + "subnet-036663ddfdb3b94b0", + "subnet-05c389158df4b940a", ] } } # module.prod.module.api-videos.module.ecs-task.aws_ecs_task_definition.ecs_task_definition will be created + resource "aws_ecs_task_definition" "ecs_task_definition" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "1024" + execution_role_arn = "arn:aws:iam::410965620680:role/jfp-ecs-task-execution-role" + family = "jfp-api-videos-prod" + id = (known after apply) + memory = "4096" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_route53_record.record will be created + resource "aws_route53_record" "record" { + allow_overwrite = (known after apply) + fqdn = (known after apply) + id = (known after apply) + name = "api-videos" + records = [ + "internal-jfp-internal-alb-prod-1581820397.us-east-2.elb.amazonaws.com", ] + ttl = 300 + type = "CNAME" + zone_id = "Z03223152FHL8WN66TI5X" } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/ALGOLIA_API_KEY" + overwrite = true + tags = { + "name" = "ALGOLIA_API_KEY" } + tags_all = { + "name" = "ALGOLIA_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_APPLICATION_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/ALGOLIA_APPLICATION_ID" + overwrite = true + tags = { + "name" = "ALGOLIA_APPLICATION_ID" } + tags_all = { + "name" = "ALGOLIA_APPLICATION_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_INDEX"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/ALGOLIA_INDEX" + overwrite = true + tags = { + "name" = "ALGOLIA_INDEX" } + tags_all = { + "name" = "ALGOLIA_INDEX" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/ARCLIGHT_API_KEY" + overwrite = true + tags = { + "name" = "ARCLIGHT_API_KEY" } + tags_all = { + "name" = "ARCLIGHT_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_V3_URL"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/ARCLIGHT_V3_URL" + overwrite = true + tags = { + "name" = "ARCLIGHT_V3_URL" } + tags_all = { + "name" = "ARCLIGHT_V3_URL" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["BIG_QUERY_APPLICATION_JSON"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/BIG_QUERY_APPLICATION_JSON" + overwrite = true + tags = { + "name" = "BIG_QUERY_APPLICATION_JSON" } + tags_all = { + "name" = "BIG_QUERY_APPLICATION_JSON" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["CROWDIN_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/CROWDIN_API_KEY" + overwrite = true + tags = { + "name" = "CROWDIN_API_KEY" } + tags_all = { + "name" = "CROWDIN_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["GATEWAY_URL"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/GATEWAY_URL" + overwrite = true + tags = { + "name" = "GATEWAY_URL" } + tags_all = { + "name" = "GATEWAY_URL" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_VIDEOS"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/PG_DATABASE_URL_VIDEOS" + overwrite = true + tags = { + "name" = "PG_DATABASE_URL_VIDEOS" } + tags_all = { + "name" = "PG_DATABASE_URL_VIDEOS" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["REDIS_URL"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/prod/REDIS_URL" + overwrite = true + tags = { + "name" = "REDIS_URL" } + tags_all = { + "name" = "REDIS_URL" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.journeys-admin.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/journeys-admin-prod-service" name = "journeys-admin-prod-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-journeys-admin-prod:4" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.prod.module.journeys-admin.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-journeys-admin-prod:4" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-journeys-admin-prod" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-journeys-admin-prod-app" ~ secrets = [ # (4 unchanged elements hidden) { name = "LAUNCH_DARKLY_SDK_KEY" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/LAUNCH_DARKLY_SDK_KEY" }, - { - name = "NEXT_PUBLIC_ALGOLIA_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_API_KEY" }, - { - name = "NEXT_PUBLIC_ALGOLIA_APP_ID" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_APP_ID" }, - { - name = "NEXT_PUBLIC_ALGOLIA_INDEX" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_INDEX" }, { name = "NEXT_PUBLIC_CLOUDFLARE_STREAM_CUSTOMER_CODE" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_CLOUDFLARE_STREAM_CUSTOMER_CODE" }, # (16 unchanged elements hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-journeys-admin-prod-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-journeys-admin-prod-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-journeys-admin-prod" -> (known after apply) ~ revision = 4 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.prod.module.journeys-admin.module.ecs-task.aws_ssm_parameter.parameters["NEXT_PUBLIC_ALGOLIA_API_KEY"] will be destroyed # (because key ["NEXT_PUBLIC_ALGOLIA_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "NEXT_PUBLIC_ALGOLIA_API_KEY" } -> null - tags_all = { - "name" = "NEXT_PUBLIC_ALGOLIA_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.prod.module.journeys-admin.module.ecs-task.aws_ssm_parameter.parameters["NEXT_PUBLIC_ALGOLIA_APP_ID"] will be destroyed # (because key ["NEXT_PUBLIC_ALGOLIA_APP_ID"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_APP_ID" -> null - data_type = "text" -> null - id = "/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_APP_ID" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_APP_ID" -> null - overwrite = true -> null - tags = { - "name" = "NEXT_PUBLIC_ALGOLIA_APP_ID" } -> null - tags_all = { - "name" = "NEXT_PUBLIC_ALGOLIA_APP_ID" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.prod.module.journeys-admin.module.ecs-task.aws_ssm_parameter.parameters["NEXT_PUBLIC_ALGOLIA_INDEX"] will be destroyed # (because key ["NEXT_PUBLIC_ALGOLIA_INDEX"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_INDEX" -> null - data_type = "text" -> null - id = "/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_INDEX" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/journeys-admin/prod/NEXT_PUBLIC_ALGOLIA_INDEX" -> null - overwrite = true -> null - tags = { - "name" = "NEXT_PUBLIC_ALGOLIA_INDEX" } -> null - tags_all = { - "name" = "NEXT_PUBLIC_ALGOLIA_INDEX" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-journeys.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-journeys-stage-service" name = "api-journeys-stage-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-stage:40" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.stage.module.api-journeys.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-stage:40" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-stage" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-api-journeys-stage-app" ~ secrets = [ # (26 unchanged elements hidden) { name = "POWER_BI_WORKSPACE_ID" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/POWER_BI_WORKSPACE_ID" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/REDIS_PORT" }, { name = "REDIS_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/REDIS_URL" }, # (4 unchanged elements hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-api-journeys-stage-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-journeys-stage-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-api-journeys-stage" -> (known after apply) ~ revision = 40 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.stage.module.api-journeys.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-journeys/stage/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-journeys/stage/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-languages.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-languages-stage-service" name = "api-languages-stage-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-languages-stage:27" -> (known after apply) # (15 unchanged attributes hidden) # (5 unchanged blocks hidden) } # module.stage.module.api-languages.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-languages-stage:27" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-languages-stage" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-api-languages-stage-app" ~ secrets = [ # (3 unchanged elements hidden) { name = "PG_DATABASE_URL_LANGUAGES" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/stage/PG_DATABASE_URL_LANGUAGES" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/stage/REDIS_PORT" }, { name = "REDIS_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/stage/REDIS_URL" }, # (2 unchanged elements hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-api-languages-stage-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-languages-stage-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-api-languages-stage" -> (known after apply) ~ revision = 27 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.stage.module.api-languages.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-languages/stage/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-languages/stage/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-languages/stage/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-media-stage-service" name = "api-media-stage-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-stage:20" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.stage.module.api-media.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-stage:20" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-stage" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { ~ cpu = 1024 -> 512 ~ memory = 2048 -> 1024 name = "jfp-api-media-stage-app" ~ secrets = [ - { - name = "ALGOLIA_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_API_KEY" }, - { - name = "ALGOLIA_APPLICATION_ID" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_APPLICATION_ID" }, - { - name = "ALGOLIA_INDEX" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_INDEX" }, - { - name = "ARCLIGHT_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ARCLIGHT_API_KEY" }, - { - name = "ARCLIGHT_V3_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ARCLIGHT_V3_URL" }, - { - name = "BIG_QUERY_APPLICATION_JSON" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/BIG_QUERY_APPLICATION_JSON" }, { name = "CLOUDFLARE_ACCOUNT_ID" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/CLOUDFLARE_ACCOUNT_ID" }, # (1 unchanged element hidden) { name = "CLOUDFLARE_STREAM_TOKEN" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/CLOUDFLARE_STREAM_TOKEN" }, - { - name = "CROWDIN_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/CROWDIN_API_KEY" }, - { - name = "GATEWAY_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/GATEWAY_URL" }, { name = "GOOGLE_APPLICATION_JSON" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/GOOGLE_APPLICATION_JSON" }, { name = "PG_DATABASE_URL_MEDIA" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/PG_DATABASE_URL_MEDIA" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/REDIS_PORT" }, - { - name = "REDIS_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/REDIS_URL" }, { name = "SEGMIND_API_KEY" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/SEGMIND_API_KEY" }, # (2 unchanged elements hidden) ] - systemControls = [] # (7 unchanged attributes hidden) }, ~ { name = "jfp-api-media-stage-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-media-stage-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ cpu = "1024" -> "512" # forces replacement ~ id = "jfp-api-media-stage" -> (known after apply) ~ memory = "2048" -> "1024" # forces replacement ~ revision = 20 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (8 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_API_KEY"] will be destroyed # (because key ["ALGOLIA_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/ALGOLIA_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/ALGOLIA_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "ALGOLIA_API_KEY" } -> null - tags_all = { - "name" = "ALGOLIA_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 3 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_APPLICATION_ID"] will be destroyed # (because key ["ALGOLIA_APPLICATION_ID"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_APPLICATION_ID" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/ALGOLIA_APPLICATION_ID" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/ALGOLIA_APPLICATION_ID" -> null - overwrite = true -> null - tags = { - "name" = "ALGOLIA_APPLICATION_ID" } -> null - tags_all = { - "name" = "ALGOLIA_APPLICATION_ID" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_INDEX"] will be destroyed # (because key ["ALGOLIA_INDEX"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_INDEX" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/ALGOLIA_INDEX" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/ALGOLIA_INDEX" -> null - overwrite = true -> null - tags = { - "name" = "ALGOLIA_INDEX" } -> null - tags_all = { - "name" = "ALGOLIA_INDEX" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_API_KEY"] will be destroyed # (because key ["ARCLIGHT_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ARCLIGHT_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/ARCLIGHT_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/ARCLIGHT_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "ARCLIGHT_API_KEY" } -> null - tags_all = { - "name" = "ARCLIGHT_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_V3_URL"] will be destroyed # (because key ["ARCLIGHT_V3_URL"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ARCLIGHT_V3_URL" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/ARCLIGHT_V3_URL" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/ARCLIGHT_V3_URL" -> null - overwrite = true -> null - tags = { - "name" = "ARCLIGHT_V3_URL" } -> null - tags_all = { - "name" = "ARCLIGHT_V3_URL" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["BIG_QUERY_APPLICATION_JSON"] will be destroyed # (because key ["BIG_QUERY_APPLICATION_JSON"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/BIG_QUERY_APPLICATION_JSON" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/BIG_QUERY_APPLICATION_JSON" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/BIG_QUERY_APPLICATION_JSON" -> null - overwrite = true -> null - tags = { - "name" = "BIG_QUERY_APPLICATION_JSON" } -> null - tags_all = { - "name" = "BIG_QUERY_APPLICATION_JSON" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["CROWDIN_API_KEY"] will be destroyed # (because key ["CROWDIN_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/CROWDIN_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/CROWDIN_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/CROWDIN_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "CROWDIN_API_KEY" } -> null - tags_all = { - "name" = "CROWDIN_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["GATEWAY_URL"] will be destroyed # (because key ["GATEWAY_URL"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/GATEWAY_URL" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/GATEWAY_URL" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/GATEWAY_URL" -> null - overwrite = true -> null - tags = { - "name" = "GATEWAY_URL" } -> null - tags_all = { - "name" = "GATEWAY_URL" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["REDIS_URL"] will be destroyed # (because key ["REDIS_URL"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/REDIS_URL" -> null - data_type = "text" -> null - id = "/ecs/api-media/stage/REDIS_URL" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-media/stage/REDIS_URL" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_URL" } -> null - tags_all = { - "name" = "REDIS_URL" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-nexus.module.alb-listener.aws_alb_listener.alb_listener will be created + resource "aws_alb_listener" "alb_listener" { + arn = (known after apply) + id = (known after apply) + load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-2:410965620680:loadbalancer/app/jfp-internal-alb-stage/846f69021da58f87" + port = 4007 + protocol = "HTTP" + ssl_policy = (known after apply) + tags_all = (known after apply) + default_action { + order = (known after apply) + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "No routes defined" + status_code = "200" } } } # module.stage.module.api-nexus.module.ecs-task.aws_alb_listener_rule.alb_listener_rule will be created + resource "aws_alb_listener_rule" "alb_listener_rule" { + arn = (known after apply) + id = (known after apply) + listener_arn = (known after apply) + priority = (known after apply) + tags_all = (known after apply) + action { + order = (known after apply) + target_group_arn = (known after apply) + type = "forward" } + condition { + host_header { + values = [ + "api-nexus.stage.internal", ] } } } # module.stage.module.api-nexus.module.ecs-task.aws_alb_target_group.alb_target_group will be created + resource "aws_alb_target_group" "alb_target_group" { + arn = (known after apply) + arn_suffix = (known after apply) + connection_termination = false + deregistration_delay = "300" + id = (known after apply) + ip_address_type = (known after apply) + lambda_multi_value_headers_enabled = false + load_balancing_algorithm_type = (known after apply) + load_balancing_cross_zone_enabled = (known after apply) + name = "api-nexus-stage-tg" + port = 4007 + preserve_client_ip = (known after apply) + protocol = "HTTP" + protocol_version = (known after apply) + proxy_protocol_v2 = false + slow_start = 0 + tags_all = (known after apply) + target_type = "ip" + vpc_id = "vpc-08eeff0fe23f23079" + health_check { + enabled = true + healthy_threshold = 2 + interval = 5 + matcher = (known after apply) + path = "/.well-known/apollo/server-health" + port = "traffic-port" + protocol = "HTTP" + timeout = 4 + unhealthy_threshold = 3 } + stickiness (known after apply) + target_failover (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_appautoscaling_policy.ecs_policy_cpu will be created + resource "aws_appautoscaling_policy" "ecs_policy_cpu" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-cpu-autoscaling-stage" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-stage/api-nexus-stage-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageCPUUtilization" } ```


Warning: Output length greater than max comment size. Continued in next comment.

jesus-film-bot commented 5 months ago

Continued plan output from previous comment.

Show Output ```diff } } # module.stage.module.api-nexus.module.ecs-task.aws_appautoscaling_policy.ecs_policy_memory will be created + resource "aws_appautoscaling_policy" "ecs_policy_memory" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-memory-autoscaling-stage" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-stage/api-nexus-stage-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageMemoryUtilization" } } } # module.stage.module.api-nexus.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be created + resource "aws_appautoscaling_target" "service_autoscaling" { + arn = (known after apply) + id = (known after apply) + max_capacity = 2 + min_capacity = 1 + resource_id = "service/jfp-ecs-cluster-stage/api-nexus-stage-service" + role_arn = (known after apply) + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + tags_all = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_cloudwatch_log_group.ecs_cw_log_group will be created + resource "aws_cloudwatch_log_group" "ecs_cw_log_group" { + arn = (known after apply) + id = (known after apply) + name = "api-nexus-stage-logs" + name_prefix = (known after apply) + retention_in_days = 0 + skip_destroy = false + tags_all = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ecr_lifecycle_policy.ecr_policy will be created + resource "aws_ecr_lifecycle_policy" "ecr_policy" { + id = (known after apply) + policy = jsonencode( { + rules = [ + { + action = { + type = "expire" } + description = "Expire more than 10 images" + rulePriority = 1 + selection = { + countNumber = 10 + countType = "imageCountMoreThan" + tagStatus = "any" } }, ] } ) + registry_id = (known after apply) + repository = "jfp-api-nexus-stage" } # module.stage.module.api-nexus.module.ecs-task.aws_ecr_repository.ecr_repository will be created + resource "aws_ecr_repository" "ecr_repository" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "jfp-api-nexus-stage" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ecs_service.ecs_service will be created + resource "aws_ecs_service" "ecs_service" { + cluster = "arn:aws:ecs:us-east-2:410965620680:cluster/jfp-ecs-cluster-stage" + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = "FARGATE" + name = "api-nexus-stage-service" + platform_version = (known after apply) + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + load_balancer { + container_name = "jfp-api-nexus-stage-app" + container_port = 4007 + target_group_arn = (known after apply) # (1 unchanged attribute hidden) } + network_configuration { + assign_public_ip = false + security_groups = [ + "sg-087bc43a262c94bc1", ] + subnets = [ + "subnet-01f4e86883462b5ce", + "subnet-062de12e3e3639eff", + "subnet-09cbfc19be5214a8b", ] } } # module.stage.module.api-nexus.module.ecs-task.aws_ecs_task_definition.ecs_task_definition will be created + resource "aws_ecs_task_definition" "ecs_task_definition" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "1024" + execution_role_arn = "arn:aws:iam::410965620680:role/jfp-ecs-task-execution-role" + family = "jfp-api-nexus-stage" + id = (known after apply) + memory = "2048" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_route53_record.record will be created + resource "aws_route53_record" "record" { + allow_overwrite = (known after apply) + fqdn = (known after apply) + id = (known after apply) + name = "api-nexus" + records = [ + "internal-jfp-internal-alb-stage-154137661.us-east-2.elb.amazonaws.com", ] + ttl = 300 + type = "CNAME" + zone_id = "Z056780738DT3AZL6A4WD" } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_ACCESS_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/BUCKET_ACCESS_KEY" + overwrite = true + tags = { + "name" = "BUCKET_ACCESS_KEY" } + tags_all = { + "name" = "BUCKET_ACCESS_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_ENDPOINT"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/BUCKET_ENDPOINT" + overwrite = true + tags = { + "name" = "BUCKET_ENDPOINT" } + tags_all = { + "name" = "BUCKET_ENDPOINT" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_NAME"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/BUCKET_NAME" + overwrite = true + tags = { + "name" = "BUCKET_NAME" } + tags_all = { + "name" = "BUCKET_NAME" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_REGION"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/BUCKET_REGION" + overwrite = true + tags = { + "name" = "BUCKET_REGION" } + tags_all = { + "name" = "BUCKET_REGION" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["BUCKET_SECRET_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/BUCKET_SECRET_KEY" + overwrite = true + tags = { + "name" = "BUCKET_SECRET_KEY" } + tags_all = { + "name" = "BUCKET_SECRET_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["CLOUDFLARE_ACCOUNT_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/CLOUDFLARE_ACCOUNT_ID" + overwrite = true + tags = { + "name" = "CLOUDFLARE_ACCOUNT_ID" } + tags_all = { + "name" = "CLOUDFLARE_ACCOUNT_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["CLOUDFLARE_API_TOKEN"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/CLOUDFLARE_API_TOKEN" + overwrite = true + tags = { + "name" = "CLOUDFLARE_API_TOKEN" } + tags_all = { + "name" = "CLOUDFLARE_API_TOKEN" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["CLOUDFLARE_STREAM_TOKEN"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/CLOUDFLARE_STREAM_TOKEN" + overwrite = true + tags = { + "name" = "CLOUDFLARE_STREAM_TOKEN" } + tags_all = { + "name" = "CLOUDFLARE_STREAM_TOKEN" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["FIREBASE_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/FIREBASE_API_KEY" + overwrite = true + tags = { + "name" = "FIREBASE_API_KEY" } + tags_all = { + "name" = "FIREBASE_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/GOOGLE_API_KEY" + overwrite = true + tags = { + "name" = "GOOGLE_API_KEY" } + tags_all = { + "name" = "GOOGLE_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_APPLICATION_JSON"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/GOOGLE_APPLICATION_JSON" + overwrite = true + tags = { + "name" = "GOOGLE_APPLICATION_JSON" } + tags_all = { + "name" = "GOOGLE_APPLICATION_JSON" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_CLIENT_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/GOOGLE_CLIENT_ID" + overwrite = true + tags = { + "name" = "GOOGLE_CLIENT_ID" } + tags_all = { + "name" = "GOOGLE_CLIENT_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["GOOGLE_CLIENT_SECRET"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/GOOGLE_CLIENT_SECRET" + overwrite = true + tags = { + "name" = "GOOGLE_CLIENT_SECRET" } + tags_all = { + "name" = "GOOGLE_CLIENT_SECRET" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_NEXUS"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/PG_DATABASE_URL_NEXUS" + overwrite = true + tags = { + "name" = "PG_DATABASE_URL_NEXUS" } + tags_all = { + "name" = "PG_DATABASE_URL_NEXUS" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-nexus.module.ecs-task.aws_ssm_parameter.parameters["REDIS_HOST"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-nexus/stage/REDIS_HOST" + overwrite = true + tags = { + "name" = "REDIS_HOST" } + tags_all = { + "name" = "REDIS_HOST" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-tags.module.alb-listener.aws_alb_listener.alb_listener will be created + resource "aws_alb_listener" "alb_listener" { + arn = (known after apply) + id = (known after apply) + load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-2:410965620680:loadbalancer/app/jfp-internal-alb-stage/846f69021da58f87" + port = 4006 + protocol = "HTTP" + ssl_policy = (known after apply) + tags_all = (known after apply) + default_action { + order = (known after apply) + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "No routes defined" + status_code = "200" } } } # module.stage.module.api-tags.module.ecs-task.aws_alb_listener_rule.alb_listener_rule will be created + resource "aws_alb_listener_rule" "alb_listener_rule" { + arn = (known after apply) + id = (known after apply) + listener_arn = (known after apply) + priority = (known after apply) + tags_all = (known after apply) + action { + order = (known after apply) + target_group_arn = (known after apply) + type = "forward" } + condition { + host_header { + values = [ + "api-tags.stage.internal", ] } } } # module.stage.module.api-tags.module.ecs-task.aws_alb_target_group.alb_target_group will be created + resource "aws_alb_target_group" "alb_target_group" { + arn = (known after apply) + arn_suffix = (known after apply) + connection_termination = false + deregistration_delay = "300" + id = (known after apply) + ip_address_type = (known after apply) + lambda_multi_value_headers_enabled = false + load_balancing_algorithm_type = (known after apply) + load_balancing_cross_zone_enabled = (known after apply) + name = "api-tags-stage-tg" + port = 4006 + preserve_client_ip = (known after apply) + protocol = "HTTP" + protocol_version = (known after apply) + proxy_protocol_v2 = false + slow_start = 0 + tags_all = (known after apply) + target_type = "ip" + vpc_id = "vpc-08eeff0fe23f23079" + health_check { + enabled = true + healthy_threshold = 2 + interval = 5 + matcher = (known after apply) + path = "/.well-known/apollo/server-health" + port = "traffic-port" + protocol = "HTTP" + timeout = 4 + unhealthy_threshold = 3 } + stickiness (known after apply) + target_failover (known after apply) } # module.stage.module.api-tags.module.ecs-task.aws_appautoscaling_policy.ecs_policy_cpu will be created + resource "aws_appautoscaling_policy" "ecs_policy_cpu" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-cpu-autoscaling-stage" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-stage/api-tags-stage-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageCPUUtilization" } } } # module.stage.module.api-tags.module.ecs-task.aws_appautoscaling_policy.ecs_policy_memory will be created + resource "aws_appautoscaling_policy" "ecs_policy_memory" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-memory-autoscaling-stage" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-stage/api-tags-stage-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageMemoryUtilization" } } } # module.stage.module.api-tags.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be created + resource "aws_appautoscaling_target" "service_autoscaling" { + arn = (known after apply) + id = (known after apply) + max_capacity = 2 + min_capacity = 1 + resource_id = "service/jfp-ecs-cluster-stage/api-tags-stage-service" + role_arn = (known after apply) + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + tags_all = (known after apply) } # module.stage.module.api-tags.module.ecs-task.aws_cloudwatch_log_group.ecs_cw_log_group will be created + resource "aws_cloudwatch_log_group" "ecs_cw_log_group" { + arn = (known after apply) + id = (known after apply) + name = "api-tags-stage-logs" + name_prefix = (known after apply) + retention_in_days = 0 + skip_destroy = false + tags_all = (known after apply) } # module.stage.module.api-tags.module.ecs-task.aws_ecr_lifecycle_policy.ecr_policy will be created + resource "aws_ecr_lifecycle_policy" "ecr_policy" { + id = (known after apply) + policy = jsonencode( { + rules = [ + { + action = { + type = "expire" } + description = "Expire more than 10 images" + rulePriority = 1 + selection = { + countNumber = 10 + countType = "imageCountMoreThan" + tagStatus = "any" } }, ] } ) + registry_id = (known after apply) + repository = "jfp-api-tags-stage" } # module.stage.module.api-tags.module.ecs-task.aws_ecr_repository.ecr_repository will be created + resource "aws_ecr_repository" "ecr_repository" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "jfp-api-tags-stage" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) } # module.stage.module.api-tags.module.ecs-task.aws_ecs_service.ecs_service will be created + resource "aws_ecs_service" "ecs_service" { + cluster = "arn:aws:ecs:us-east-2:410965620680:cluster/jfp-ecs-cluster-stage" + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = "FARGATE" + name = "api-tags-stage-service" + platform_version = (known after apply) + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + load_balancer { + container_name = "jfp-api-tags-stage-app" + container_port = 4006 + target_group_arn = (known after apply) # (1 unchanged attribute hidden) } + network_configuration { + assign_public_ip = false + security_groups = [ + "sg-087bc43a262c94bc1", ] + subnets = [ + "subnet-01f4e86883462b5ce", + "subnet-062de12e3e3639eff", + "subnet-09cbfc19be5214a8b", ] } } # module.stage.module.api-tags.module.ecs-task.aws_ecs_task_definition.ecs_task_definition will be created + resource "aws_ecs_task_definition" "ecs_task_definition" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "512" + execution_role_arn = "arn:aws:iam::410965620680:role/jfp-ecs-task-execution-role" + family = "jfp-api-tags-stage" + id = (known after apply) + memory = "1024" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) } # module.stage.module.api-tags.module.ecs-task.aws_route53_record.record will be created + resource "aws_route53_record" "record" { + allow_overwrite = (known after apply) + fqdn = (known after apply) + id = (known after apply) + name = "api-tags" + records = [ + "internal-jfp-internal-alb-stage-154137661.us-east-2.elb.amazonaws.com", ] + ttl = 300 + type = "CNAME" + zone_id = "Z056780738DT3AZL6A4WD" } # module.stage.module.api-tags.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_TAGS"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-tags/stage/PG_DATABASE_URL_TAGS" + overwrite = true + tags = { + "name" = "PG_DATABASE_URL_TAGS" } + tags_all = { + "name" = "PG_DATABASE_URL_TAGS" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-users.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-users-stage-service" name = "api-users-stage-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-users-stage:31" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.stage.module.api-users.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-users-stage:31" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-users-stage" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-api-users-stage-app" ~ secrets = [ # (5 unchanged elements hidden) { name = "JOURNEYS_ADMIN_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/JOURNEYS_ADMIN_URL" }, - { - name = "NAT_ADDRESSES" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/NAT_ADDRESSES" }, { name = "PG_DATABASE_URL_USERS" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/PG_DATABASE_URL_USERS" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/REDIS_PORT" }, { name = "REDIS_URL" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/REDIS_URL" }, # (1 unchanged element hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-api-users-stage-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-api-users-stage-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-api-users-stage" -> (known after apply) ~ revision = 31 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.stage.module.api-users.module.ecs-task.aws_ssm_parameter.parameters["NAT_ADDRESSES"] will be destroyed # (because key ["NAT_ADDRESSES"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/NAT_ADDRESSES" -> null - data_type = "text" -> null - id = "/ecs/api-users/stage/NAT_ADDRESSES" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-users/stage/NAT_ADDRESSES" -> null - overwrite = true -> null - tags = { - "name" = "NAT_ADDRESSES" } -> null - tags_all = { - "name" = "NAT_ADDRESSES" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 2 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-users.module.ecs-task.aws_ssm_parameter.parameters["REDIS_PORT"] will be destroyed # (because key ["REDIS_PORT"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-users/stage/REDIS_PORT" -> null - data_type = "text" -> null - id = "/ecs/api-users/stage/REDIS_PORT" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/api-users/stage/REDIS_PORT" -> null - overwrite = true -> null - tags = { - "name" = "REDIS_PORT" } -> null - tags_all = { - "name" = "REDIS_PORT" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.stage.module.api-videos.module.alb-listener.aws_alb_listener.alb_listener will be created + resource "aws_alb_listener" "alb_listener" { + arn = (known after apply) + id = (known after apply) + load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-2:410965620680:loadbalancer/app/jfp-internal-alb-stage/846f69021da58f87" + port = 4004 + protocol = "HTTP" + ssl_policy = (known after apply) + tags_all = (known after apply) + default_action { + order = (known after apply) + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "No routes defined" + status_code = "200" } } } # module.stage.module.api-videos.module.ecs-task.aws_alb_listener_rule.alb_listener_rule will be created + resource "aws_alb_listener_rule" "alb_listener_rule" { + arn = (known after apply) + id = (known after apply) + listener_arn = (known after apply) + priority = (known after apply) + tags_all = (known after apply) + action { + order = (known after apply) + target_group_arn = (known after apply) + type = "forward" } + condition { + host_header { + values = [ + "api-videos.stage.internal", ] } } } # module.stage.module.api-videos.module.ecs-task.aws_alb_target_group.alb_target_group will be created + resource "aws_alb_target_group" "alb_target_group" { + arn = (known after apply) + arn_suffix = (known after apply) + connection_termination = false + deregistration_delay = "300" + id = (known after apply) + ip_address_type = (known after apply) + lambda_multi_value_headers_enabled = false + load_balancing_algorithm_type = (known after apply) + load_balancing_cross_zone_enabled = (known after apply) + name = "api-videos-stage-tg" + port = 4004 + preserve_client_ip = (known after apply) + protocol = "HTTP" + protocol_version = (known after apply) + proxy_protocol_v2 = false + slow_start = 0 + tags_all = (known after apply) + target_type = "ip" + vpc_id = "vpc-08eeff0fe23f23079" + health_check { + enabled = true + healthy_threshold = 2 + interval = 5 + matcher = (known after apply) + path = "/.well-known/apollo/server-health" + port = "traffic-port" + protocol = "HTTP" + timeout = 4 + unhealthy_threshold = 3 } + stickiness (known after apply) + target_failover (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_appautoscaling_policy.ecs_policy_cpu will be created + resource "aws_appautoscaling_policy" "ecs_policy_cpu" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-cpu-autoscaling-stage" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-stage/api-videos-stage-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageCPUUtilization" } } } # module.stage.module.api-videos.module.ecs-task.aws_appautoscaling_policy.ecs_policy_memory will be created + resource "aws_appautoscaling_policy" "ecs_policy_memory" { + alarm_arns = (known after apply) + arn = (known after apply) + id = (known after apply) + name = "jfp-memory-autoscaling-stage" + policy_type = "TargetTrackingScaling" + resource_id = "service/jfp-ecs-cluster-stage/api-videos-stage-service" + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + target_tracking_scaling_policy_configuration { + disable_scale_in = false + target_value = 75 + predefined_metric_specification { + predefined_metric_type = "ECSServiceAverageMemoryUtilization" } } } # module.stage.module.api-videos.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be created + resource "aws_appautoscaling_target" "service_autoscaling" { + arn = (known after apply) + id = (known after apply) + max_capacity = 2 + min_capacity = 1 + resource_id = "service/jfp-ecs-cluster-stage/api-videos-stage-service" + role_arn = (known after apply) + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" + tags_all = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_cloudwatch_log_group.ecs_cw_log_group will be created + resource "aws_cloudwatch_log_group" "ecs_cw_log_group" { + arn = (known after apply) + id = (known after apply) + name = "api-videos-stage-logs" + name_prefix = (known after apply) + retention_in_days = 0 + skip_destroy = false + tags_all = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ecr_lifecycle_policy.ecr_policy will be created + resource "aws_ecr_lifecycle_policy" "ecr_policy" { + id = (known after apply) + policy = jsonencode( { + rules = [ + { + action = { + type = "expire" } + description = "Expire more than 10 images" + rulePriority = 1 + selection = { + countNumber = 10 + countType = "imageCountMoreThan" + tagStatus = "any" } }, ] } ) + registry_id = (known after apply) + repository = "jfp-api-videos-stage" } # module.stage.module.api-videos.module.ecs-task.aws_ecr_repository.ecr_repository will be created + resource "aws_ecr_repository" "ecr_repository" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "jfp-api-videos-stage" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ecs_service.ecs_service will be created + resource "aws_ecs_service" "ecs_service" { + cluster = "arn:aws:ecs:us-east-2:410965620680:cluster/jfp-ecs-cluster-stage" + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = "FARGATE" + name = "api-videos-stage-service" + platform_version = (known after apply) + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + load_balancer { + container_name = "jfp-api-videos-stage-app" + container_port = 4004 + target_group_arn = (known after apply) # (1 unchanged attribute hidden) } + network_configuration { + assign_public_ip = false + security_groups = [ + "sg-087bc43a262c94bc1", ] + subnets = [ + "subnet-01f4e86883462b5ce", + "subnet-062de12e3e3639eff", + "subnet-09cbfc19be5214a8b", ] } } # module.stage.module.api-videos.module.ecs-task.aws_ecs_task_definition.ecs_task_definition will be created + resource "aws_ecs_task_definition" "ecs_task_definition" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "1024" + execution_role_arn = "arn:aws:iam::410965620680:role/jfp-ecs-task-execution-role" + family = "jfp-api-videos-stage" + id = (known after apply) + memory = "4096" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_route53_record.record will be created + resource "aws_route53_record" "record" { + allow_overwrite = (known after apply) + fqdn = (known after apply) + id = (known after apply) + name = "api-videos" + records = [ + "internal-jfp-internal-alb-stage-154137661.us-east-2.elb.amazonaws.com", ] + ttl = 300 + type = "CNAME" + zone_id = "Z056780738DT3AZL6A4WD" } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/ALGOLIA_API_KEY" + overwrite = true + tags = { + "name" = "ALGOLIA_API_KEY" } + tags_all = { + "name" = "ALGOLIA_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_APPLICATION_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/ALGOLIA_APPLICATION_ID" + overwrite = true + tags = { + "name" = "ALGOLIA_APPLICATION_ID" } + tags_all = { + "name" = "ALGOLIA_APPLICATION_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ALGOLIA_INDEX"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/ALGOLIA_INDEX" + overwrite = true + tags = { + "name" = "ALGOLIA_INDEX" } + tags_all = { + "name" = "ALGOLIA_INDEX" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/ARCLIGHT_API_KEY" + overwrite = true + tags = { + "name" = "ARCLIGHT_API_KEY" } + tags_all = { + "name" = "ARCLIGHT_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["ARCLIGHT_V3_URL"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/ARCLIGHT_V3_URL" + overwrite = true + tags = { + "name" = "ARCLIGHT_V3_URL" } + tags_all = { + "name" = "ARCLIGHT_V3_URL" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["BIG_QUERY_APPLICATION_JSON"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/BIG_QUERY_APPLICATION_JSON" + overwrite = true + tags = { + "name" = "BIG_QUERY_APPLICATION_JSON" } + tags_all = { + "name" = "BIG_QUERY_APPLICATION_JSON" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["CROWDIN_API_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/CROWDIN_API_KEY" + overwrite = true + tags = { + "name" = "CROWDIN_API_KEY" } + tags_all = { + "name" = "CROWDIN_API_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["GATEWAY_URL"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/GATEWAY_URL" + overwrite = true + tags = { + "name" = "GATEWAY_URL" } + tags_all = { + "name" = "GATEWAY_URL" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_VIDEOS"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/PG_DATABASE_URL_VIDEOS" + overwrite = true + tags = { + "name" = "PG_DATABASE_URL_VIDEOS" } + tags_all = { + "name" = "PG_DATABASE_URL_VIDEOS" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-videos.module.ecs-task.aws_ssm_parameter.parameters["REDIS_URL"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-videos/stage/REDIS_URL" + overwrite = true + tags = { + "name" = "REDIS_URL" } + tags_all = { + "name" = "REDIS_URL" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.journeys-admin.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/journeys-admin-stage-service" name = "journeys-admin-stage-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-journeys-admin-stage:7" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.stage.module.journeys-admin.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-journeys-admin-stage:7" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-journeys-admin-stage" -> (known after apply) ~ container_definitions = jsonencode( ~ [ ~ { name = "jfp-journeys-admin-stage-app" ~ secrets = [ # (4 unchanged elements hidden) { name = "LAUNCH_DARKLY_SDK_KEY" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/LAUNCH_DARKLY_SDK_KEY" }, - { - name = "NEXT_PUBLIC_ALGOLIA_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_API_KEY" }, - { - name = "NEXT_PUBLIC_ALGOLIA_APP_ID" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_APP_ID" }, - { - name = "NEXT_PUBLIC_ALGOLIA_INDEX" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_INDEX" }, { name = "NEXT_PUBLIC_CLOUDFLARE_STREAM_CUSTOMER_CODE" valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_CLOUDFLARE_STREAM_CUSTOMER_CODE" }, # (16 unchanged elements hidden) ] - systemControls = [] # (9 unchanged attributes hidden) }, ~ { name = "jfp-journeys-admin-stage-datadog-agent" - systemControls = [] # (10 unchanged attributes hidden) }, ~ { name = "jfp-journeys-admin-stage-log-router" - systemControls = [] # (11 unchanged attributes hidden) }, ] # forces replacement ) ~ id = "jfp-journeys-admin-stage" -> (known after apply) ~ revision = 7 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.stage.module.journeys-admin.module.ecs-task.aws_ssm_parameter.parameters["NEXT_PUBLIC_ALGOLIA_API_KEY"] will be destroyed # (because key ["NEXT_PUBLIC_ALGOLIA_API_KEY"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_API_KEY" -> null - data_type = "text" -> null - id = "/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_API_KEY" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_API_KEY" -> null - overwrite = true -> null - tags = { - "name" = "NEXT_PUBLIC_ALGOLIA_API_KEY" } -> null - tags_all = { - "name" = "NEXT_PUBLIC_ALGOLIA_API_KEY" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.stage.module.journeys-admin.module.ecs-task.aws_ssm_parameter.parameters["NEXT_PUBLIC_ALGOLIA_APP_ID"] will be destroyed # (because key ["NEXT_PUBLIC_ALGOLIA_APP_ID"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_APP_ID" -> null - data_type = "text" -> null - id = "/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_APP_ID" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_APP_ID" -> null - overwrite = true -> null - tags = { - "name" = "NEXT_PUBLIC_ALGOLIA_APP_ID" } -> null - tags_all = { - "name" = "NEXT_PUBLIC_ALGOLIA_APP_ID" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } # module.stage.module.journeys-admin.module.ecs-task.aws_ssm_parameter.parameters["NEXT_PUBLIC_ALGOLIA_INDEX"] will be destroyed # (because key ["NEXT_PUBLIC_ALGOLIA_INDEX"] is not in for_each map) - resource "aws_ssm_parameter" "parameters" { - arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_INDEX" -> null - data_type = "text" -> null - id = "/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_INDEX" -> null - key_id = "alias/aws/ssm" -> null - name = "/ecs/journeys-admin/stage/NEXT_PUBLIC_ALGOLIA_INDEX" -> null - overwrite = true -> null - tags = { - "name" = "NEXT_PUBLIC_ALGOLIA_INDEX" } -> null - tags_all = { - "name" = "NEXT_PUBLIC_ALGOLIA_INDEX" } -> null - tier = "Standard" -> null - type = "SecureString" -> null - value = (sensitive value) -> null - version = 1 -> null # (2 unchanged attributes hidden) } Plan: 134 to add, 10 to change, 44 to destroy. ```

2. dir: infrastructure/resources/atlantis workspace: default

Show Output ```diff No changes. Your infrastructure matches the configuration. Terraform has compared your real infrastructure against your configuration and found no differences, so no changes are needed. ╷ │ Warning: Argument is deprecated │ │ with module.atlantis.module.ecs.aws_ecs_cluster.this[0], │ on .terraform/modules/atlantis.ecs/main.tf line 1, in resource "aws_ecs_cluster" "this": │ 1: resource "aws_ecs_cluster" "this" { │ │ Use the aws_ecs_cluster_capacity_providers resource instead │ │ (and one more similar warning elsewhere) ╵ ```

3. dir: infrastructure/resources/doppler workspace: default

No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

4. dir: infrastructure/resources/terraform workspace: default

No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

Plan Summary

4 projects, 1 with changes, 3 with no changes, 0 failed

jesus-film-bot commented 4 months ago

Locks and plans deleted for the projects and workspaces modified in this pull request:

edmonday commented 4 months ago

addressed in https://github.com/JesusFilm/core/pull/3559