Aller au contenu

L'extension Visual Studio Code Terraform

logo terraform

Comme pour Ansible, Terraform utilise un langage de type descriptif pour décrire le résultat attendu. HashiCorp plutôt que d’utiliser du YAML à préférer créer son propre langage de description, le HCL, venant bousculer nos habitudes. C’est vrai du YAML on en voit partout.

Heureusement HashiCorp fourni une extension Visual Code permettant d’écrire plus rapidement du code HCL : Le lien vers le market place

Fonctionnalité de l’extension Terraform

Bien sûr, nous allons tout de suite profitez la coloration syntaxique, mais ce n’est pas tout !

Autocomplétion

Cette extension prend en charge l’auto-complétion pour les providers, les ressources, les sources de données, les attributs, les modules, etc.

Le raccourci [CTRL]+[SPACE] permet de :

  • De créer directement tout type de bloc avec le choix des types en fonction des providers installés.
  • Faire apparaître les options possibles des ressources, des sources de données, etc.

Intellisense Terraform

Validation de la syntaxe

La syntaxe du code est validé directement à l’aide de la commande terraform validate. Pour rappel, cette commande ne se connecte pas aux services distants pour faire ses contrôles.

Comptage des références utilisées

En activant cette fonctionnalité Vs Code affiche le nombre de fois ou cette référence de bloc est utilisé dans le code. En cliquant sur ce compteur vous pourrez ensuite naviguer partout où elles sont utilisées.

terraform count ref

terraform count ref

Dans l’onglet explorateur de Visual Code, la structure du projet permet de naviguer plus rapidement dans le code.

terraform count ref

Formatage du code

Pour formater le code il suffit d’utiliser le raccourci [Maj]+[Alt]+[F]

Explorateur de module et providers

Terraform vscode explorateur

Configuration

La plupart des paramètres sont accessibles via l’interface de Visual Code mais certaines non :-(. Le mieux est d’aller sur la documentation de l’extension.

Achèvement du code

Cette extension possède des fonctionnalités expérimentales dont l’achèvement de code. Cette fonctionnalité permet quand on crée un bloc de préremplir celui-ci avec les paramètres obligatoires.