InfraDots logo

Migration Guide

Migrating from Atlantis to InfraDots

Atlantis never stored your state — it runs against your own backend (S3, GCS, etc.). So there’s no state to extract, which makes this the lowest-risk migration of the set.

Connect the same repo, map your atlantis.yaml projects to workspaces, and keep the PR-driven workflow you already use — then retire the daemon and the scheduled jobs you bolted onto it.

What moves, and what you re-enter

  • Terraform / OpenTofu / Terragrunt code

    Unchanged — same repo

  • Terraform state

    Already in your own backend — stays the source of truth

  • PR-driven workflow

    Kept — plans and applies still run from pull requests

  • atlantis.yaml projects

    Map to InfraDots workspaces

  • Variables & secrets

    Recreate with the same keys; re-enter secrets

  • Self-hosted daemon + drift cron jobs

    Retire them — drift detection is built in

moves automatically · you re-enter or re-map once

The migration, step by step

Atlantis never stored your state — it runs against your own backend (S3, GCS, etc.). So there’s no state to extract and the move is low-risk: InfraDots connects to the same repo and state you already have.

  1. 1

    Connect the same repo

    Point InfraDots at the repository Atlantis already watches. Your Terraform, OpenTofu, and Terragrunt code is unchanged — no rewrites.

  2. 2

    Map atlantis.yaml to workspaces

    Each project/workspace in your atlantis.yaml becomes an InfraDots workspace, pointed at the same state backend and the tool version you already use. Your existing state stays the source of truth.

  3. 3

    Move variables and provider credentials

    Bring the variables and secrets your Atlantis runs relied on into the workspace — same keys, marked sensitive. Provider credentials become sensitive environment variables.

  4. 4

    Plan to confirm, then retire the daemon

    Run a plan from InfraDots; with the same code and state, it should show no changes. Once you’ve cut over each workspace, you can shut down the Atlantis daemon — and the scheduled drift jobs you built around it.

Run both in parallel during cutover: keep Atlantis live until each workspace is confirmed in InfraDots. Because your code stays plain Terraform/OpenTofu/Terragrunt, there’s no lock-in — the same property that made Atlantis easy to leave makes InfraDots easy to leave too.

Ready to move off Atlantis?

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 have to shut down the Atlantis daemon first?

No. Run both in parallel during cutover — keep Atlantis live until each workspace is confirmed in InfraDots, then shut down the daemon (and the scheduled drift jobs you built around it).

What happens to my Terraform state?

Nothing risky — it already lives in your own backend. InfraDots points at the same repo and state; a no-op plan confirms you’re in sync before you apply.

What about my atlantis.yaml?

Each project/workspace in your atlantis.yaml becomes an InfraDots workspace on the same tool and version, pointed at the same state backend.

Do I lose the PR workflow I like?

No — that’s the point. Plans and applies still run from your pull requests. You keep the workflow and drop the daemon, the cron jobs, and the wall-of-text reviews.

Still deciding? See the full InfraDots vs. Atlantis comparison →