README
¶
Cluster API 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)
Cluster API ControlPlane provider k3s (CACP3) is a component of Cluster API that is responsible for managing the lifecycle of control plane machines for k3s; this implementation brings up k3s clusters instead of full kubernetes clusters.
CACP3 is the controlplane component of Cluster API for k3s and brings in the following CRDS and controllers:
- k3s controlplane provider (KThreesControlPlane)
Together these two components make up Cluster API k3s...
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.
-
Infrastructure Specific Prerequisites:
- For more Azure information go to CAPZ Getting Started
- For more AWS information go to CAPA Getting Started
- For more Nutanix information go to CAPX Getting Started
- For more OpenStack information go to CAPO Getting Started
- For more Vsphere information go to CAPV Getting Started
Cluster API k3s has been tested on AWS, Azure, AzureStackHCI, Nutanix, OpenStack, and Vsphere environments.
To try out the Azure flow, fork the repo and look at samples/azure/azure-setup.sh
.
To try out the AWS flow, fork the repo and look at samples/aws/aws-setup.sh
.
To try out the Nutanix flow, fork the repo and look at samples/nutanix/nutanix-setup.sh
.
To try out the OpenStack flow, fork the repo and look at samples/openstack/setup.sh
.
To try out the Vsphere flow, fork the repo and look at samples/vsphere-capv/setup.sh
.
Known Issues
Roadmap
- Support for External Databases
- Fix Token Logic
- Clean up Control Plane Provider Code
- Post an issue!
Directories
¶
Path | Synopsis |
---|---|
api/v1beta1
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. |
api/v1beta2
Package v1beta2 contains API Schema definitions for the bootstrap v1beta2 API group +kubebuilder:object:generate=true +groupName=bootstrap.cluster.x-k8s.io +k8s:defaulter-gen=TypeMeta
|
Package v1beta2 contains API Schema definitions for the bootstrap v1beta2 API group +kubebuilder:object:generate=true +groupName=bootstrap.cluster.x-k8s.io +k8s:defaulter-gen=TypeMeta |
api/v1beta1
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. |
api/v1beta2
Package v1beta1 contains API Schema definitions for the controlplane v1beta1 API group +kubebuilder:object:generate=true +groupName=controlplane.cluster.x-k8s.io +k8s:defaulter-gen=TypeMeta
|
Package v1beta1 contains API Schema definitions for the controlplane v1beta1 API group +kubebuilder:object:generate=true +groupName=controlplane.cluster.x-k8s.io +k8s:defaulter-gen=TypeMeta |
pkg
|
|
etcd
Package etcd provides a connection to an etcd member.
|
Package etcd provides a connection to an etcd member. |
etcd/fake
Package fake implements testing fakes.
|
Package fake implements testing fakes. |
etcd/util
Package util implements etcd utility functions.
|
Package util implements etcd utility functions. |
locking
Package locking implements locking functionality.
|
Package locking implements locking functionality. |
proxy
Package proxy implements kubeadm proxy functionality.
|
Package proxy implements kubeadm proxy functionality. |
util/hash
Package hash provides utils to calculate hashes.
|
Package hash provides utils to calculate hashes. |
util/ssa
Package ssa provides functionality to perform Server-Side Apply operations.
|
Package ssa provides functionality to perform Server-Side Apply operations. |