Terraform
Conditions​
Mode "boolean"​
resource "aws_lb" "network-lb" {
count = var.lb_type == "network-lb" ? 1 : 0
name = "bitslovers-nlb"
[...]
}
tip
Si la variable "lb_type" est valorisée à "network-lb", alors le module ou la ressource est déployé
Lien : https://www.bitslovers.com/terraform-count/
Mode "string"​
bucket_name = var.test == true ? "dev" : "prod"
tip
Lire : Si la variable de test contient la valeur "true", alors bucket_name = dev , sinon prod
Lien : https://spacelift.io/blog/terraform-functions-expressions-loops
Utiliser une liste d'items dans un fichier texte​
Avec une liste d'item de type :
item1
item2
item3
[...]
Exemple lors la création d'objects à l'intérieur d'un bucket S3 de manière itérative (boucle "for_each")
resource "aws_s3_bucket_object" "chroot_folder_keep_file_input" {
for_each = toset(compact((split("\n", file("../../environments/${var.aws_env}/${var.env}/${var.domaine}/data/exstream_domains.conf") ))))
bucket = "mmb-${var.domaine}-edit-exstream-${var.env}"
key = "/${each.key}/in/.keep"
}
note
l'usage de la fonction split terraform permet le découpage selon un pattern, ici le retour chariot
la fonction compact permet de gérer les lignes vide et de les supprimer de la liste si besoin