fix(s3): dont set ExpiredObjectDeleteMarker in lifecycle policy if da… #2116
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.
This PR solved the issue with a parameter collision in S3 Bucket Lifecycle Configurations.
According to https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lifecycle-config-conceptual-ex7 you cannot specify both
Days
/Date
andExpiredObjectDeleteMarker
, resulting in a MalformedXML Error otherwise.Description of your changes
This change is adapted to the behaviour of terraform provider aws: https://github.com/hashicorp/terraform-provider-aws/blob/main/internal/service/s3/bucket_lifecycle_configuration.go#L664
When Date or Days is set, don't set ExpiredObjectDeleteMarker at all.
I have:
make reviewable test
to ensure this PR is ready for review.How has this code been tested
tested by @simwak