Cluster API Operator has exposed 6 Providers inv1alpha2
apis. Let’s explore the nature of these providers
Non Plugable
Providers which are not pluggable currently, such as Cluster API Provider.Plugable
Providers that have a default implantation in Cluster API, such as Cluster API Bootstrap Provider Kubeadm and Kubeadm Control Plane Provider. But the ecosystem has pluggable options available forBootstrapProviders
andControlPlaneProviders
Optional
Providers are pluggable and the Cluster API community has started working on new implementations forIPAMProvider
andAddOnProvider
, but these Providers are not mandatory to initialize a Bootstrap Cluster or to create a Workload Cluster.
🎯 • CoreProvider • Required
CoreProvider
is currently a Cluster API project which is responsible for installing CRDs'
Cluster
MachineDeployment
MachineSet
MachinePool
Machine
MachineHealthCheck
MachineDrainRule
respective controllers and has an External interface for
InfrastructureReference for working with InfraClusters or ManagedControlplanes.
ControlPlanceReference for working with Control plane abstractions of Kubernetes Clusters.
which allows it work to with ControlPlaneProvider
and InfrastructureProvider
to reconcile/manage the overall cluster lifecycle.
🥾 • BootstrapProvider • Required
BootstrapProvider
is responsible for managing cluster PKI Certificates if required.
Create and manage Bootstrap Secrets which contain node init script default is kubeadm + cloud-init, useful for microk8s like providers which don’t use kubeadm to run Kubernetes stack on a node.
BoostrapProvider
Is also responsible for holding the lock on KCP machines during the initialization process.
☸️ • ControlPlaneProvider • Required
ControlPlaneProvider manages controlplane machines and scale
ControlplaneProvider
’s role is to manage the lifecycle for ControlPlane machines and handle scale requirements.
This seems a very simple task in writing here, but believe me, it’s neither simple nor easy.
🖥️ • InfrastructureProvider • Required
InfrastructureProvider translates InfrastructureCluster to cloud infra and the same with InfrastructureMachine to Cloud Machines
InfrastructureProvider
interacts and manage
InfrastructureCluster to provision Cloud infrastructure e.g., AWS Provider will set up vpc, zones, subnet, routables & ControlPlane Loadbalancer (if required) from spec.
InfrastructureMachines to provision Cloud VMs and manage their lifecycle.
A list of CAPI InfrastructureProviders
is present here.
🌐 • IPAMProvider • Optional
IPAMProvider is responsible for managing IPPools and allocating IP Addresses to the IPClaims
IPAMProvider
is primarily required for non-cloud deployments where IP Address Management for Machines is determined and managed by the user. One such reference implementation is present at Cluster API IPAM Provider In Cluster.
🧩 • AddonProvider • Optional
Cluster API Addon Provider Helm simple workflow showing helm chart download on Workload Cluster
AddonProvider
allows to manage add-ons on the management cluster. One such reference implementation using helm charts-based addons is present at Cluster API Addon Provider Helm.
With a brief introduction to all the manageable provider components via Cluster API Operator. We are now all set to see how we can specify these specifications in detail. All of the providers converge to one ProviderSpec
to specify provider location version and controller manager arguments, manifest patches, additional deployments and much more.
This concludes the second article, thanks a lot for your time. If you have any questions about the above or Cluster API please feel free to reach out.
Stay tuned for the next article, where we will explore Cluster API Operator API ProviderSpec
.