Introduction
Terragrunt est un outil qui permet d'exécuter des commandes Terraform de manière automatisée sur plusieurs unités dans un répertoire. L'option run-all permet de lancer une commande Terraform sur toutes les unités du répertoire courant, en respectant l'ordre des dépendances.
Contexte Technique
Le mécanisme de run-all permet de gérer les dépendances entre les unités. Par exemple, si l'on a une unité rds qui dépend de vpc, la commande terragrunt run-all apply appliquera d'abord vpc, puis rds et enfin eks en parallèle.
Il est possible de configurer les workflows de déploiement avec des outils tels que GitHub Actions. Par exemple, on peut créer un fichier .github/workflows/deploy.yml pour planifier et appliquer les modifications sur toutes les unités.
Analyse et Implications
L'utilisation de run-all permet de détecter les écarts de configuration sans appliquer les modifications. Il est possible de récupérer le code de sortie pour déterminer si des modifications ont été détectées ou si une erreur s'est produite.
Il est également possible de personnaliser le comportement de run-all en utilisant des options telles que --terragrunt-exclude-dir pour exclure certaines unités ou --terragrunt-include-dir pour cibler une unité spécifique et ses dépendances.
Perspective
Il est important de surveiller les limites de l'outil, notamment en ce qui concerne les limites d'API. Il est possible de limiter le parallélisme en utilisant l'option --terragrunt-parallelism pour éviter les problèmes de taux de requêtes.