This is Part 6, the final installment of my series on Production-Grade Terraform Patterns. In Part 5, I closed the loop on updates. But one question remains: When you merge a PR, who actually runs terraform apply?
In valid “GitOps”, humans should never touch the cloud console. And ideally, they shouldn’t even run terraform apply from their laptops.
The Evolution of Execution #
Stage 1: Crypto-ClickOps (The Dark Ages) #
You run terraform apply from your laptop.
- Risk: You have
AdministratorAccesskeys on your disk. - Bug: You forgot to
git pullbefore applying. You just overwrote your colleague’s changes.
Stage 2: Generic CI (Jenkins/GitHub Actions) #
You put terraform apply in a pipeline that runs on merge to main.
- Benefit: Centralized, audited execution.
- Friction: You only see the failure after you merge. “Fixing broken main” becomes a daily ritual.
This is where many teams land first. It works until PR-time plan review and locking start to matter.
Stage 3: TACOS (Terraform Automation and Collaboration Software) #
This is the modern standard. TACOS tools move plan and apply into the Pull Request, so you review infrastructure changes before they touch the cloud.
The Workflow #
TACOS in the wild #
The category includes many products. Below are the ones worth knowing, with official links only.
PR-native and self-hosted #
- Atlantis: Open-source PR automation server.
- OpenTaco: Successor to Digger. Atlantis-style automation on your existing CI runners.
- Burrito: Kubernetes operator for Terraform PR/MR workflows and drift detection.
Orchestration and platform #
- Terramate: Stacks, orchestration, CI/CD integration, and observability.
Managed platforms #
- HCP Terraform (formerly Terraform Cloud) / Terraform Enterprise: HashiCorp’s managed offering.
- Spacelift: Multi-IaC orchestration platform.
- Env0: Cloud governance and IaC automation.
- Scalr: Terraform Cloud alternative with PR-native GitOps.
Digger rebranded to OpenTaco. Same category, new name. If you evaluated Digger in the past, start with OpenTaco.
Pick based on team size, existing CI, and whether you want self-hosted or SaaS. I have not deployed any of these in my reference repos. Treat this as a starting point, not a recommendation.
Why You Need This #
If you have more than 3 engineers, locking is essential. TACOS provide:
- State Locking: Prevents race conditions.
- Plan Review: The plan output is right there in the PR comment, immutable and searchable.
- Gatekeeping: You can require “1 approval” before the
applycommand is allowed to run.
Conclusion #
That closes the series. A complete platform looks like this:
- Split Repos (Part 1) isolate failure domains.
- Modules (Part 2) provide reusable logic.
- Release Please (Part 3) versions those modules reliably.
- Git Tags (Part 4) wire the live repo to versioned modules.
- Renovate (Part 5) keeps dependencies fresh.
- TACOS (Part 6) automate the final mile: plan and apply in the PR, with locking and review.
You have now graduated from “running scripts” to building a Product.