Shared Infra
Account-level Terraform shared by my personal AWS projects.
Overview
CephaloTech and Gaming.WithAPlan live in the same AWS account. A few things don't belong to either project on its own — the GitHub OIDC provider, DNS zones, account-wide settings, the Terraform state bucket. This is where they are meant to live, so neither app repo has to half-own them.
Current Status
In progress.
Core Problems
- Two app repos were each partially managing account-wide resources.
- The GitHub OIDC provider is a singleton — exactly one Terraform state can own it.
Lessons Learned
- A read-only
terraform_remote_stateis a clean way for sibling stacks to reference shared resources without fighting over them. - Deciding what counts as "shared" versus "per-project" is the actual design work; the Terraform is the easy part.
Tools
- Terraform
- Go
- AWS
- GitHub Actions
