DEV Community

Maxime Guilbert
Maxime Guilbert

Posted on

Comment améliorer son pipeline terragrunt ?

Travailler avec Terragrunt est vraiment cool car on peut effectuer des traitements sur tout un ensemble de blocs Terraform d'un seul coup! Mais quand on a beaucoup d'éléments sur lequels on doit faire un init, plan, apply... ça peut prendre beaucoup de temps et d'espace disque.


Cache

Imaginons que vous travaillez avec 50 déclarations terragrunt dans un projet. Par défaut, terraform va télécharger les providers utilisé par chacun car, par défaut, les providers sont stockés dans le dossier où se trouve la déclaration!

Donc si vous utilisez toujours les même providers, utilisez un cache!

D'après la documentation terraform, il suffit de :

  • déclarer une variable d'environnement

export TF_PLUGIN_CACHE_DIR="$HOME/.terraform.d/plugin-cache"

  • ou de l'ajouter dans la déclaration du CLI

plugin_cache_dir = "$HOME/.terraform.d/plugin-cache"
``

Avec ça, votre pipeline ira bien plus vite et vous libèrera de l'espace disque en retirant les téléchargements inutiles.


Parallélisme

Avec la solution précédente, votre pipeline va s'accélérer, mais peut être qu'il va avoir des soucis car il essaie de faire trop de choses en même temps et va essayer avec plusieurs exécutions de toucher à un même fichier. Générant des erreurs "text file busy" par exemple.

Dans ce cas (où si vous voulez optimisez vos configurations terragrunt), vous pouvez utiliser l'option suivante ( Terragrunt documentation):

`hcl
--terragrunt-parallelism 4
`

Ce paramètre va vous permettre de limiter le nombre d'exécution parallèles, donc va ralentir votre pipeline, mais vous évitera des soucis ou vous permettra de l'optimiser vis à vis de la machine que vous utilisez pour le faire rouler.


J'espère que ça vous aidera! 🍺

Top comments (0)