crossplane-contrib / provider-upjet-aws

AWS Provider for Crossplane.
https://marketplace.upbound.io/providers/upbound/provider-family-aws/
Apache License 2.0
146 stars 123 forks source link

Option to disable default tags #1141

Open mikael-lindstrom opened 9 months ago

mikael-lindstrom commented 9 months ago

What problem are you facing?

We are using a S3 compatible service called Scality Ring. It supports most S3 functionality, however it does not support tags which causes a problem with this provider since it sets three tags by default:

The tags seems to be set by the AddExternalTagsField function which adds a Tagger if the resource supports tags and there is no way to disable this. I have made a fork and built a custom version based on the v1.0.0 release where I simply commented out AddExternalTagsField from the withDefaultResourceOptions here. We are now using this version in our clusters which works great.

How could Official AWS Provider help solve your problem?

By providing an option to disable the "default" crossplane tags the provider would work with more S3 compatible services. I would be happy to help with implementing this but I'm not familiar enough with the codebase to know how this should be implemented.

ulucinar commented 8 months ago

Hi @mikael-lindstrom, So, my understanding is that you are using upbound/provider-aws against the Scality Ring service which is mostly compatible with the AWS API (at least for the resources you are interested in and some other provider-level APIs like STS, or maybe the service is built on top these). And you can use the Bucket.s3 managed resource against this service's "S3 buckets" if you disable the default tags at compile time. Is this true?

And the option you are suggesting is a new feature which you can use while provisioning the resource at runtime, to disable the default tagging.

What happens when you use the vanilla upbound/provider-aws provider against this service? Do you get some errors from the Scality Ring service complaining about not being able to set tags or something like an HTTP bad request (HTTP 400) error?

mikael-lindstrom commented 8 months ago

Hi @ulucinar,

That is correct, Scality supports most S3 functionality and if I disable the default tags everything works great. I have a fork we are using which only comments out the line I mentioned above here.

If I just use the AWS CLI to try an tag a bucket Scality returns 501 Not implemented

$ aws s3api put-bucket-tagging --bucket my-test-bucket --tagging 'TagSet=[{Key=test,Value=test}]'

An error occurred (NotImplemented) when calling the PutBucketTagging operation: A header you provided implies functionality that is not implemented.

If there was an option to disable the default tags we would be able to switch to the vanilla provider and not maintain our own fork. I know there are other S3-compatible services which does not support bucket tags so I think this would be useful feature.

github-actions[bot] commented 3 months ago

This provider repo does not have enough maintainers to address every issue. Since there has been no activity in the last 90 days it is now marked as stale. It will be closed in 14 days if no further activity occurs. Leaving a comment starting with /fresh will mark this issue as not stale.

github-actions[bot] commented 2 months ago

This issue is being closed since there has been no activity for 14 days since marking it as stale. If you still need help, feel free to comment or reopen the issue!