Skip to content

Instantly share code, notes, and snippets.

@identw
Created December 14, 2023 19:17
Show Gist options
  • Save identw/e5b924968a7ea084b73ca2b823909c83 to your computer and use it in GitHub Desktop.
Save identw/e5b924968a7ea084b73ca2b823909c83 to your computer and use it in GitHub Desktop.
variable "data" {
default = [
{
name = "vapp1"
metadata = {
a = 1
b = 2
}
virtuals = [
{ name = "v1" },
{ name = "v2" },
{ name = "v3" },
]
},
{
name = "vapp2"
metadata = {
a = 1
b = 2
}
virtuals = [
{ name = "v1" },
{ name = "v2" },
{ name = "v3" },
]
},
{
name = "vapp3"
metadata = {
a = 1
b = 2
}
virtuals = [
{ name = "v1" },
{ name = "v2" },
{ name = "v3" },
]
},
]
}
locals {
transformed_data = merge([
for app in var.data : {
for virtual in app.virtuals : "${replace(app.name, "-", "_")}/${virtual.name}" => {
name = "${replace(app.name, "-", "_")}-${virtual.name}"
metadata = app.metadata
}
}
]...)
}
output "transformed_data" {
value = local.transformed_data
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment