Warning
multicluster-runtime is an experiment to add multi-cluster support on-top of controller-runtime. It is not generally consumable yet. Use at your own risk. Contributions though are highly welcome.
Related controller-runtime design: kubernetes-sigs/controller-runtime#2746
- no fork, no go mod replace: clean extension to upstream controller-runtime.
- universal: kind, cluster-api, Gardener (tbd), kcp (WIP), BYO. Cluster providers make the controller-runtime multi-cluster aware.
- seamless: add multi-cluster support without compromising on single-cluster. Run in either mode without code changes to the reconcilers.
Run the same reconciler against many clusters:
- The reconciler reads from cluster A and writes to cluster A.
- The reconciler reads from cluster B and writes to cluster B.
- The reconciler reads from cluster C and writes to cluster C.
This is the most simple case. Many existing reconcilers can easily adapted to work like this without major code changes. The resulting controllers will work in the multi-cluster setting, but also in the classical single-cluster setup, all in the same code base.
Run reconcilers that listen to some cluster(s) and operate other clusters.
- multicluster-runtime is a friendly extension of controller-runtime.
- multicluster-runtime loves ❤️ contributions.
- multicluster-runtime is following controller-runtime releases.
- multicluster-runtime is developed as if it was part of controller-runtime (quality standards, naming, style).
- multicluster-runtime could be a testbed for native controller-runtime functionality, eventually becoming superfluous.
- multicluster-runtime is provider agnostic, but may contain providers with its own go.mod files and dedicated OWNERS files.
