CDK for Terraform (CDKTF)
Overview
CDK for Terraform (CDKTF) est un framework qui permet de définir l'infrastructure Terraform en utilisant des langages de programmation familiers (TypeScript, Python, Java, C#, Go) au lieu du HCL natif. Développé par HashiCorp, CDKTF combine la flexibilité des langages de programmation avec la puissance et l'écosystème de Terraform.
CDKTF génère des fichiers de configuration Terraform (HCL) à partir du code écrit dans ton langage préféré, permettant de bénéficier des abstractions, de la réutilisabilité et des outils de développement standard tout en utilisant l'écosystème Terraform (providers, state management, etc.).
Informations essentielles
| Propriété | Valeur |
|---|---|
| Site officiel | https://developer.hashicorp.com/terraform/cdktf |
| Licence | MPL 2.0 |
| Nationalité | États-Unis (HashiCorp) |
| Type | Infrastructure as Code, Terraform via langages de programmation |
| Déploiement | CLI, CI/CD, Terraform |
| Difficulté | Intermédiaire à avancé |
| Technologies | TypeScript, Python, Java, C#, Go, Terraform, HCL |
TL;DR
CDKTF est idéal si tu veux utiliser Terraform avec des langages de programmation plutôt que HCL, tout en conservant l'écosystème Terraform (providers, state, modules). Il convient aux équipes qui préfèrent TypeScript, Python ou d'autres langages pour définir l'infrastructure. L'outil offre la flexibilité du code avec la maturité de Terraform. En contrepartie, la courbe d'apprentissage peut être plus élevée que le HCL pur, et l'écosystème est moins mature que Terraform classique ou Pulumi. La génération de HCL peut parfois être verbeuse.
Compatibilité et intégrations
- Cloud providers : tous les providers Terraform disponibles
- Langages supportés : TypeScript, JavaScript, Python, Java, C#, Go
- Intégration : Terraform CLI, Terraform Cloud, CI/CD pipelines
- Écosystème : accès à tous les providers Terraform existants
- IDE : support avec autocomplétion dans les IDE standard
Avantages
- Langages de programmation familiers
- Accès à l'écosystème complet de Terraform (providers, modules)
- Réutilisabilité et abstractions via code
- Tests unitaires possibles
- IDE support (autocomplétion, refactoring)
- Compatibilité avec les workflows Terraform existants
Limites
- Courbe d'apprentissage pour maîtriser CDKTF et Terraform
- Écosystème moins mature que Terraform HCL pur
- Génération de HCL peut être verbeuse pour certains cas
- Dépendance à la génération de code pour les providers
- Moins de documentation et d'exemples que Terraform classique
Ressources
- Site officiel : https://developer.hashicorp.com/terraform/cdktf
- Documentation : https://developer.hashicorp.com/terraform/cdktf/docs
- Repository GitHub : https://github.com/hashicorp/terraform-cdk
- Exemples : https://github.com/hashicorp/terraform-cdk/tree/main/examples