InfraDots logo

Migration Guide

Migrating from Spacelift to InfraDots

Spacelift runs against state it manages or your own backend, and your code is plain Terraform, OpenTofu, or Terragrunt. Migrating is a per-stack cutover, not a rewrite.

Each Spacelift stack becomes an InfraDots workspace, and contexts map to variables. You keep your code and state and move one stack at a time.

What moves, and what you re-enter

  • Terraform / OpenTofu / Terragrunt code

    Unchanged — same repo

  • Terraform state

    Point InfraDots at your backend or import the latest version

  • Contexts (shared variables)

    Map to InfraDots variables

  • Secrets

    Re-enter — can’t be read back out of any platform

  • OPA policies

    Re-implement as InfraDots guardrails; AI review covers much of plan-policy

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

The migration, step by step

Your code is plain Terraform/OpenTofu/Terragrunt and Spacelift runs against state it manages or your own backend. Migration is a per-stack cutover, not a rewrite.

  1. 1

    Connect the same repo

    Point InfraDots at the repository your Spacelift stacks already use. Your .tf / .hcl code is unchanged.

  2. 2

    Map stacks to workspaces

    Each Spacelift stack becomes an InfraDots workspace on the same tool and version. Spacelift contexts (shared variables) map to InfraDots variables at the workspace or org level.

  3. 3

    Bring over state and secrets

    Migrate each stack’s Terraform state — point InfraDots at your backend or import the latest version — and re-enter variables and secrets (sensitive values can’t be read back out of any platform).

  4. 4

    Confirm with a no-op plan

    Run a plan from InfraDots; with identical code and state it should show no changes — your proof of parity — before you apply and retire the Spacelift stack.

Cut over one stack at a time and keep Spacelift running until each is confirmed. Because your code stays plain Terraform/OpenTofu/Terragrunt, there’s no lock-in on either side.

Ready to move off Spacelift?

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 my Terraform state?

Yes. Point InfraDots at the same backend or import each stack’s latest state version. A no-op plan after cutover confirms parity before you apply.

What happens to my stacks and contexts?

Each Spacelift stack becomes an InfraDots workspace on the same tool and version. Contexts (shared variables) map to InfraDots variables at the workspace or org level. Very complex stack-dependency graphs may need to be re-modeled — worth reviewing before you start.

Do my OPA policies come across automatically?

No — policy is re-implemented as InfraDots guardrails, and AI review on every plan covers much of what plan-time policies did. This is the one part of a Spacelift migration that’s hands-on rather than automatic.

Can I run both during the migration?

Yes. Cut over one stack at a time and keep Spacelift running until each is confirmed. Because your code stays plain Terraform/OpenTofu/Terragrunt, there’s no lock-in on either side.

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