Skip to content

Commit 7e76384

Browse files
authored
Merge pull request #29 from embik/readme-improvements
📖 Minor adjustments to README, mention dynamic fleet
2 parents 0072291 + b264a41 commit 7e76384

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

README.md

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,18 @@
1010

1111
<img src="./contrib/logo/logo.png" width="300"/>
1212

13-
## Multi cluster controllers with controller-runtime
13+
## Multi-Cluster Controllers with controller-runtime
1414

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.
1518
- **no fork, no go mod replace**: clean extension to [upstream controller-runtime](https://github.com/kubernetes-sigs/controller-runtime).
1619
- **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
1823

19-
## Uniform Reconcilers
24+
### Uniform Reconcilers
2025

2126
Run the same reconciler against many clusters:
2227
- 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
2732

2833
![multi-cluster topologies uniform](https://github.com/user-attachments/assets/b91a3aac-6a1c-481e-8961-2f25605aeffe)
2934

30-
## Multi-Cluster-aware Reconcilers
35+
### Multi-Cluster-Aware Reconcilers
3136

3237
Run reconcilers that listen to some cluster(s) and operate other clusters.
3338
![multi-cluster topologies multi](https://github.com/user-attachments/assets/d7e37c39-66e3-4912-89ac-5441f0ad5669)
@@ -41,7 +46,7 @@ Run reconcilers that listen to some cluster(s) and operate other clusters.
4146
5. multicluster-runtime could be a testbed for native controller-runtime functionality, eventually becoming superfluous.
4247
6. multicluster-runtime is provider agnostic, but may contain providers with its own go.mod files and dedicated OWNERS files.
4348

44-
## How it looks?
49+
## Code Sample
4550

4651
```golang
4752
package main
@@ -107,9 +112,9 @@ func main() {
107112
}
108113
```
109114

110-
## FAQ
115+
## FAQs
111116

112-
### How is it different from https://github.com/admiraltyio/multicluster-controller ?
117+
### How is this different from https://github.com/admiraltyio/multicluster-controller ?
113118

114119
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.
115120

0 commit comments

Comments
 (0)