Skip to content

Replace concept of "local cluster" with "just another provider"Β #96

@crenshaw-dev

Description

@crenshaw-dev

Instead of configuring a "local cluster," I'd like to just be able to use different providers in For and Watches so I have unlimited possible configurations.

mcbuilder.ControllerManagedBy(mcMgr).
	For(&v1alpha1.ResourceA{},
		mcbuilder.WithEngageWithProviderClusters(provider1)).
	Watches(&v1alpha1.ResourceB{},
		mcbuilder.WithEngageWithProviderClusters(provider2)).
	Complete(r)

Local cluster could be its own provider that could be composed with other providers via a multi-provider provider.

Advantages:

  • Allows more interesting topologies ("setup one watch for these 5 clusters and a different watch for these other 5")
  • Simplifies the UX, since everything is just a provider
  • Allows engaging/disengaging local clusters at runtime (we'd like to be able to hot-load these config changes in GitOps Promoter)
  • Avoids subtle config bugs
  • Avoids subtle differences in watch behavior

I don't know enough of the internals to understand the implications of having multiple providers at the Manager level. But I think this design would make the UX easier and the behavior more consistent.

Metadata

Metadata

Assignees

No one assigned

    Labels

    sig/multiclusterCategorizes an issue or PR as relevant to SIG Multicluster.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions