infrastructure as code

Terraform code your team can change on a Friday without holding its breath.

We write and refactor Terraform for AWS, Azure, Google Cloud and SaaS providers. We also sort out state and workspaces, set up HCP Terraform or another runner, and keep versions current.

platform dossierTerraformInfrastructure as code
Vendor
IBM (HashiCorp acquisition closed 27 Feb 2025)
Current release
Terraform 1.16.6 (14 Oct 2026)
Next release
1.17.0 at release candidate, rc2 on 14 Oct 2026
License
Business Source License since Aug 2023
release watch
  • Terraform 1.1626 Aug 2026
  • HCP Terraform legacy Free plan retired31 Mar 2026
connects with
in short·15-second read

Cohash designs and maintains Terraform for cloud and platform teams.

We build reusable modules, split and repair state, set up pipelines with policy checks, and manage providers for AWS, Azure, Google Cloud, Snowflake and Databricks. Terraform is now an IBM product under the Business Source License, so we also help teams weigh HCP Terraform, Terraform Enterprise and the open-source OpenTofu fork for their situation.

you probably need this if
  • One state file holds hundreds of resources. Every plan takes several minutes.
  • Engineers run terraform apply from laptops and drift turns up in every account.
  • Cloud credentials for pipelines are long-lived keys stored as CI secrets.
terms on this page DriftdefinitionWhen a live configuration slowly wanders away from what you intended, often through emergency edits nobody tracked.explained in a field note →
Ask an engineer facts checked 2026-10-20 · 6 sources
how it runs
  1. 01Code and state review
  2. 02State split and drift repair
  3. 03Pipelines, policy and credentials
  4. 04Upgrades in lower environments
  5. 05Platform decision and handover
you keep
  • Module registry with versioned modules and usage examples
  • State split plan with moved, removed and import blocks. Applied without rebuilds.
  • Pipeline templates that plan on pull request and apply on merge
+ 3 more documents
who does it
Terraform platform engineerTerraform module developerHCP Terraform and Terraform Enterprise admin Terraform Associate (004) Terraform Infrastructure Engineer Professional (002)
platforms
terraform · release timeline
  1. 27 Feb 2025 IBM completes HashiCorp acquisition Terraform, Vault and the rest of the HashiCorp portfolio became part of IBM. source ↗
  2. 31 Mar 2026 HCP Terraform legacy Free plan retired Reached end of life on 31 March 2026. Remaining organizations moved to the usage-based Free tier. source ↗
  3. 26 Aug 2026 Terraform 1.16 Released 26 August 2026. Import blocks now work inside modules, terraform_data has a store block for ephemeral and sensitive values, and action triggers get on_failure modes. 1.16.6 is the latest patch as of 14 October 2026. source ↗
  4. today · Oct 22, 2026
the story · terraform estate

From the first call to a setup your own team can run.

Here's what usually prompts a call about your Terraform estate, what we do about it and in which order, and where you end up.

  1. chapter 01 · where it hurts

    Why teams reach out

    • One state file holds hundreds of resources. Every plan takes several minutes.
    • Engineers run terraform apply from laptops and drift turns up in every account.
    • Cloud credentials for pipelines are long-lived keys stored as CI secrets.
  2. chapter 02 · what we change

    How we solve it

    • Module design and refactoring
    • State and workspace clean-up
    • Pipelines and policy checks
    • Version and provider upgrades
    • Platform choice and migration
  3. chapter 03 · how it runs

    Our approach

    • Code and state review
    • State split and drift repair
    • Pipelines, policy and credentials
    • Upgrades in lower environments
    • Platform decision and handover
  4. chapter 04 · where you end up

    What changes

    • Each team owns a small state, and plans come back fast.
    • Someone tested it, so the steering group knows what OpenTofu or a commercial agreement would mean for the code.
    • Module registry with versioned modules and usage examples
    • State split plan with moved, removed and import blocks. Applied without rebuilds.
what we do

Our Terraform work

5 kinds of Terraform work, each run by engineers who have done it on live tenants.

  1. Modules with clear inputs and outputs, versioned in a registry, and existing copy-pasted code refactored with moved and import blocks instead of rebuilds.

  2. Oversized state files split, drift found and reconciled, and remote state locked down so only pipelines can write to it.

  3. Plan on pull request, apply on merge, with policy as code to block public buckets, missing tags or overly broad IAM before they reach a cloud account.

  4. Terraform and provider upgrades tested in lower environments, with deprecation warnings fixed before they turn into errors.

  5. A comparison of HCP Terraform, Terraform Enterprise, OpenTofu and other runners against your license review, budget and features in use, then a migration plan if you change.

capability 01 / 05in production

Module design and refactoring

Modules with clear inputs and outputs, versioned in a registry, and existing copy-pasted code refactored with moved and import blocks instead of rebuilds.

capability 02 / 05in production

State and workspace clean-up

Oversized state files split, drift found and reconciled, and remote state locked down so only pipelines can write to it.

capability 03 / 05in production

Pipelines and policy checks

