Ignored condition attribute in IAM tag bindings within the organisation/project modules (#3762)

* fix(modules/organization): conditions ignored in tags

* fix(modules/project): conditions ignored in tags

* fix(modules/project): Tags:1 test skipped due to bad markdown block

---------

Co-authored-by: Julio Castillo <jccb@google.com>
This commit is contained in:
jnahelou
2026-03-18 18:12:46 +01:00
committed by GitHub
parent 1a23853a2c
commit 78e00682f8
6 changed files with 95 additions and 7 deletions

View File

@@ -1084,8 +1084,6 @@ muteHighSeverity:
## Tags
```
Refer to the [Creating and managing tags](https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing) documentation for details on usage.
```hcl

View File

@@ -221,6 +221,14 @@ resource "google_tags_tag_key_iam_binding" "bindings" {
for v in local.tags[each.value.tag]["iam_bindings"][each.value.binding].members :
lookup(local.ctx.iam_principals, v, v)
]
dynamic "condition" {
for_each = local.tags[each.value.tag]["iam_bindings"][each.value.binding].condition == null ? [] : [""]
content {
expression = local.tags[each.value.tag]["iam_bindings"][each.value.binding].condition.expression
title = local.tags[each.value.tag]["iam_bindings"][each.value.binding].condition.title
description = local.tags[each.value.tag]["iam_bindings"][each.value.binding].condition.description
}
}
}
resource "google_tags_tag_key_iam_member" "bindings" {
@@ -236,6 +244,14 @@ resource "google_tags_tag_key_iam_member" "bindings" {
local.tags[each.value.tag]["iam_bindings_additive"][each.value.binding].member,
local.tags[each.value.tag]["iam_bindings_additive"][each.value.binding].member
)
dynamic "condition" {
for_each = local.tags[each.value.tag]["iam_bindings_additive"][each.value.binding].condition == null ? [] : [""]
content {
expression = local.tags[each.value.tag]["iam_bindings_additive"][each.value.binding].condition.expression
title = local.tags[each.value.tag]["iam_bindings_additive"][each.value.binding].condition.title
description = local.tags[each.value.tag]["iam_bindings_additive"][each.value.binding].condition.description
}
}
}
# values
@@ -279,6 +295,14 @@ resource "google_tags_tag_value_iam_binding" "bindings" {
for v in local.tags[each.value.tag]["values"][each.value.name]["iam_bindings"][each.value.binding].members :
lookup(local.ctx.iam_principals, v, v)
]
dynamic "condition" {
for_each = local.tags[each.value.tag]["values"][each.value.name]["iam_bindings"][each.value.binding].condition == null ? [] : [""]
content {
expression = local.tags[each.value.tag]["values"][each.value.name]["iam_bindings"][each.value.binding].condition.expression
title = local.tags[each.value.tag]["values"][each.value.name]["iam_bindings"][each.value.binding].condition.title
description = local.tags[each.value.tag]["values"][each.value.name]["iam_bindings"][each.value.binding].condition.description
}
}
}
resource "google_tags_tag_value_iam_member" "bindings" {
@@ -296,6 +320,14 @@ resource "google_tags_tag_value_iam_member" "bindings" {
local.tags[each.value.tag]["values"][each.value.name]["iam_bindings_additive"][each.value.binding].member,
local.tags[each.value.tag]["values"][each.value.name]["iam_bindings_additive"][each.value.binding].member
)
dynamic "condition" {
for_each = local.tags[each.value.tag]["values"][each.value.name]["iam_bindings_additive"][each.value.binding].condition == null ? [] : [""]
content {
expression = local.tags[each.value.tag]["values"][each.value.name]["iam_bindings_additive"][each.value.binding].condition.expression
title = local.tags[each.value.tag]["values"][each.value.name]["iam_bindings_additive"][each.value.binding].condition.title
description = local.tags[each.value.tag]["values"][each.value.name]["iam_bindings_additive"][each.value.binding].condition.description
}
}
}
# bindings