Skip to content

Conversation

@tataihono
Copy link
Contributor

@tataihono tataihono commented Jan 19, 2026

Summary

Updated all service infrastructure to use environment-based configuration for desired_count, max_capacity, and min_capacity. Staging environment now uses lower values (1) across all services.

Changes

  • Updated 10 service locals.tf files to make desired_count conditional based on var.env
  • Updated all services to set max_capacity and min_capacity to 1 for staging
  • Added missing env = "stage" parameter to arclight module in infrastructure/environments/stage/main.tf

Files Modified

  • apps/arclight/infrastructure/locals.tf
  • apps/cms/infrastructure/locals.tf
  • apps/journeys-admin/infrastructure/locals.tf
  • apis/api-analytics/infrastructure/locals.tf
  • apis/api-gateway/infrastructure/locals.tf
  • apis/api-journeys/infrastructure/locals.tf
  • apis/api-journeys-modern/infrastructure/locals.tf
  • apis/api-languages/infrastructure/locals.tf
  • apis/api-media/infrastructure/locals.tf
  • apis/api-users/infrastructure/locals.tf
  • infrastructure/environments/stage/main.tf

Staging Configuration

For staging environment, all services now have:

  • desired_count: 1
  • max_capacity: 1
  • min_capacity: 1

Production values remain unchanged.

Closes ENG-3564

Summary by CodeRabbit

  • Chores
    • Introduced environment-aware deployment sizing to ensure appropriate scaling in stage vs non-stage.
    • Standardized auto-scaling limits across services to reduce resource usage in stage environments.
    • Added memory-based autoscaling targets to improve responsiveness.

✏️ Tip: You can customize this high-level summary in your review settings.

@linear
Copy link

linear bot commented Jan 19, 2026

@jesus-film-bot
Copy link

Ran Plan for dir: infrastructure workspace: default

Plan Failed: This project is currently locked by an unapplied plan from pull #8604. To continue, delete the lock from #8604 or apply that plan and merge the pull request.

Once the lock is released, comment atlantis plan here to re-plan.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 19, 2026

Walkthrough

Updated 10 service Terraform locals to use environment-based conditionals for ECS desired_count and auto-scaling capacities (stage set to lower values). Also moved/added env = "stage" into the arclight module invocation in the stage environment config.

Changes

Cohort / File(s) Summary
Service ECS Configuration
apis/api-analytics/infrastructure/locals.tf, apis/api-gateway/infrastructure/locals.tf, apis/api-journeys/infrastructure/locals.tf, apis/api-journeys-modern/infrastructure/locals.tf, apis/api-languages/infrastructure/locals.tf, apis/api-media/infrastructure/locals.tf, apis/api-users/infrastructure/locals.tf, apps/arclight/infrastructure/locals.tf, apps/cms/infrastructure/locals.tf, apps/journeys-admin/infrastructure/locals.tf
Introduced environment-aware ternary expressions for desired_count, auto_scaling.max_capacity, and auto_scaling.min_capacity so stage uses reduced values (typically 1) while non-stage uses higher values (2–4 as previously configured). Some services also add memory autoscaling target_value where present.
Stage Module Configuration
infrastructure/environments/stage/main.tf
Reordered/added env = "stage" input inside the arclight module block so the module receives the env parameter as part of its inputs (no value change).

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • mikeallisonJS
  • jianwei1
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: configure 1 for desired_count on stage' accurately describes the primary objective of the PR - configuring environment-based desired_count values for staging.
Linked Issues check ✅ Passed The PR successfully implements all coding requirements from ENG-3564: environment-based conditional logic for desired_count, max_capacity, and min_capacity across 10 service locals files, plus the missing env parameter in arclight module.
Out of Scope Changes check ✅ Passed All changes are within scope of ENG-3564 objectives: 10 service locals.tf files updated with environment conditionals, and env parameter added to arclight module in stage main.tf as specified.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch tataihono/eng-3564-configure-environment-based-desired_count-and-auto-scaling

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@infracost
Copy link

infracost bot commented Jan 19, 2026

💰 Infracost report

Monthly estimate decreased by $187 📉

