Cluster API Resource Provider is hackathon project that demonstrates how a distributed system for managing kubernetes clusters could work. CARP borrows distributed system design concepts from kubernetes, but instead of a cluster being comprised of virtual machines, a carp cluster is made up of kubernetes clusters.
- Simple kubernetes API for managing kubernetes clusters
- Scalable
- flux
- carp operator (control plane mode)
- capi operator
- capz operator
The Managed Cluster API defines the properties of a cluster that will be managed by carp.
- Cluster Spec
- kubernetes version
- Node Count
- Phase
- Errors
- Id (arm url style)
- Schedule cluster on a healthy Worker with available capacity
The Worker API defines the properties of a cluster that will host managed kubernetes control planes.
- Cluster Spec
- kubernetes version
- Node Count
- Capacity
- Phase
- Errors
- Available Capacity
- Provision/Manage capz cluster
- Install/Update carp Worker components via flux
- flux
- carp operator (control plane mode)
- capi operator
- capz operator
The Managed Cluster API defines the properties of a cluster that will be managed by carp.
- Cluster Spec
- kubernetes version
- Node Count
- Phase
- Errors
- Assigned Worker
- Provision/Manage hosted control plane capz cluster
The managed cluster event publisher runs as part of the carp control plane and is responsible for publishing events for when a managed cluster is created, updated, or deleted.
- Publish an event when a cluster is created, updated, or deleted.
The managed cluster event subscriber runs on each carp Worker listening for new clusters to be scheduled, existing cluster updates, and deletes.
- Listen for cluster create, update, and delete events for clusters scheduled on the Worker its running on and apply or delete the latest Managed Cluster API CRD.