Plan on pull request, apply on merge, with policy as code to block public buckets, missing tags or overly broad IAM before they reach a cloud account.

capability 04 / 05in production

Version and provider upgrades

Terraform and provider upgrades tested in lower environments, with deprecation warnings fixed before they turn into errors.

capability 05 / 05in production

Platform choice and migration

A comparison of HCP Terraform, Terraform Enterprise, OpenTofu and other runners against your license review, budget and features in use, then a migration plan if you change.

typical situations

Terraform situations we walk into

We pieced these together from Terraform situations that come up a lot. They're patterns. You won't find a specific client in them.

case file 01

One state file holding an entire AWS account

composite · not a client story
  1. Beforethe situation

    A single Terraform state holds networking, IAM, databases and 40 application stacks for one AWS account. Plans take twenty minutes, a typo in one app can touch the VPC, and engineers run apply from laptops.

  2. What we dothe work

    We split state by layer and team with moved and removed blocks, plus import where needed, checking that each plan shows no destroys. Remote state is locked to pipeline roles, and plan on pull request with apply on merge replaces laptop applies.

  3. Afterwhere you end up

    Each team owns a small state, and plans come back fast. An app repo can't change the VPC by accident any more, and every apply has a reviewed plan behind it.

case file 02

Legal flagged the BSL, and the platform team owes an answer

composite · not a client story
  1. Beforethe situation

    Legal flagged the Business Source License during a product review, because the company ships customers a developer platform that wraps Terraform. The platform team has to explain the options before the next steering meeting.

  2. What we dothe work

    We list the Terraform features, providers and HCP Terraform integrations the platform depends on, test the code under OpenTofu in a branch, and write up what changes under each option. Legal gets the technical facts, and the license reading stays with them.

  3. Afterwhere you end up

    Someone tested it, so the steering group knows what OpenTofu or a commercial agreement would mean for the code. Legal gets the facts it asked for.

case studies

Terraform case studies

All case studies
modernization Cloud and infrastructure

Hand-built cloud to Terraform or OpenTofu

Bringing console-built AWS, Azure and Google Cloud resources under Terraform or OpenTofu with import blocks, clean state and pipelines, without rebuilding.

read the case study
implementation Cloud and infrastructure

Cloud landing zone and account vending

AWS Control Tower with Account Factory for Terraform, or Azure landing zones on Azure Verified Modules, built as code with guardrails, logging and vending.

read the case study
upgrade Data and analytics

Apache Airflow 2 to Airflow 3

Upgrading self-managed Apache Airflow 2, now past end of life, to Airflow 3, and fixing removed features, auth and scheduling changes before DAGs move.

read the case study
migration Cloud and infrastructure

Data center exit to AWS or Azure

Leaving a colocation or owned data center for AWS or Azure in planned waves, with dependencies mapped, licences checked and every server given an owner.

read the case study
modernization Privileged access

Secrets in code, pipelines and config files to HashiCorp Vault

We track down passwords, API keys and tokens in repositories, CI variables and config files and move them into HashiCorp Vault, with short-lived credentials.

read the case study
migration Data and analytics

Databricks Hive metastore to Unity Catalog

We move Databricks workspaces off the Hive metastore, DBFS mounts and table ACLs and onto Unity Catalog, ahead of new workspaces dropping legacy features.

read the case study
approach

How a Terraform engagement runs

We don't start a step until the last one has produced something you can check.

  1. step 01

    Code and state review

    We go through modules, root configurations and state layout, check provider versions and the pipeline setup, and rank what we find by risk.

  2. step 02

    State split and drift repair

    We split large state files with moved and import blocks, so nothing gets rebuilt. Then drift is reconciled until plans show only intended changes.

  3. step 03

    Pipelines, policy and credentials

    Plans run on pull requests, applies run on merge. In between there are policy checks, and the credentials are short-lived, from Vault or cloud workload identity.

  4. step 04

    Upgrades in lower environments

    Terraform and provider upgrades go to dev and test first. We fix the deprecation warnings and compare plans before anything reaches production.

  5. step 05

    Platform decision and handover

    If you're weighing HCP Terraform, Terraform Enterprise or OpenTofu, the useful comparison is against the features you actually use. We do that comparison, then leave module standards and runbooks with your team.

architecture

How Terraform changes travel from Git to your cloud and SaaS accounts

Changes to versioned modules and environment configs start in Git. HCP Terraform or another runner plans each pull request and checks it against policy, then applies on merge with short-lived credentials and locked remote state.

