
Terraform ou OpenTofu : lequel choisir pour votre projet ? Pour la plupart des usages DevOps, les deux sont compatibles et produisent la même infrastructure. La vraie différence est la licence. Ce guide présente le contexte du fork, les différences concrètes, et une recommandation selon votre situation — entreprise, formation ou lab personnel.
Lignes directrices rapides :
- Lab personnel, formation : Terraform (plus répandu) ou OpenTofu (licence open source)
- Entreprise dépendante de l’écosystème HashiCorp (HCP, Vault, Consul) : Terraform
- Produit SaaS basé sur IaC : OpenTofu (licence MPL-2.0, pas de restriction commerciale)
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Le contexte du fork : pourquoi OpenTofu existe
- Quelle recommandation : Terraform ou OpenTofu selon votre contexte
- Migrer sans réécrire : remplacer
terraformpartofuen une commande
Contexte : le changement de licence
Section intitulée « Contexte : le changement de licence »HashiCorp a justifié ce changement par la protection de ses investissements commerciaux face aux providers cloud qui proposaient Terraform as a Service sans contribuer en retour.
La BSL restreint les usages considérés comme des “competitive offerings” :
- Proposer un produit ou service qui concurrence les offres commerciales HashiCorp (HCP Terraform, Terraform Cloud).
- Utiliser Terraform pour construire un service managé sans accord commercial.
HashiCorp précise qu’un usage interne au sein d’une organisation n’est pas considéré comme une offre concurrente.
Pour la majorité des usages DevOps (CI/CD, automation, labs), la BSL ne change rien en pratique. Mais pour les entreprises qui redistribuent des outils basés sur Terraform, c’est une contrainte réelle.
OpenTofu a été créé pour garantir une alternative sous licence MPL-2.0 (Mozilla Public License 2.0), reconnue open source par l’OSI.
Comparaison côte à côte
Section intitulée « Comparaison côte à côte »| Critère | Terraform | OpenTofu |
|---|---|---|
| Licence | BSL 1.1 (non reconnue open source par l’OSI) | MPL-2.0 (open source) |
| Mainteneur | HashiCorp, filiale d’IBM depuis février 2025 | Linux Foundation |
| Origine | Produit originel | Fork de la lignée open source 1.5.x, branche propre depuis 1.6 |
| Compatibilité HCL | Référence | Très élevée (drop-in replacement visé) |
| State format | Référence | Compatible |
| Providers | Registry HashiCorp | Compatibles ; registre miroir registry.opentofu.org |
| CLI | terraform | tofu |
| Fonctions de provider | Depuis 1.8 | Depuis 1.7 |
| Tests natifs | terraform test | tofu test |
| Prix | Gratuit (CLI) | Gratuit |
Compatibilité : migrer sans réécrire
Section intitulée « Compatibilité : migrer sans réécrire »Pour la plupart des projets, passer de Terraform à OpenTofu se résume à :
# Remplacer terraform par tofu dans tous les appelstofu inittofu plantofu applyLes fichiers .tf ne changent généralement pas. Le format de state est
compatible. Les providers usuels du Terraform Registry fonctionnent avec
OpenTofu. Consultez le guide de migration
pour les cas particuliers.
Les points de divergence
Section intitulée « Les points de divergence »Les deux projets commencent à diverger sur les fonctionnalités avancées :
Chiffrement du state (OpenTofu 1.7)
Section intitulée « Chiffrement du state (OpenTofu 1.7) »OpenTofu a ajouté une fonctionnalité native de chiffrement du state et des plans. Terraform ne dispose pas de cette fonctionnalité intégrée.
# opentofu uniquementterraform { encryption { key_provider "pbkdf2" "my_passphrase" { passphrase = var.state_passphrase } method "aes_gcm" "my_method" { keys = key_provider.pbkdf2.my_passphrase } state { method = method.aes_gcm.my_method } }}Fonctions définies dans les providers (OpenTofu 1.7, Terraform 1.8)
Section intitulée « Fonctions définies dans les providers (OpenTofu 1.7, Terraform 1.8) »OpenTofu a introduit cette fonctionnalité avant Terraform. Les deux l’ont désormais, avec une syntaxe similaire.
Tests : légères différences
Section intitulée « Tests : légères différences »terraform test et tofu test sont fonctionnellement équivalents pour les
cas courants, mais les versions évoluent indépendamment.
Comment choisir ?
Section intitulée « Comment choisir ? »Choisir Terraform si :
- Votre organisation dépend de l’écosystème commercial HashiCorp (HCP Terraform, Vault, Consul, Nomad).
- Vous avez besoin du support officiel HashiCorp / IBM.
- Votre équipe travaille déjà avec les produits HashiCorp.
Choisir OpenTofu si :
- La licence open source (MPL-2.0, reconnue par l’OSI) est un critère important.
- Vous ne dépendez pas des produits commerciaux HashiCorp.
- Vous voulez le chiffrement natif du state.
- Votre organisation préfère une gouvernance communautaire (Linux Foundation).
Les deux fonctionnent si :
- Vous utilisez libvirt, Kubernetes, AWS, GCP, Azure en mode communautaire.
- Vous ne proposez pas Terraform as a Service.
- Vous voulez juste automatiser votre infrastructure.
- Vérifiez la compatibilité sur votre version réelle avant de basculer.
Sur ce site
Section intitulée « Sur ce site »À retenir
Section intitulée « À retenir »- La BSL 1.1 de Terraform restreint les “competitive offerings” — pour l’usage interne et la plupart des entreprises, rien ne change.
- OpenTofu est un fork compatible, maintenu par la Linux Foundation sous licence MPL-2.0 (open source, reconnue par l’OSI).
- Les fichiers
.tf, le format de state et les providers usuels sont compatibles entre les deux outils. - OpenTofu a quelques fonctionnalités avancées (chiffrement natif du state) que Terraform n’a pas encore.
- Le choix dépend surtout de la licence et de la gouvernance souhaitées, pas des fonctionnalités quotidiennes.