Le refactoring nous attend 🙂
Outre le travail sur HCL2 fusionnant HIL (le langage d’interpolation) et HCL (le langage de configuration) en un seul, l’arrivée de syntaxe plus commune comme le for et des slides dédiés son adorable chat, force est de constater que l’outil à acquis une certaine maturité.
Â
L’époque où il fallait user de “hack” et autre contournement plus ou moins élégant est maintenant majoritairement dernière nous.
Des modules isolés, mais plus longtemps !
Une chose à toutefois attiré mon attention, il s’agit d’un bref passage détaillant une fonctionnalité qui restait encore à implanter dans cette version : le support de la clause depends_on pour les modules.
Â
L’idée est bonne, et très attendu par une partie de la communauté d’utilisateur… mais pas encore terminé d’être implémenté car demandant une refonte du cœur de Terraform, et notamment de sa façon de générer le graphe décrivant les relations entre les providers, data et ressources que l’on a défini.
Finalement, il faut encore bidouiller un peu ?
Hé oui ce n’est pas encore si derrière nous que ça, mais bonne nouvelle ! Il est possible d’exprimer une certaine notion de dépendance explicite entre les modules.
Â
C’est l’heure de tester ! L’objectif est de faire écrire à Terraform “Bonjour Synograph France” dans un fichier avec le même module, en trois appels distincts, responsable donc d’un mot à la fois.
main.tf module print_string :
module "bonjour" {
source = "./print_string"
string = "Bonjour "
}
module "synograph" {
source = "./print_string"
string = "Synograph "
}
module "france" {
source = "./print_string"
string = "France"
}
main.tf principal :
resource "null_resource" "print_string" {
provisioner "local-exec" {
command = "printf ${var.string} >> /tmp/testTerraform"
}
}
variable "string" {
default = ""
}