chocokoala
chocokoala

Reputation: 351

terraform flatten loop for 3 times

Has any one tried to get flatten for 3 loops working? I keep getting an error when i try the 3rd one: I am trying to loop through a list within a data resource - data.instances.sg.ids Variable example:

alarms = [
 {
 instances = data.instances.ids ## a list of instance ids
 config = [
  metric_name = "disk_free"
  threshold = "GreaterThan"
 ]
 }
]


locals {
  configs = flatten([
    for config_key, config_list in var.alarms : [
       for instance in config_list.instances : {
          for config in config_list.configs : {
        instance_id = instance
        metric_name  = config.name
        threshold   = config.threshold
      }
    }
    ]
  ])
}

how can i properly loop through and flatten this list with data instances list.

Thanks

Upvotes: 0

Views: 1371

Answers (1)

Marcin
Marcin

Reputation: 238209

Not sure what exactly you want to construct, but I think it should be:

locals {
  configs = flatten([
    for config_key, config_list in var.alarms : [
       for instance in config_list.instances : [
          for config in config_list.configs : 
           {
            instance_id = instance
            metric_name  = config.name
            threshold   = config.threshold
           }
       ]
    ]
  ])
}

Upvotes: 2

Related Questions