Skip to content

feat(terraform/organization): add domains/organization for IAM Identity Center#31

Merged
JackMaarek merged 5 commits into
mainfrom
fix/terraform-variables-placeholder
Mar 27, 2026
Merged

feat(terraform/organization): add domains/organization for IAM Identity Center#31
JackMaarek merged 5 commits into
mainfrom
fix/terraform-variables-placeholder

Conversation

@JackMaarek

Copy link
Copy Markdown
Collaborator

What

feat(terraform/organization): add domains/organization for IAM Identity Center
IAM Identity Center is an AWS Organization-level service. Moving its management
out of _core/shared/dev into a dedicated domain root eliminates cross-env state
dependencies and aligns with AWS recommended architecture.

Supports both single-account (all account IDs equal) and multi-account setups
via tfvars only — module logic is identical in both cases.

Apply order: domains/organization → _core/shared/{env} → domains/platform/{env}

Why

Changes

  • path/to/file — reason

Checklist

  • Branch is based on latest main (git log --oneline main..HEAD)
  • No env-specific values on main-bound files
    grep -r "env: dev\|eu-west-3\|k8s-platform-dev\|esoIrsaRoleArn: \"\"" argocd/ kubernetes/helm/
  • No unreplaced placeholder in manifests (only allowed in ApplicationSet elements:)
    grep -r "__ENV__\|__CLUSTER_NAME__" kubernetes/manifests/ kubernetes/helm/
  • Commit messages follow Conventional Commits (type(scope): description)
  • No file exceeds 200 lines (find . -name "*.yaml" -o -name "*.go" | xargs wc -l | sort -rn | head -20)
  • No secrets or credentials committed (git diff main --name-only | xargs grep -l "password\|secret\|token\|key" 2>/dev/null)
  • ArgoCD wave order documented in comments if sync order matters
  • SRP respected — one file, one responsibility

Testing

  • kubectl apply --dry-run=server on changed manifests
  • ArgoCD sync validated on local cluster (Kind)
  • No new CrashLoopBackOff or ImagePullBackOff after sync

Notes for reviewer

…ty Center

IAM Identity Center is an AWS Organization-level service. Moving its management
out of _core/shared/dev into a dedicated domain root eliminates cross-env state
dependencies and aligns with AWS recommended architecture.

Supports both single-account (all account IDs equal) and multi-account setups
via tfvars only — module logic is identical in both cases.

Apply order: domains/organization → _core/shared/{env} → domains/platform/{env}
…access.tf

Permission sets, groups, and account assignments are now managed exclusively in
domains/organization. Remove identity_center_bootstrap from dev/access.tf,
remove data.terraform_remote_state.shared_dev and identity_center_assignment
from staging/access.tf and prod/access.tf.

Also remove Identity Center outputs from staging/outputs.tf and prod/outputs.tf
that referenced the now-removed shared_dev remote state data source.

Each _core/shared/{env} root is now self-contained — no cross-env state reads.
Permission set ARNs, SSO instance ARN, and group IDs are no longer sourced
from shared/dev. Remove outputs that had no consumers after the organization
domain refactoring.
…emplate

_core/shared/{env} backend files were committed directly with bot tokens,
inconsistent with domains/platform which uses the backend.tf.template pattern.
Align all envs: commit the .template, gitignore the generated backend.tf.

Also fixes prod backend.tf which incorrectly referenced __AWS_ACCOUNT_ID_DEV__
instead of __AWS_ACCOUNT_ID__.
Add domains/organization to Terraform state flow, architecture tree, apply
order, quick start guide, and further reading. Clarify that _core/shared now
only handles CI access.
@JackMaarek
JackMaarek merged commit be9509d into main Mar 27, 2026
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.

1 participant