Skip to content

Conversation

@andrewstucki
Copy link
Contributor

This is a first pass at adding multicluster awareness into our lifecycle client. It adds a few different methods for initializing a multicluster-aware lifecycle client while keeping the existing controller code almost untouched:

  1. It adds a new multicluster-initialization function that allows for passing in a Manager from the multicluster-runtime project.
  2. It changes the pool tracker to return Statefulsets and Pods that are wrapped in a struct that also tracks which cluster the set/pod is associated with.
  3. It adds a new interface that a Cluster-type generic (i.e. what we normally implement the v1/v2 to specify a GetClusters function that returns a list of all of the clusters it should reconcile resources in.

My guess is that for any multicluster options we'll likely want to do something for the renderer generics similar to the existing ClusterWithPools but then do like a MulticlusterWithPools that also takes a list of all of the clusters we're watching resources on (or we can refactor things to leverage a static list on the client at initialization time).

So long as all tests pass and we're not too grossed out by this refactor, I'm fine with it... I'll add in tests for multicluster stuff as we actually start using it.

@andrewstucki andrewstucki force-pushed the as/multicluster-lifecycle-client branch from 5523104 to 039aff8 Compare December 17, 2025 20:09
@andrewstucki andrewstucki force-pushed the as/multicluster-lifecycle-client branch from c16f809 to 3c3bf66 Compare December 17, 2025 21:08
@andrewstucki andrewstucki force-pushed the as/multicluster-lifecycle-client branch from 7bf70a6 to 2b7db65 Compare December 18, 2025 01:52
@andrewstucki andrewstucki merged commit 623dcd0 into main Dec 18, 2025
10 checks passed
@andrewstucki andrewstucki deleted the as/multicluster-lifecycle-client branch December 18, 2025 18:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants