Back to all use cases

ConsultingCross-Industry

Find out whether your configurations run on OpenTofu before anyone commits to a move

Platform Engineering Team

A typical engagement for a platform team that provisions data and messaging infrastructure with Terraform: a trial of OpenTofu on one low-risk stack and a written state migration plan with a revert path for every stack.

Overview

A typical request: a platform team uses Terraform to build the nodes, volumes and networks under its database and messaging platforms. The BSL license change and IBM's acquisition of HashiCorp have put a Terraform-or-OpenTofu question on the roadmap, and nobody has the facts to answer it. AceMQ delivers a written decision with a trial behind it. It gives no license advice.

Challenge

The license question belongs to the customer's counsel, but the technical half is unanswered: whether every provider, backend and module runs on OpenTofu, what happens to state on the first apply, and how a stack is returned to Terraform if the trial fails. OpenTofu's migration guide names no Terraform versions and makes no formal statement on state compatibility, so the only reliable answer comes from the team's own stacks. Stacks that read each other through terraform_remote_state have to move in a planned order.

Environment

Several root modules on a mix of Terraform 1.x versions, remote state in an object-store backend, pipelines that run plan and apply, and providers for a cloud, Kubernetes and the database platforms.

Approach

AceMQ engineers inventory Terraform versions, providers and constraints, backends, pipelines and cross-stack state reads. They pick one low-risk stack, back up its state, and run tofu init and tofu plan in a scratch copy, looking for any plan output that differs from Terraform's. Only a plan that matches goes on to one apply and one small change. The report then sorts the remaining stacks by risk and writes the order of moves and the revert path for each.

Solution

  1. Inventory of Terraform versions, providers with their constraints, backends, pipelines and terraform_remote_state dependencies
  2. Backup procedure for each state backend, tested by restoring into a scratch location
  3. OpenTofu trial on one low-risk stack: init, plan, one apply, one small change, with every difference recorded
  4. Provider and pipeline changes found by the trial, listed per stack
  5. Order of moves for the remaining stacks, with interdependent stacks grouped
  6. Revert path written per stack, based on restoring the backups and re-running Terraform

Outcome

The engagement delivers a written inventory, the recorded results of the trial, a state migration runbook with a backup and a revert path for every stack, and a recommendation that the team's engineers and counsel can use together. The decision to move, stay or split the estate remains the customer's.

Technologies

TerraformOpenTofuKubernetesPostgreSQL

Need Terraform Architecture Guidance?

AceMQ's senior Terraform engineers have handled this exact type of engagement before. Whether you need architectural guidance, hands-on remediation, or an ongoing managed partnership, we're ready to help.