我有类似的东西
locals {
roles = [
{
role = "roles/admin"
members = ["user:user@example.com"]
},
{
role = "roles/viewer"
members = ["user:user2@example.com"]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我希望我的模块能够导出自己的角色列表,例如
roles = [
{
role = "roles/viewer"
members = ["user:newperson@example.com"]
}
]
Run Code Online (Sandbox Code Playgroud)
然后能够将这些东西合并在一起得到
locals {
roles = [
{
role = "roles/admin"
members = ["user:user@example.com"]
},
{
role = "roles/viewer"
members = ["user:user2@example.com", "user:newperson@example.com"]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我知道如果我将所有内容存储为地图,我可以合并地图,只要没有重复的键,它就可以正常工作。但在这种情况下,我明确希望能够拥有重复的键,以便一个模块不需要关心任何其他模块。
更新我可以通过这样做来实现这一点:
roles = distinct(flatten([
for rm in local.role_maps : [
for role, members in rm : …
Run Code Online (Sandbox Code Playgroud) terraform ×1