Introduction

Terragrunt est un outil qui permet de gérer les configurations Terraform de manière efficace. Les projets Terragrunt divisent la configuration en deux couches : un fichier hcl racine avec des paramètres partagés et des fichiers terragrunt.hcl par unité qui héritent de celui-ci.

Contexte Technique

La structure de dossiers pour un projet Terragrunt peut ressembler à ceci :
root.hcl
environments/
    ├── dev/
    │    ├── vpc/
    │    │    └── terragrunt.hcl
    │    ├── rds/
    │    │    └── terragrunt.hcl
    │    └── eks/
    │        └── terragrunt.hcl
    └── prod/
        ├── vpc/
        │    └── terragrunt.hcl
        ├── rds/
        │    └── terragrunt.hcl
        └── eks/
            └── terragrunt.hcl

Chaque fichier terragrunt.hcl est une unité Terraform distincte, avec son propre fichier d'état et sa propre commande d'application.

Analyse et Implications

La structure de dossiers et l'inclusion de fichiers dans Terragrunt permettent une gestion efficace des configurations Terraform. Les fichiers terragrunt.hcl peuvent hériter des paramètres du fichier hcl racine, ce qui réduit la duplication de code et facilite la maintenance.

Par exemple, le fichier terragrunt.hcl pour l'environnement de production peut inclure le fichier hcl racine de la manière suivante :
include "root" {
  path = find_in_parent_folders("root.hcl")
}

Cela permet de partager les paramètres entre les différents environnements et de les gérer de manière centralisée.

Perspective

Il est important de noter que la structure de dossiers et l'inclusion de fichiers dans Terragrunt peuvent varier en fonction des besoins spécifiques du projet. Il est donc important de bien comprendre les mécanismes et les limites de Terragrunt pour en tirer le meilleur parti.