Stop provider sending empty description fields in IAM conditions, to avoid permadiffs in plans #4723
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Partially fixes hashicorp/terraform-provider-google#8701
This PR changes the
expandIamCondition
function, which is used in all IAM_binding
and_member
resources to read parts of the resources state and convert it into acloudresourcemanager.Expr
variable.By removing
"Description"
from theForceSendFields
it stops those variables containing empty Description fields. In the case of thegoogle_iam_policy
data source, this means that all the zero valueddescription
fields are ignored when thepolicy_data
JSON is generated from the config input.This prevents the
policy_data
JSON containing empty description fields:If the JSON contains empty description fields there is a perma-diff that is only present in plans after a user makes a legitimate change to the config. Then, the plan contains lots of additional meaningless diffs to add empty descriptions:
If this PR is for Terraform, I acknowledge that I have:
make test
andmake lint
to ensure it passes unit and linter tests.Ensured that all new fields I added that can be set by a user appear in at least one example (for generated resources) or third_party test (for handwritten resources or update tests).N/ARelease Note Template for Downstream PRs (will be copied)
Derived from GoogleCloudPlatform/magic-modules#6473