Changed project Baseline cost Usage cost* Total change New monthly cost
infrastructure -$187 - -$187 (-10%) $1,718

*Usage costs can be estimated by updating Infracost Cloud settings, see docs for other options.

Estimate details (includes details of unsupported resources)
Key: * usage cost, ~ changed, + added, - removed

──────────────────────────────────
Project: infrastructure
Module path: infrastructure

~ module.stage.module.api-journeys.module.ecs-task.aws_ecs_service.ecs_service
  -$36 ($72 → $36)

    ~ Per GB per hour
      -$6 ($13 → $6)

    ~ Per vCPU per hour
      -$30 ($59 → $30)

~ module.stage.module.api-gateway-stage.module.ecs-task.aws_ecs_service.ecs_service
  -$43 ($85 → $43)

    ~ Per GB per hour
      -$13 ($26 → $13)

    ~ Per vCPU per hour
      -$30 ($59 → $30)

~ module.stage.module.arclight.module.ecs-task.aws_ecs_service.ecs_service
  -$108 ($144 → $36)

    ~ Per GB per hour
      -$19 ($26 → $6)

    ~ Per vCPU per hour
      -$89 ($118 → $30)

Monthly cost change for infrastructure (Module path: infrastructure)
Amount:  -$187 ($1,904 → $1,718)
Percent: -10%

──────────────────────────────────
Key: * usage cost, ~ changed, + added, - removed

*Usage costs can be estimated by updating Infracost Cloud settings, see docs for other options.

914 cloud resources were detected:
∙ 126 were estimated
∙ 786 were free
∙ 2 are not supported yet, see https://infracost.io/requested-resources:
  ∙ 1 x aws_s3_bucket_accelerate_configuration
  ∙ 1 x aws_s3_bucket_request_payment_configuration

Infracost estimate: Monthly estimate decreased by $187 ↓
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Changed project                                    ┃ Baseline cost ┃ Usage cost* ┃ Total change ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━╋━━━━━━━━━━━━━━┫
┃ infrastructure                                     ┃         -$187 ┃           - ┃ -$187 (-10%) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━┻━━━━━━━━━━━━━━┛
This comment will be updated when code changes.

@nx-cloud
Copy link

nx-cloud bot commented Jan 19, 2026

View your CI Pipeline Execution ↗ for commit 8b27998

Command Status Duration Result
nx run journeys-admin-e2e:e2e ✅ Succeeded 30s View ↗
nx run-many --target=vercel-alias --projects=jo... ✅ Succeeded 2s View ↗
nx run-many --target=upload-sourcemaps --projec... ✅ Succeeded 12s View ↗
nx run-many --target=deploy --projects=journeys... ✅ Succeeded 2m 49s View ↗

☁️ Nx Cloud last updated this comment at 2026-01-19 09:33:30 UTC

@tataihono tataihono force-pushed the tataihono/eng-3564-configure-environment-based-desired_count-and-auto-scaling branch from 55b808b to ec15aeb Compare January 19, 2026 09:14
@jesus-film-bot
Copy link

Ran Plan for dir: infrastructure workspace: default

Plan Failed: This project is currently locked by an unapplied plan from pull #8604. To continue, delete the lock from #8604 or apply that plan and merge the pull request.

Once the lock is released, comment atlantis plan here to re-plan.

@github-actions github-actions bot requested a deployment to Preview - journeys-admin January 19, 2026 09:16 Pending
@tataihono tataihono changed the title Configure environment-based desired_count and auto-scaling for staging chore: configure environment-based desired_count and auto-scaling for staging Jan 19, 2026
@tataihono tataihono changed the title chore: configure environment-based desired_count and auto-scaling for staging chore: configure 1 for desired_count on stage Jan 19, 2026
@tataihono tataihono self-assigned this Jan 19, 2026
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
infrastructure/environments/stage/main.tf (1)

172-187: Duplicate env argument will cause Terraform error.

The env variable is assigned twice in the arclight module block (lines 180 and 186). Terraform does not allow duplicate arguments within the same block and will fail with an error like Duplicate argument "env".

