feat: Add ECS Fargate infrastructure and deployment configuration#362
Open
e9e4e5f0faef wants to merge 3 commits intostagefrom
Open
feat: Add ECS Fargate infrastructure and deployment configuration#362e9e4e5f0faef wants to merge 3 commits intostagefrom
e9e4e5f0faef wants to merge 3 commits intostagefrom
Conversation
Sancus
reviewed
Jan 24, 2026
60d4f86 to
2ee8f25
Compare
699facf to
c54436f
Compare
8dff9f9 to
65b3600
Compare
65b3600 to
34a5a24
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR adds infrastructure, CI/CD, and testing to deploy addons-server on AWS ECS Fargate. The full lifecycle has been validated: deploy, smoke test, teardown.
Files changed (15):
Dockerfile.ecsdocker/docker-entrypoint.sh--need-appfast-fail.github/workflows/build-and-push.ymlinfra/pulumi/__main__.pyinfra/pulumi/config.stage.yamlinfra/pulumi/Pulumi.yamlinfra/pulumi/Pulumi.stage.yamlinfra/pulumi/README.mdinfra/pulumi/requirements.txtinfra/scripts/guardduty-cleanup.shpulumi destroy-- safe, tag-gated, dry-run supportinfra/tests/smoke_test.pyinfra/tests/.env.exampleinfra/tests/Dockerfilesettings_local_stage.py.gitignoreContext
This is the initial PR for migrating ATN from EC2/Ansible to ECS Fargate, as discussed with @Sancus. Key decisions and implementation details:
Networking:
10.100.0.0/16with public/private subnets across 3 AZs (approved by Andrei)vpc-441e5e22) with routes on the correct custom route tables (not the VPC default RT)Security groups (accounts-repo pattern):
source_security_group_idwiringsg-d5539ea9(Redis/Memcached/ES/EFS) andsg-5133b52c(RDS/RabbitMQ)ECS services:
force_deleteon ECR for safe teardown cyclestb_pulumidefaultsIAM and secrets:
atn/stage/*policy on all task roles (including cron task role)CI/CD:
AWS_ROLE_ARNrepo variable is set)AWS_ROLE_ARNhas been set on the repositoryPost-deploy validation
pulumi upsucceeded in us-west-2 (142 resources, zero errors). Infrastructure was validated via a read-only smoke test run as an ECS Fargate task in the private subnets:Stack was cleanly destroyed after validation (142 resources deleted, zero errors). Full lifecycle proven: up, test, destroy, repeatable.
Remaining follow-ups (separate from this PR):
Testing
Checklist
History squashed to present a clean change-set; no functional changes from individual commits