How Terraform changes travel from Git to your cloud and SaaS accounts Changes to versioned modules and environment configs start in Git. HCP Terraform or another runner plans each pull request and checks it against policy, then applies on merge with short-lived credentials and locked remote state. 01 · CODE 02 · RUNS 03 · STATE AND SECRETS 04 · TARGET ACCOUNTS module source plan on pull request plan · apply read · lock · write short-lived creds apply apply apply apply Module registry versioned modules Git repository root configs perenvironment HCP Terraform plan · policy check· apply OpenTofu or CI runner alternative run path Remote state locked · encrypted HashiCorp Vault dynamic cloudcredentials Cloud accounts AWS · Azure · Google Cloud Snowflake roles · warehouses Databricks workspaces · UnityCatalog Okta groups · appassignments
Read the diagram as text
  1. Module registry → Git repository: module source
  2. Git repository → HCP Terraform: plan on pull request
  3. Git repository → OpenTofu or CI runner: plan · apply
  4. HCP Terraform → Remote state: read · lock · write
  5. HashiCorp Vault → HCP Terraform: short-lived creds
  6. HCP Terraform → Cloud accounts: apply
  7. HCP Terraform → Snowflake: apply
  8. HCP Terraform → Databricks: apply
  9. HCP Terraform → Okta: apply
use cases

Typical Terraform projects

The work teams usually bring us, and the platforms Terraform has to talk to while we do it.

  1. TER-01 A single state file holds hundreds of resources and every plan takes minutes common request
  2. TER-02 Engineers apply changes from laptops and drift is everywhere common request
  3. TER-03 Your legal team is asking about the BSL and whether OpenTofu is an option common request
  4. TER-04 You're several Terraform or provider versions behind and afraid to upgrade common request
  5. TER-05 Each team writes its own VPC or network module common request
you keep

What a Terraform engagement leaves behind

These are working documents, written against your configuration, so your team can run them without us.

  • code01

    Module registry with versioned modules and usage examples

    yours to keep
  • plan02

    State split plan with moved, removed and import blocks. Applied without rebuilds.

    yours to keep
  • plan03

    Pipeline templates that plan on pull request and apply on merge

    yours to keep
  • tests04

    Policy-as-code rule set with test cases for each rule

    yours to keep
  • document05

    Provider upgrade log with deprecation fixes per environment

    yours to keep
  • code06

    Platform comparison of HCP Terraform, Terraform Enterprise and OpenTofu

    yours to keep
talent and delivery · terraform

Certified engineers, wherever you need them.

Some clients want a project team, some want a couple of engineers on theirs. Either works. Onsite, nearshore or offshore, with handovers across time zones that keep things moving.

Onsite

Engineers at your sites in the US

Nearshore

Overlapping hours with US teams

Offshore

Overnight progress on your backlog

All time zones

Coverage handed over across time zones

24-hour coverage · US Central time
OnsiteUS business hours
Nearshoreoverlapping US hours
Offshoreovernight progress
Combinedhandover, not hand-off
roles we staff
  • Terraform platform engineer
  • Terraform module developer
  • HCP Terraform and Terraform Enterprise admin
  • Cloud infrastructure engineer (AWS, Azure, GCP)
  • Policy as code engineer (Sentinel, OPA)
  • Infrastructure as code migration engineer
01Can we still use Terraform for free under the BSL?

For most internal use, yes. In August 2023 HashiCorp moved Terraform to the Business Source License, which restricts offering it in a product that competes with HashiCorp. Whether that affects you depends on what you build and sell. Have your legal team read the license, and we'll explain the technical options.

02Should we switch to OpenTofu?

Worth a look if license terms or vendor dependence matter. OpenTofu is an open-source fork of Terraform, stewarded by the Linux Foundation. Most configurations move with small changes. The newer Terraform-only features and HCP Terraform integrations don't. We check your code and tooling before recommending either.

03How hard is it to upgrade Terraform versions?

Within 1.x it is usually low risk. Providers cause more trouble than the core binary. We upgrade in a lower environment, fix deprecation warnings, and compare plans before touching production.

04Do you also manage HashiCorp Vault?

Yes. We often set up Vault and its Terraform provider together, so secrets engines, auth methods and policies live in code.

05Can you take over Terraform code someone else wrote?

Yes. We review module structure, state layout, provider versions and pipelines, run plans to find drift, and agree a short list of fixes with you before adding new infrastructure.

services

Related services

Projects on Terraform usually end up touching one of these, so they're worth a look.

sources 6 sources linked last checked 2026-10-20 content fingerprint 9da288b3
  1. 01HashiCorp: Terraform v1.16.0 release notesgithub.com ↗
  2. 02HashiCorp: Terraform releasesgithub.com ↗
  3. 03HashiCorp support: end of life for HCP Terraform legacy Free plansupport.hashicorp.com ↗
  4. 04IBM: IBM completes acquisition of HashiCorp (27 Feb 2025)newsroom.ibm.com ↗
  5. 05HashiCorp: adopting the Business Source License (Aug 2023)hashicorp.com ↗
  6. 06OpenTofu project siteopentofu.org ↗
Reviewed by the Cohash team Terraform is a trademark of its owner, used here to identify the platform. how we handle facts and data →
next step

Tell us what you're running. We'll tell you what we'd do first.

A 30-minute working session with a senior engineer. No slides.

useful to bring
  • The platform and the version you're on
  • Where you need to get to, and by when
  • What's custom: rules, plugins, integrations
  • Any audit finding or deadline driving it