DEV Community

정주신
정주신

Posted on • Originally published at manoit.co.kr

HCP Terraform Free Tier Ending: OpenTofu Migration Guide

HCP Terraform Free Tier Ending: What Changes

HashiCorp announced the discontinuation of HCP Terraform Free tier effective March 31, 2026. Existing free users must transition to paid plans or find alternatives. This decision marks the second major shift following the 2023 BSL license transition, creating another inflection point in the Infrastructure as Code ecosystem.

Terraform vs OpenTofu: 2026 Status Comparison

As of March 2026, Terraform has reached version 1.14.x while OpenTofu stands at 1.9.x. The OpenTofu registry now mirrors over 2,000 providers, with 34% of infrastructure teams completing full migration from Terraform to OpenTofu, and 28% in partial migration.

Item Terraform 1.14 OpenTofu 1.9
License BSL (Business Source License) MPL 2.0 (Open Source)
Governance HashiCorp/IBM exclusive Linux Foundation community-driven
State Encryption Requires paid plan Native support (free)
Provider Count 3,000+ 2,000+ (mirrored)
AI Integration HCP Terraform AI Community-driven extensions
Cloud Service HCP Terraform (paid) Spacelift, env0, and others

OpenTofu Migration: Practical Steps

Step 1: Verify Compatibility

# Check current Terraform version
terraform version

# Install OpenTofu
brew install opentofu

# Or use official installation script
curl --proto '=https' --tlsv1.2 -fsSL https://get.opentofu.org/install-opentofu.sh | sh

# Verify installation
tofu version
Enter fullscreen mode Exit fullscreen mode

Step 2: Migrate State File

# Navigate to your Terraform project
cd /path/to/terraform-project

# Initialize OpenTofu (automatically recognizes existing state)
tofu init

# Validate state - run plan only without changes
tofu plan

# After verification, update lock file
tofu init -upgrade
Enter fullscreen mode Exit fullscreen mode

Tip: OpenTofu maintains full compatibility with Terraform state file format. Most projects complete migration with just tofu init.

Step 3: Transition CI/CD Pipeline

# GitHub Actions example: terraform → tofu transition
name: Infrastructure Deploy
on:
  push:
    branches: [main]
    paths: ['infra/**']

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: opentofu/setup-opentofu@v1
        with:
          tofu_version: 1.9.0
      - name: Init
        run: tofu init
        working-directory: infra/
      - name: Plan
        run: tofu plan -out=plan.tfplan
        working-directory: infra/
      - name: Apply
        if: github.ref == 'refs/heads/main'
        run: tofu apply plan.tfplan
        working-directory: infra/
Enter fullscreen mode Exit fullscreen mode

Migration Considerations

Important: Some features introduced after Terraform 1.6 are supported in OpenTofu but may have subtle behavioral differences. Always run tofu plan in staging first to ensure no drift. Common issues: First, provider version pinning via .terraform.lock.hcl requires tofu init -upgrade after switching. Second, Sentinel policies need migration to OPA. Third, Terraform Cloud-exclusive features can be replaced with Spacelift or env0.

FAQ

Q: Can I reuse existing Terraform modules?

Yes, most Terraform modules work unchanged. The OpenTofu registry mirrors Terraform providers.

Q: Can I continue using Terraform?

Of course. BSL license doesn't restrict direct use, but consider HCP Terraform costs.

Q: Is Terragrunt compatible?

Yes, Gruntwork announced official OpenTofu support. Set terraform_binary = "tofu" in terragrunt.hcl.


This article was originally published on ManoIT Tech Blog.

Top comments (0)