You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+12-7Lines changed: 12 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,13 +10,18 @@
10
10
11
11
<imgsrc="./contrib/logo/logo.png"width="300"/>
12
12
13
-
## Multi cluster controllers with controller-runtime
13
+
## Multi-Cluster Controllers with controller-runtime
14
14
15
+
multicluster-runtime is a Go library to write Kubernetes controllers that reconcile across a dynamic fleet of Kubernetes (or Kubernetes-like) clusters.
16
+
17
+
-**dynamic fleet orchestration**: So-called providers interact with multi-cluster solutions like Cluster API and dynamically start and stop reconciliation against clusters discovered through the provider.
15
18
-**no fork, no go mod replace**: clean extension to [upstream controller-runtime](https://github.com/kubernetes-sigs/controller-runtime).
16
19
-**universal**: kind, [cluster-api](https://github.com/kubernetes-sigs/cluster-api), [Gardener](https://gardener.cloud/) (tbd), kcp (WIP), BYO. Cluster providers make the controller-runtime multi-cluster aware.
17
-
-**seamless**: add multi-cluster support without compromising on single-cluster. Run in either mode without code changes to the reconcilers.
20
+
-**seamless**: add multi-cluster support without compromising on single-cluster. Run in either mode without code changes to the reconcilers.
21
+
22
+
## Patterns Possible with multicluster-runtime
18
23
19
-
## Uniform Reconcilers
24
+
###Uniform Reconcilers
20
25
21
26
Run the same reconciler against many clusters:
22
27
- The reconciler reads from cluster A and writes to cluster A.
@@ -27,7 +32,7 @@ This is the most simple case. Many existing reconcilers can easily adapted to wo
@@ -41,7 +46,7 @@ Run reconcilers that listen to some cluster(s) and operate other clusters.
41
46
5. multicluster-runtime could be a testbed for native controller-runtime functionality, eventually becoming superfluous.
42
47
6. multicluster-runtime is provider agnostic, but may contain providers with its own go.mod files and dedicated OWNERS files.
43
48
44
-
## How it looks?
49
+
## Code Sample
45
50
46
51
```golang
47
52
package main
@@ -107,9 +112,9 @@ func main() {
107
112
}
108
113
```
109
114
110
-
## FAQ
115
+
## FAQs
111
116
112
-
### How is it different from https://github.com/admiraltyio/multicluster-controller ?
117
+
### How is this different from https://github.com/admiraltyio/multicluster-controller ?
113
118
114
119
In contrast to https://github.com/admiraltyio/multicluster-controller, multicluster-runtime keeps building on controller-runtime for most of its constructs. It is not replacing the manager, the controller or the cluster. To a large degree, this became possible through the extensive use of generics in controller-runtime. Most multicluster-runtime constructs are just type instantiations with a little glue.
0 commit comments