InfraDots logo

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. 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. 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. 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. 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 →