resource/aws_kms_key: Prevent eventual consistency related errors on creation #12738
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.
Community Note
Reference: #9953
Closes #11781
Reference: #12427 (comment)
Release note for CHANGELOG:
This refactors the resource logic to prevent
Update
afterCreate
type logic errors with duplicate API calls (potential error points for eventual consistency):description
on creation previously was done once during theCreateKey
call and again via a separateUpdateKeyDescription
callpolicy
on creation previously was done once during theCreateKey
call and again via a separatePutKeyPolicy
calltags
on creation previously was done once during theCreateKey
call and again via a separateTagResource
callThis also adds eventual consistency retries for reading tags on resource creation and removes the resource
Exists
function, which can be another source of issues and required for the upcoming Terraform Plugin SDK v2.Previously from operator error reports:
Output from acceptance testing: