feature: support instance-id label or similar on kargo resources #2003
Labels
area/api
area/charts
area/controller
area/crds
area/garbage-collector
help-wanted
Community help on this would be appreciated
kind/enhancement
priority/low
size/medium
From #1989
Adding the ability for control plane components to filter lists/watches on Project resources based on an "instance-id" filter (or something of the sort), would permit the multiple Kargo control planes to co-exist in a single cluster -- which is not otherwise possible due to Projects themselves being cluster-scoped.
Note: Kargo controllers already support something similiar to this (sharding) -- working with a subset of the resources from a Kargo control plane -- but with the possibility of multiple Kargo control planes situated on a single cluster, Kargo controllers will have to further narrow resources of interest to those with a specific "instance-id," which means we also need to ensure that instance-ids are correctly propagated to all resources (e.g. Freight or Promotions) that are created by any given control plane or controller. I would also propose that as with shards, instance-ids might reasonably be a "first-class" field in relevant specs and that this can be seamlessly synced with the appropriate label by a webhook. This creates a better UX while still allowing clients to list/watch efficiently using label selectors.
I am tentatively setting this as low-priority as we've not yet heard from many wishing to host multiple Kargo control planes in a single cluster. That can change if/when we hear of more demand for this. In the meantime, a contribution from the community may be the fastest path to achieving this. Please note, however, that this is not at all a trivial change.
The text was updated successfully, but these errors were encountered: