KubeStellar#
KubeStellar supports multi-cluster deployment of Kubernetes objects, controlled by a simple binding policy and deploying Kubernetes objects in their native format. It uses OCM as transport, with standard OCM agents (Klusterlet). We show examples of deploying workloads to multi-cluster with kubectl, helm and ArgoCD using a simple label-selectors-based binding policy.
Supported Features:#
- Multi-cluster Deployment: Kubernetes objects are deployed across multiple clusters, controlled by a straightforward binding policy.
- Pure-Kube User Experience: Deployment of non-wrapped objects is handled in a pure Kubernetes manner.
- Object Management via WDS: Creation, update, and deletion of objects in managed clusters are performed from WDS.
- OCM as Transport: The Open Cluster Management (OCM) is used as transport, with standard OCM agents (Klusterlet).
- Multi-WDS and single OCM Shard: Multiple WDSs and a single OCM shard are supported.
- Resiliency: All components are running in Kubernetes, ensuring continued operation even after restarts of any component.
- Re-evaluation of Objects: Existing objects are re-evaluated when a new binding policy is added or updated.
- Object Removal: Objects are removed from clusters when the binding policy that led to their deployment on those clusters is deleted or updated and the what or where no longer match.
- Dynamic Handling of APIs: Dynamically start/stop informers when adding/removing CRDs.
- Simplified setup: Just 3 commands to get a fully functional setup (
kflex init
,kflex create its
,kflex create wds
) - OpenShift Support: Same commands to set it up. All components have been tested in OpenShift, including OCM Klusterlet for the WECs.
- Singleton Status Addressed by the status controller in KubeStellar and the Status Add-On for OCM.
To be supported#
- Status summarization
- Customization
- OCM sharding
- Upsync
Latest release#
The first release using the new architecture is 0.20.0; it is feture-incomplete. The latest regular release is 0.22.0. 0.23.0-rc2 is a candidate for the next regular release. See also the release notes.
Architecture#
See Architecture.
User Guide#
See User Guide.
Packaging and Delivery#
Usage examples, and testing#
Examples shows a few examples of how to deploy and use a release of KubeStellar.
The test/e2e
directory holds end-to-end tests.
The contributor guide has a section on integration testing.
The contributor guide has a section on unit testing.
Using an existing hosting cluster#
See the instructions for using an existing hosting cluster for notes on that and coping with multi-machine scenarios.
Contributor Guide#
See the contributor guide, which is also just beginning to be written.