Migration Guide
Migrating from a homegrown pipeline to InfraDots
Your state already lives in your own remote backend (S3, GCS, etc.) and your code is plain Terraform. So there’s nothing to export — InfraDots connects to what you already have.
Each pipeline target becomes an InfraDots workspace. You keep the Git-driven flow and lose the concurrency locks, retry logic, and drift scripts you’ve been maintaining by hand.
What moves, and what you re-enter
Terraform / OpenTofu code
Unchanged — same repo
Terraform state
Already in your backend — stays the source of truth
Git-driven workflow
Kept — plans from PRs, applies on merge
Pipeline stages / targets
Map to InfraDots workspaces
CI secrets & variables
Move into the workspace; re-enter secrets
Pipeline glue (locking, retries, drift crons)
Retire — handled natively
✓ moves automatically · ↻ you re-enter or re-map once
The migration, step by step
Your state already lives in your own remote backend (S3, GCS, etc.), and your code is plain Terraform. So there’s nothing to export — InfraDots connects to what you already have.
- 1
Connect the repo
Point InfraDots at the same Git repository and branch your pipeline already uses. Your .tf / .hcl files don’t change.
- 2
Map pipeline stages to workspaces
Each pipeline target (env or state file) becomes an InfraDots workspace, set to the Terraform or OpenTofu version matching your required_version. InfraDots manages remote state going forward, or points at your existing backend during cutover.
- 3
Move variables and secrets
Copy the variables your pipeline sets (from CI secrets, .tfvars, or a vault) into the workspace — same keys, marked sensitive. Provider credentials go in as sensitive environment variables.
- 4
Run a plan to confirm parity
Trigger a plan from InfraDots. Because state and code are unchanged, it should show no changes — proof you’re in sync — before you apply. Then retire the pipeline stage by stage.
You can run InfraDots alongside the old pipeline during cutover and switch one workspace at a time. Nothing forces a big-bang migration — and since your code stays plain Terraform, there’s no lock-in if you change your mind.
Ready to move off a DIY pipeline?
Start with one workspace — your code and state stay put, and you can run both in parallel until you’re sure.
Frequently asked questions
Do I keep using my CI?
You can keep CI for app builds and tests — InfraDots replaces the IaC orchestration part: the plan/apply steps, concurrency locking, retries, and drift scripts you built and maintain.
What happens to my Terraform state?
It stays where it is — your own remote backend. InfraDots points at the same repo and state, and a no-op plan confirms parity before you apply.
How do my pipeline stages map over?
Each target (environment or state file) becomes an InfraDots workspace on the Terraform/OpenTofu version matching your required_version. You move variables and secrets in with the same keys.
Is there lock-in if I change my mind?
None. Your code stays plain Terraform/OpenTofu/Terragrunt, so you can run InfraDots alongside the old pipeline during cutover and switch one workspace at a time.
Still deciding? See the full InfraDots vs. DIY Pipelines comparison →
