direnv et asdf les outils DevOps indispensables!
Nous travaillons tous sur de nombreux projets, chacun utilisant des versions
différentes des CLI Devops. Par exemple, vous travaillez pour un client qui
utilise Kubernetes
1.23 et Terraform
1.1.4. Ensuite, on vous met sur un nouveau
projet client qui lui utilise Kubernetes
1.25 et Terraform
1.3.6. Si vous ne
gérez pas vos versions correctement cela peut vite tourner au drame avec des
incompatibilités ou du code non pris en charge au moment de la livraison de
celui-ci.
Dans un précédent billet, je vous avais présenté asdf, que j’appelle le maxi-choco du Devops. Voyons comment l’utiliser conjointement avec direnv pour définir finement chaque version des outils Devops de chacun de vos projets.
Utilisation de direnv avec asdf
Pour rappel, asdf
permet d’installer et d’utiliser différentes versions d’un
même outil dans différents répertoires. direnv
permet de charger et de décharger
des variables d’environnements en fonction du dossier dans lequel vous vous
trouvez.
En combinant asdf
à direnv
on peut ainsi définir automatiquement les
variables d’environnement et les versions des outils d’un projet.
Installation d’asdf et de direnv
Je ne vais pas à nouveau documenter l’installation d’asdf
, je vous renvoie à mon
précédent billet.
Pour installer direnv
, nous allons utiliser asdf
bien sur.
Maintenant, ajoutez la ligne à votre fichier .bashrc
ou .zshrc
.
Rechargez votre shell.
Définir les versions de vos CLI pour votre projet
Ajoutons quelques plugins asdf
pour installer vos CLI :
Allez dans le dossier de votre projet et tapez ces commandes :
Définissons les versions des outils de ce répertoire en éditant un fichier .tool-versions
:
Rechargez votre shell et lançons l’installation :
Vous remarquez qu’il se charge de télécharger la version de kubectl
qui n’était
pas encore installé localement. Vérifions que notre variable d’environnement est
bien défini avec la valeur attendue :
Vous remarquez en changeant de dossier direnv
à décharger les variables
d’environnement et affichant celle définie, elle n’a plus de valeur.
Conclusion
J’espère que ce billet, vous aurez compris l’intérêt de coupler ces deux outils
que sont asdf
et direnv
!
Fini de recharger sans cesse vos variables et désinstaller et d’installer sans cesse les versions de vos outils.