🐛 Proposed fix - remove duplicate assignment
 module "arclight" {
   source = "../../../apps/arclight/infrastructure"
   ecs_config = merge(local.public_ecs_config, {
     alb_target_group = merge(local.alb_target_group, {
       health_check_path = "/"
       health_check_port = "3000"
     })
   })
   env              = "stage"
   doppler_token    = data.aws_ssm_parameter.doppler_arclight_stage_token.value
   alb_listener_arn = module.stage.public_alb.alb_listener.arn
   alb_dns_name     = module.stage.public_alb.dns_name
   host_name        = "core-stage.arclight.org"
   host_names       = ["*.arclight.org", "*.arc.gt"] // handle any arclight or arc.gt subdomain passed to stage alb
-  env              = "stage"
 }
🧹 Nitpick comments (8)
apis/api-analytics/infrastructure/locals.tf (1)

16-23: Redundant conditionals return the same value on both branches.

Lines 16 and 23 use ternary operators where both branches evaluate to 1:

  • desired_count = var.env == "stage" ? 1 : 1
  • min_capacity = var.env == "stage" ? 1 : 1

This adds cognitive overhead without providing any differentiation. Either simplify to a constant 1, or specify the intended production values if they should differ.

♻️ Suggested simplification
-    desired_count  = var.env == "stage" ? 1 : 1
+    desired_count  = 1
     zone_id        = var.ecs_config.zone_id
     alb_target_group = merge(var.ecs_config.alb_target_group, {
       port = local.port
     })
     auto_scaling = {
       max_capacity = var.env == "stage" ? 1 : 4
-      min_capacity = var.env == "stage" ? 1 : 1
+      min_capacity = 1
apps/arclight/infrastructure/locals.tf (1)

36-37: Redundant conditional for min_capacity.

Line 37 evaluates to 1 regardless of environment. Consider simplifying to a constant or using the intended production value if it should differ.

♻️ Suggested simplification
       max_capacity = var.env == "stage" ? 1 : 4
-      min_capacity = var.env == "stage" ? 1 : 1
+      min_capacity = 1
apis/api-users/infrastructure/locals.tf (1)

24-31: Redundant conditionals return the same value on both branches.

Lines 24 and 31 use ternary operators where both branches evaluate to 1:

  • desired_count = var.env == "stage" ? 1 : 1
  • min_capacity = var.env == "stage" ? 1 : 1

This follows the same pattern flagged in other files. Consider simplifying to constants or using intended production values.

♻️ Suggested simplification
-    desired_count  = var.env == "stage" ? 1 : 1
+    desired_count  = 1
     zone_id        = var.ecs_config.zone_id
     alb_target_group = merge(var.ecs_config.alb_target_group, {
       port = local.port
     })
     auto_scaling = {
       max_capacity = var.env == "stage" ? 1 : 2
-      min_capacity = var.env == "stage" ? 1 : 1
+      min_capacity = 1
apps/cms/infrastructure/locals.tf (1)

24-24: Redundant ternary expressions for desired_count and min_capacity.

The conditionals on lines 24 and 35 evaluate to 1 in both branches, making them no-ops. While this establishes a consistent pattern for future differentiation, consider simplifying to reduce noise:

-    desired_count  = var.env == "stage" ? 1 : 1
+    desired_count  = 1
-      min_capacity = var.env == "stage" ? 1 : 1
+      min_capacity = 1

The max_capacity conditional on line 34 is correctly implemented with meaningful differentiation (stage: 1, prod: 4).

Also applies to: 34-35

apis/api-media/infrastructure/locals.tf (1)

51-51: Same redundant ternary pattern as other services.

Lines 51 and 58 have ternaries that always return 1. The max_capacity on line 57 correctly differentiates stage (1) from prod (3).

Consider simplifying the no-op conditionals:

-    desired_count  = var.env == "stage" ? 1 : 1
+    desired_count  = 1
     ...
-      min_capacity = var.env == "stage" ? 1 : 1
+      min_capacity = 1

Also applies to: 57-58

apis/api-languages/infrastructure/locals.tf (1)

27-27: Consistent with PR pattern; same no-op ternary observation.

Same as other services — desired_count (line 27) and min_capacity (line 34) conditionals are no-ops. The max_capacity (line 33) correctly varies between stage (1) and prod (3).

Also applies to: 33-34

apis/api-journeys-modern/infrastructure/locals.tf (1)

62-62: Same pattern applies here.

desired_count (line 62) and min_capacity (line 69) are no-op ternaries. max_capacity (line 68) correctly differentiates stage (1) from prod (4).

Also applies to: 68-69

apps/journeys-admin/infrastructure/locals.tf (1)

39-39: Same pattern; consider PR-wide simplification.

This file follows the same pattern: desired_count (line 39) and min_capacity (line 50) are no-ops, while max_capacity (line 49) correctly varies.

If the intent is to prepare for future per-environment values, consider documenting this in a comment. Otherwise, simplifying the no-ops across all 10 services would reduce cognitive load. As per coding guidelines, conditional expressions should handle meaningful edge cases.

Also applies to: 49-50

@jesus-film-bot
Copy link

Error: unknown command "plant".
Run 'atlantis --help' for usage.
Available commands(--allow-commands): version, plan, apply, cancel, unlock, approve_policies

@tataihono
Copy link
Contributor Author

atlantis plan

@jesus-film-bot
Copy link

Ran Plan for dir: infrastructure workspace: default

Plan Failed: This project is currently locked by an unapplied plan from pull #8604. To continue, delete the lock from #8604 or apply that plan and merge the pull request.

Once the lock is released, comment atlantis plan here to re-plan.

@tataihono
Copy link
Contributor Author

atlantis plan

@jesus-film-bot
Copy link

Ran Plan for dir: infrastructure workspace: default

Plan Error

Show Output
running 'sh -c' '/usr/local/bin/terraform init -input=false' in '/home/atlantis/.atlantis/repos/JesusFilm/core/8615/default/infrastructure': exit status 1
Initializing the backend...

Successfully configured the backend "s3"! Terraform will automatically
use this backend unless the backend configuration changes.
Initializing modules...
- acm_central_jesusfilm_org in modules/aws/acm
- datadog in modules/aws/datadog
Downloading registry.terraform.io/terraform-aws-modules/datadog-forwarders/aws 5.1.0 for datadog.datadog_log_forwarder...
- datadog.datadog_log_forwarder in .terraform/modules/datadog.datadog_log_forwarder/modules/log_forwarder
Downloading registry.terraform.io/terraform-aws-modules/s3-bucket/aws 3.6.1 for datadog.datadog_log_forwarder.this_s3_bucket...
- datadog.datadog_log_forwarder.this_s3_bucket in .terraform/modules/datadog.datadog_log_forwarder.this_s3_bucket
Downloading registry.terraform.io/terraform-aws-modules/datadog-forwarders/aws 5.1.0 for datadog.datadog_rds_enhanced_monitoring_forwarder...
- datadog.datadog_rds_enhanced_monitoring_forwarder in .terraform/modules/datadog.datadog_rds_enhanced_monitoring_forwarder/modules/rds_enhanced_monitoring_forwarder
- iam in modules/aws/iam
- prod in environments/prod
- prod.api-analytics in ../apis/api-analytics/infrastructure
- prod.api-analytics.alb-listener in ../infrastructure/modules/aws/alb-listener
- prod.api-analytics.ecs-task in ../infrastructure/modules/aws/ecs-task
- prod.api-gateway in ../apis/api-gateway/infrastructure
- prod.api-gateway.ecs-task in ../infrastructure/modules/aws/ecs-task
- prod.api-journeys in ../apis/api-journeys/infrastructure
- prod.api-journeys.alb-listener in ../infrastructure/modules/aws/alb-listener
- prod.api-journeys.ecs-task in ../infrastructure/modules/aws/ecs-task
- prod.api-journeys-modern in ../apis/api-journeys-modern/infrastructure
- prod.api-journeys-modern.alb-listener in ../infrastructure/modules/aws/alb-listener
- prod.api-journeys-modern.ecs-task in ../infrastructure/modules/aws/ecs-task
- prod.api-languages in ../apis/api-languages/infrastructure
- prod.api-languages.alb-listener in ../infrastructure/modules/aws/alb-listener
- prod.api-languages.ecs-task in ../infrastructure/modules/aws/ecs-task
- prod.api-media in ../apis/api-media/infrastructure
- prod.api-media.alb-listener in ../infrastructure/modules/aws/alb-listener
- prod.api-media.ecs-task in ../infrastructure/modules/aws/ecs-task
- prod.api-users in ../apis/api-users/infrastructure
- prod.api-users.alb-listener in ../infrastructure/modules/aws/alb-listener
- prod.api-users.ecs-task in ../infrastructure/modules/aws/ecs-task
- prod.arclight in ../apps/arclight/infrastructure
- prod.arclight.ecs-task in ../infrastructure/modules/aws/ecs-task
- prod.bastion in modules/aws/ec2-bastion
- prod.cloudflared in modules/aws/ec2-cloudflared
- prod.cms in ../apps/cms/infrastructure
- prod.cms.ecs-task in ../infrastructure/modules/aws/ecs-task
- prod.datadog_aurora in modules/aws/ec2-dd-agent-aurora
- prod.eks in modules/aws/eks
- prod.journeys-admin in ../apps/journeys-admin/infrastructure
- prod.journeys-admin.ecs-task in ../infrastructure/modules/aws/ecs-task
- prod.postgresql in modules/aws/aurora
- prod.prod in modules/aws
- prod.prod.ecs in modules/aws/ecs
- prod.prod.internal_alb in modules/aws/alb
- prod.prod.internal_alb_listener in modules/aws/alb-listener
- prod.prod.internal_alb_security_group in modules/aws/security-group
- prod.prod.internal_rds_security_group in modules/aws/security-group
- prod.prod.public_alb in modules/aws/alb
- prod.prod.public_alb_listener in modules/aws/alb-listener
- prod.prod.public_alb_security_group in modules/aws/security-group
- prod.prod.public_bastion_security_group in modules/aws/security-group
- prod.prod.route53_private_zone in modules/aws/route53
- prod.prod.vpc in modules/aws/vpc
- prod.redis in modules/aws/elasticache
- route53_central_jesusfilm_org in modules/aws/route53/subdomain
- route53_jesusfilm_org_zone in modules/aws/route53/domain
- stage in environments/stage
- stage.api-analytics in ../apis/api-analytics/infrastructure
- stage.api-analytics.alb-listener in ../infrastructure/modules/aws/alb-listener
- stage.api-analytics.ecs-task in ../infrastructure/modules/aws/ecs-task
- stage.api-gateway-stage in ../apis/api-gateway/infrastructure
- stage.api-gateway-stage.ecs-task in ../infrastructure/modules/aws/ecs-task
- stage.api-journeys in ../apis/api-journeys/infrastructure
- stage.api-journeys.alb-listener in ../infrastructure/modules/aws/alb-listener
- stage.api-journeys.ecs-task in ../infrastructure/modules/aws/ecs-task
- stage.api-journeys-modern in ../apis/api-journeys-modern/infrastructure
- stage.api-journeys-modern.alb-listener in ../infrastructure/modules/aws/alb-listener
- stage.api-journeys-modern.ecs-task in ../infrastructure/modules/aws/ecs-task
- stage.api-languages in ../apis/api-languages/infrastructure
- stage.api-languages.alb-listener in ../infrastructure/modules/aws/alb-listener
- stage.api-languages.ecs-task in ../infrastructure/modules/aws/ecs-task
- stage.api-media in ../apis/api-media/infrastructure
- stage.api-media.alb-listener in ../infrastructure/modules/aws/alb-listener
- stage.api-media.ecs-task in ../infrastructure/modules/aws/ecs-task
- stage.api-users in ../apis/api-users/infrastructure
- stage.api-users.alb-listener in ../infrastructure/modules/aws/alb-listener
- stage.api-users.ecs-task in ../infrastructure/modules/aws/ecs-task
- stage.arclight in ../apps/arclight/infrastructure
- stage.arclight.ecs-task in ../infrastructure/modules/aws/ecs-task
- stage.bastion in modules/aws/ec2-bastion
- stage.cloudflared in modules/aws/ec2-cloudflared
- stage.cms in ../apps/cms/infrastructure
- stage.cms.ecs-task in ../infrastructure/modules/aws/ecs-task
- stage.datadog_aurora in modules/aws/ec2-dd-agent-aurora
- stage.eks in modules/aws/eks
- stage.journeys-admin in ../apps/journeys-admin/infrastructure
- stage.journeys-admin.ecs-task in ../infrastructure/modules/aws/ecs-task
- stage.postgresql in modules/aws/aurora
- stage.redis in modules/aws/elasticache
- stage.route53_stage_central_jesusfilm_org in modules/aws/route53/subdomain
- stage.stage in modules/aws
- stage.stage.ecs in modules/aws/ecs
- stage.stage.internal_alb in modules/aws/alb
- stage.stage.internal_alb_listener in modules/aws/alb-listener
- stage.stage.internal_alb_security_group in modules/aws/security-group
- stage.stage.internal_rds_security_group in modules/aws/security-group
- stage.stage.public_alb in modules/aws/alb
- stage.stage.public_alb_listener in modules/aws/alb-listener
- stage.stage.public_alb_security_group in modules/aws/security-group
- stage.stage.public_bastion_security_group in modules/aws/security-group
- stage.stage.route53_private_zone in modules/aws/route53
- stage.stage.vpc in modules/aws/vpc
╷
│ Error: Attribute redefined
│ 
│   on environments/stage/main.tf line 186, in module "arclight":
│  186:   env              = "stage"
│ 
│ The argument "env" was already set at environments/stage/main.tf:180,3-6.
│ Each argument may be set only once.
╵

@tataihono
Copy link
Contributor Author

atlantis plan

@jesus-film-bot
Copy link

Ran Plan for dir: infrastructure workspace: default

Plan Error

cannot run "plan": the default workspace at path infrastructure is currently locked for this pull request by "plan".
Wait until the previous command is complete and try again

@github-actions github-actions bot temporarily deployed to Preview - journeys-admin January 19, 2026 09:25 Inactive
@jesus-film-bot
Copy link

Ran Plan for dir: infrastructure workspace: default

Show Output
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
~ update in-place

Terraform will perform the following actions:

  # module.prod.module.arclight.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place
~ resource "aws_ecs_service" "ecs_service" {
      ~ desired_count                      = 2 -> 4
        id                                 = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/arclight-prod-service"
        name                               = "arclight-prod-service"
        tags                               = {}
        # (18 unchanged attributes hidden)

        # (4 unchanged blocks hidden)
    }

  # module.stage.module.api-analytics.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be updated in-place
~ resource "aws_appautoscaling_target" "service_autoscaling" {
        id                 = "service/jfp-ecs-cluster-stage/api-analytics-stage-service"
      ~ max_capacity       = 4 -> 1
        tags               = {}
        # (8 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # module.stage.module.api-gateway-stage.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be updated in-place
~ resource "aws_appautoscaling_target" "service_autoscaling" {
        id                 = "service/jfp-ecs-cluster-stage/api-gateway-stage-service"
      ~ max_capacity       = 4 -> 1
      ~ min_capacity       = 2 -> 1
        tags               = {}
        # (7 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # module.stage.module.api-gateway-stage.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place
~ resource "aws_ecs_service" "ecs_service" {
      ~ desired_count                      = 2 -> 1
        id                                 = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-gateway-stage-service"
        name                               = "api-gateway-stage-service"
        tags                               = {}
        # (18 unchanged attributes hidden)

        # (4 unchanged blocks hidden)
    }

  # module.stage.module.api-journeys.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be updated in-place
~ resource "aws_appautoscaling_target" "service_autoscaling" {
        id                 = "service/jfp-ecs-cluster-stage/api-journeys-stage-service"
      ~ max_capacity       = 4 -> 1
      ~ min_capacity       = 2 -> 1
        tags               = {}
        # (7 unchanged attributes hidden)

        # (1 unchanged block 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" {
      ~ desired_count                      = 2 -> 1
        id                                 = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-journeys-stage-service"
        name                               = "api-journeys-stage-service"
        tags                               = {}
        # (18 unchanged attributes hidden)

        # (4 unchanged blocks hidden)
    }

  # module.stage.module.api-journeys-modern.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be updated in-place
~ resource "aws_appautoscaling_target" "service_autoscaling" {
        id                 = "service/jfp-ecs-cluster-stage/api-journeys-modern-stage-service"
      ~ max_capacity       = 4 -> 1
        tags               = {}
        # (8 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # module.stage.module.api-languages.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be updated in-place
~ resource "aws_appautoscaling_target" "service_autoscaling" {
        id                 = "service/jfp-ecs-cluster-stage/api-languages-stage-service"
      ~ max_capacity       = 3 -> 1
        tags               = {}
        # (8 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # module.stage.module.api-media.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be updated in-place
~ resource "aws_appautoscaling_target" "service_autoscaling" {
        id                 = "service/jfp-ecs-cluster-stage/api-media-stage-service"
      ~ max_capacity       = 3 -> 1
        tags               = {}
        # (8 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # module.stage.module.api-users.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be updated in-place
~ resource "aws_appautoscaling_target" "service_autoscaling" {
        id                 = "service/jfp-ecs-cluster-stage/api-users-stage-service"
      ~ max_capacity       = 2 -> 1
        tags               = {}
        # (8 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # module.stage.module.arclight.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be updated in-place
~ resource "aws_appautoscaling_target" "service_autoscaling" {
        id                 = "service/jfp-ecs-cluster-stage/arclight-stage-service"
      ~ max_capacity       = 4 -> 1
        tags               = {}
        # (8 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # module.stage.module.cms.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be updated in-place
~ resource "aws_appautoscaling_target" "service_autoscaling" {
        id                 = "service/jfp-ecs-cluster-stage/cms-stage-service"
      ~ max_capacity       = 4 -> 1
        tags               = {}
        # (8 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # module.stage.module.journeys-admin.module.ecs-task.aws_appautoscaling_target.service_autoscaling will be updated in-place
~ resource "aws_appautoscaling_target" "service_autoscaling" {
        id                 = "service/jfp-ecs-cluster-stage/journeys-admin-stage-service"
      ~ max_capacity       = 4 -> 1
        tags               = {}
        # (8 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

Plan: 0 to add, 13 to change, 0 to destroy.
╷
│ Warning: Deprecated Resource
│ 
│   with module.datadog.datadog_integration_aws.sandbox,
│   on modules/aws/datadog/main.tf line 118, in resource "datadog_integration_aws" "sandbox":
│  118: resource "datadog_integration_aws" "sandbox" {
│ 
│ **This resource is deprecated - use the `datadog_integration_aws_account`
│ resource instead**:
│ https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/integration_aws_account
╵
╷
│ Warning: Deprecated attribute
│ 
│   on .terraform/modules/datadog.datadog_log_forwarder/modules/log_forwarder/main.tf line 2, in locals:
│    2:   bucket_name = var.bucket_name != "" ? var.bucket_name : "datadog-forwarder-${data.aws_caller_identity.current.account_id}-${data.aws_region.current.name}"
│ 
│ The attribute "name" is deprecated. Refer to the provider documentation for
│ details.
│ 
│ (and 2 more similar warnings elsewhere)
╵
  • ▶️ To apply this plan, comment:
    atlantis apply -d infrastructure
  • 🚮 To delete this plan and lock, click here
  • 🔁 To plan this project again, comment:
    atlantis plan -d infrastructure

Plan: 0 to add, 13 to change, 0 to destroy.


  • ⏩ To apply all unapplied plans from this Pull Request, comment:
    atlantis apply
  • 🚮 To delete all plans and locks from this Pull Request, comment:
    atlantis unlock

@github-actions
Copy link
Contributor

The latest updates on your projects.

Name Status Preview Updated (UTC)
journeys-admin ✅ Ready journeys-admin preview Mon Jan 19 22:30:02 NZDT 2026

@tataihono tataihono closed this Jan 19, 2026
@tataihono tataihono deleted the tataihono/eng-3564-configure-environment-based-desired_count-and-auto-scaling branch January 19, 2026 09:30
@github-actions github-actions bot temporarily deployed to Preview - journeys-admin January 19, 2026 09:32 Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants