Aller au contenu principal

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 officielhttps://developer.hashicorp.com/terraform/cdktf
LicenceMPL 2.0
NationalitéÉtats-Unis (HashiCorp)
TypeInfrastructure as Code, Terraform via langages de programmation
DéploiementCLI, CI/CD, Terraform
DifficultéIntermédiaire à avancé
TechnologiesTypeScript, 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