-
Notifications
You must be signed in to change notification settings - Fork 258
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consistent Tags resource handling #63
Comments
Makes sense, yes. Came to a somewhat similar conclusion when I looked into the tagging across AWS services topic. |
@jaypipes, Make sense to use
|
We should make sure it's aligned with AWS Resource Groups. |
Issues go stale after 90d of inactivity. |
/lifecycle frozen |
any updates here ? |
Hi @haarchri! Yes, we're making progress in this effort. The first part of the progress is here: aws-controllers-k8s/runtime#91 We're slowly defining what next steps are for standardizing existing controller's Tag representations. |
Different AWS service API use different data types to represent pretty much the exact same thing: a set of Key:Value pairs ("tags") for the resource. For instance, some APIs use a
map[string]string
as the underlying data type in API payloads. Some use a[]struct{string, string}
. Some use map[string]struct{}`, etc etc.In addition to inconsistent data type representation of tags, the APIs also have inconsistent methods of adding, removing, replacing, and querying for tags on a resource. For example, some APIs have a
TagResource
andUntagResource
API call. Others have anAddTag
orRemoveTag
call. Some APIs allow tagging a resource at create time. Others only allow updating tags after creation.We want to make the experience of tagging and untagging resources consistent across all AWS APIs -- both from a data type representation as well as the behaviour of set/unset methods.
For all CRDs exposed by an ACK service controller, we want to have a consistent
Spec.Tags
field:There will, of course, be no
TagResource
orUntagResource
Kubernetes API call, since Kubernetes API is declarative and any changes to the desired state of a resource are simply handled bykubectl apply
'ing the new desired resource state (as the CR'sSpec
struct).So, the ACK service controller will need to have logic embedded in it that essentially instructs the service controller to handle tag information set/unset/add/remove logic in the way that the AWS service API for that controller expects. So, if the AWS service API has a
TagResources
API call and the only thing about a resource's desired state that has changed is the tags collection, then the service controller would call theTagResources
API call, etc.The text was updated successfully, but these errors were encountered: