Tools Terraform indispensables
Terraform est un outil fabuleux permettant de faire du IaaS (Infrastructure As A Service).
Cependant, nous pouvons encore améliorer son expérience avec quelques outils :
tfswitchsélectionne automatiquement la bonne version de Terraformterraform-docsgénère la documentation d'un module, à agrémenter évidemmenttflintattrape ce queterraform validatelaisse passer : types d'instance qui n'existent pas, attributs dépréciés, conventions de nommagetfsecvérifie les bonnes pratiques de sécurité, avec possibilité de règles customcheckovest un équivalent générique, il scanne aussi les YAML K8S, les Dockerfile et les templates CloudFormationinfracostchiffre le coût mensuel d'unterraform planavant l'apply
Les commandes qui servent réellement :
# Se caler sur la version imposée par le bloc required_version
tfswitch
# Injecter la doc entre les marqueurs BEGIN_TF_DOCS / END_TF_DOCS du README
terraform-docs markdown table --output-file README.md .
tflint --init && tflint --recursive
tfsec .
checkov -d . --framework terraform
Chiffrer un plan avec Infracost
C'est le seul du lot qui répond à « combien ça coûte » plutôt qu'à « est-ce que c'est valide ». On part d'un plan au format JSON.
terraform plan -out tfplan.binary
terraform show -json tfplan.binary > plan.json
# Coût mensuel des ressources du plan
infracost breakdown --path plan.json
# Delta par rapport à l'état actuel : ce que la MR va coûter en plus ou en moins
infracost diff --path plan.json
Le diff est celui qui a de la valeur en revue : il sort le delta mensuel de la MR, pas la facture totale. Branché en commentaire automatique sur une MR, il évite le classique n1-standard-16 mergé par erreur à la place d'un n1-standard-4.
Les ressources à l'usage ne sont pas chiffrées
Infracost calcule le coût des ressources provisionnées. Tout ce qui se facture à la consommation (egress réseau, requêtes S3, scans BigQuery) sort à zéro sauf à fournir des estimations d'usage. Le chiffre est un plancher, pas la facture.
Voir aussi
- Cheatsheet Terraform — commandes essentielles à connaître
- Accélerer Terraform — parallélisme et optimisations de performance