Migration Guide
Migrating from env0 to InfraDots
Your code is plain Terraform/OpenTofu/Terragrunt and your state lives in a backend env0 manages or in your own cloud. Migrating is a per-environment cutover, not a rewrite.
Each env0 environment becomes an InfraDots workspace; variables move over with the same keys. You keep your code and state and switch one environment 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
Variables
Recreate with the same keys
Secrets
Re-enter — can’t be read back out
✓ moves automatically · ↻ you re-enter or re-map once
The migration, step by step
Your code is plain Terraform/OpenTofu/Terragrunt and your state lives in a backend env0 manages or in your own cloud. Migration is a per-workspace cutover, not a rewrite.
- 1
Connect the same repo
Point InfraDots at the repository env0 already uses. Your .tf / .hcl code is unchanged — same modules, same structure.
- 2
Bring over state
For each env0 environment, create an InfraDots workspace and migrate its Terraform state — point InfraDots at your existing backend, or import the latest state version. The workspace’s tool and version match what you run today.
- 3
Move variables and secrets
Recreate env0 variables and environment variables in the InfraDots workspace with the same keys, marking secrets sensitive. (Like any platform, sensitive values can’t be read back out of env0, so re-enter them.)
- 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 env0 environment.
Cut over one environment at a time and keep env0 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 env0?
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 state?
Yes. For each env0 environment, create an InfraDots workspace and migrate its Terraform state — point InfraDots at your existing backend or import the latest state version.
Do I have to change my Terraform code?
No. Your .tf / .hcl code, modules, and structure are unchanged. You connect the same repository env0 already uses.
What about my variables and secrets?
Recreate env0 variables in the InfraDots workspace with the same keys, marking secrets sensitive. As with any platform, sensitive values can’t be read back out of env0, so you re-enter those once.
Is there any lock-in?
No — on either side. Because your code stays plain Terraform/OpenTofu/Terragrunt, you can cut over one environment at a time and keep env0 running until each is confirmed.
Still deciding? See the full InfraDots vs. env0 comparison →
