Skip to content

Terraform

Conditions

Mode "boolean"

resource "aws_lb" "network-lb" {
count = var.lb_type == "network-lb" ? 1 : 0
name = "bitslovers-nlb"
[...]
}

Info

Lire : 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"

Info

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"
}

Info

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