Formate les fichiers .tf et .tfvars selon les conventions officielles de style Terraform.

Intégrer terraform fmt -check dans la CI pour rejeter les PR mal formatées.


Options principales

OptionDéfautDescription
-recursivenonFormate aussi les sous-dossiers
-checknonVérifie sans modifier (code 0 = OK, code 3 = différences)
-diffnonAffiche les différences sans modifier
-write=true|falsetrueÉcrit les modifications dans les fichiers
-list=true|falsetrueListe les fichiers modifiés

Exemples

# Formater le dossier courant
terraform fmt
 
# Formater récursivement
terraform fmt -recursive
 
# Vérifier sans modifier (CI/CD)
terraform fmt -check -recursive
echo $?   # 0=OK, 3=besoin de formatage
 
# Voir les changements sans les appliquer
terraform fmt -diff
 
# Formater un fichier spécifique
terraform fmt main.tf
 
# Formater la sortie stdin
echo 'resource "aws_instance" "web" {ami="abc"}' | terraform fmt -

Intégration CI/CD

# .github/workflows/terraform.yml
- name: Check Terraform formatting
  run: terraform fmt -check -recursive
  # ← échoue si des fichiers ne sont pas formatés
# Pre-commit hook local
#!/bin/bash
terraform fmt -check -recursive
if [ $? -ne 0 ]; then
  echo "Erreur: des fichiers Terraform ne sont pas formatés."
  echo "Exécuter: terraform fmt -recursive"
  exit 1
fi

En relation avec