Cluster API bootstrap provider k3s
Cluster API bootstrap provider k3s (CABP3) is a component of Cluster API that is responsible for generating a cloud-init script to turn a Machine into a Kubernetes Node; this implementation brings up k3s clusters instead of full kubernetes clusters.
CABP3 is the bootstrap component of Cluster API for k3s and brings in the following CRDS and controllers:
- k3s bootstrap provider (KThrees, KThreesTemplate)
We also started working on a control plane component of Cluster API for k3s which brings the following CRD:
- k3s controlplane provider (KThreesControlPlane)
Check it out Cluster API Control Plane Provider
Soon we will be moving this all to a single repoo for the ClusterAPI k3s experience.
Testing it out.
Warning: Project and documentation are in an early stage, there is an assumption that an user of this provider is already familiar with ClusterAPI.
Prerequisites
Check out the ClusterAPI Quickstart page to see the prerequisites for ClusterAPI.
Three main pieces are
- Bootstrap cluster. In the
samples/azure/azure-setup.sh
script, I use k3d, but feel free to use kind as well.
- clusterctl. Please check out ClusterAPI Quickstart for instructions.
- Azure Service Principals. For more information go to CAPZ Getting Started
CABP3 has been tested only on with an Azure and AzureStackHCI environment. To try out the Azure flow, fork the repo and look at samples/azure/azure-setup.sh
.
CACP3 is alive! Sample now includes the K3s Control Plane Provider. If you run the sample script you will get a cluster with a control plane and two workers.
Then run the following to scale the control plane...
kubectl scale kthreescontrolplane ${CLUSTER_NAME}-control-plane --replicas 3
Known Issues
Roadmap
- Support for External Databases
- Fix Token Logic
- Setup CAPA and CAPV samples
- Post an issue!