Skip to content

feat(docs): IaC tooling decision page — OpenTofu canonical, Terragrunt phase-out#56

Merged
JacobPEvans-personal merged 1 commit into
mainfrom
feat/iac-tooling-decision
Jun 3, 2026
Merged

feat(docs): IaC tooling decision page — OpenTofu canonical, Terragrunt phase-out#56
JacobPEvans-personal merged 1 commit into
mainfrom
feat/iac-tooling-decision

Conversation

@JacobPEvans-personal
Copy link
Copy Markdown
Member

What

Adds infrastructure/iac-tooling.mdx — the decision record for two recurring questions: Terraform or OpenTofu? and do we need Terragrunt?

Why

The premise was already half-resolved on investigation:

  • Every active IaC repo already runs OpenTofu, not Terraform — CI uses opentofu/setup-opentofu, lockfiles pin registry.opentofu.org/*, the Nix dev shell marks opentofu # canonical binary. "Terraform" survives only in terraform-* repo names and stale doc prose.
  • Terragrunt is mostly a config wrapper here, not an orchestrator. It does real work in 3 repos (SOPS decrypt + 3-layer input merge + after_hook Ansible sync); elsewhere it only generates a backend/provider block that OpenTofu 1.8+ native config now covers. No dependency/run-all/stacks/multi-account anywhere.

Decisions recorded

  1. OpenTofu is canonical (MPL 2.0 / Linux Foundation vs BSL 1.1 / IBM; native state encryption; 1.8+ dynamic config).
  2. terraform-* names are legacy — documented, not renamed (module source refs, redirects, CI, and doc-link churn aren't worth it; same logic as the JacobPEvans→dryvist redirect rule). New repos use tofu-*.
  3. Terragrunt phase-out — keep in proxmox/unifi/tofu-proxmox-cluster; phase out of the thin-wrapper repos.

Also

  • Fixes stale "Terraform" engine references in infrastructure/overview.mdx (blockquote, description, mermaid node, caption, SOPS card).
  • Cross-links the new page from terraform-check-placement.mdx.

Out of scope (follow-ups)

  • The actual Terragrunt removal from terraform-github / terraform-runs-on / terraform-aws — code work in those repos, to be tracked there.
  • FYI: infrastructure/overview.mdx links terraform-aws to a repo that is private — pre-existing, not touched here.

Verification

  • jq empty docs.json
  • scripts/validate-mermaid.sh ✓ (exit 0, new convergence diagram parses)
  • Internal link targets all exist and are in nav.

Refs: dryvist/docs-starlight (companion PR for engine-prose + phase-out asides)

🤖 Generated with Claude Code

…runt phase-out

Records the org's IaC tooling stance: OpenTofu is the canonical engine
(every active repo already runs tofu), the terraform-* repo prefix is
legacy and not worth renaming, and Terragrunt is kept only where it does
real work (SOPS decrypt, 3-layer input merge, after_hook Ansible sync)
and phased out where it is a thin backend/provider wrapper that
OpenTofu 1.8+ native config now covers.

Also fixes stale 'Terraform' engine references in infrastructure/overview
(prose, mermaid node, SOPS card) and cross-links the new page from
terraform-check-placement.

Refs: dryvist/docs-starlight (engine-prose + phase-out asides PR)

Assisted-by: Claude:claude-opus-4-8
@JacobPEvans-personal JacobPEvans-personal force-pushed the feat/iac-tooling-decision branch from 32e447f to 9065208 Compare June 3, 2026 01:37
@JacobPEvans-personal JacobPEvans-personal merged commit e25f07b into main Jun 3, 2026
3 checks passed
@JacobPEvans-personal JacobPEvans-personal deleted the feat/iac-tooling-decision branch June 3, 2026 02:12
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