Home > Blockchain >  How to use tags from yaml file - terraform
How to use tags from yaml file - terraform

Time:05-19

I am trying to extract certain tags from a YAML file with Terraform, but i just don't know how. Yaml file looks like this:

--- 
name: subscriptionName 
emailContact: [email protected] 
tags:
  - key: "tagKey1"
    value: "tagValue1"
  - key: "tagKey2"
    value: "tagValue2"
  - key: "tagKey3"
    value: "tagValue3"
  - key: "tagKey4"
    value: "tagValue4"

What i am interested in is getting 2 (let's say key1 and key3) key-value pairs as tags and tag resouces. I know that 'locals' plays a role here, but i am kinda new to terraform and cannot get any resource tagged. The resources are Azure (if it matters).

The resource i am trying to tag is:

resource "azurerm_network_security_group" "nsg" {
name                = "randomname"
location = "westeurope"
resource_group_name = "random_rg"
tags { }
}

CodePudding user response:

If you really want two random tags, you can use random_shuffle:

locals {
    loaded_yaml = yamldecode(file("./your_file.yaml"))
}

resource "random_shuffle" "indices" {
  input        = range(0, length(local.loaded_yaml.tags))
  result_count = 2
  seed = timestamp()
}

output "random_tags" {
    value = [for idx in random_shuffle.indices.result: 
             local.loaded_yaml.tags[idx]]
}

update For example:

    tags = {
            (local.loaded_yaml.tags[0].key) = local.loaded_yaml.tags[0].value
            (local.loaded_yaml.tags[3].key) = local.loaded_yaml.tags[3].value
        }
  • Related