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_state is 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