Cluster API is a Kubernetes sub-project focused on providing declarative APIs and tooling to simplify provisioning, upgrading, and operating multiple Kubernetes clusters.

The project was started by the Kubernetes Special Interest Group (SIG) Cluster Lifecycle to automate cluster lifecycle management for platform operators.

At first, the SIG working group started kubeadm to address a set of overlapping installation concerns. However, even though the tool provided reduced installation complexity, it still didn’t address how to manage a cluster day-to-day or a Kubernetes environment long term.

This led SIG to develop Cluster API project as a way to address these gaps by building declarative, Kubernetes-style APIs, that automate cluster creation, configuration, and management.

Cluster API can also be extended to support any infrastructure provider whether it’s AWS, Azure, vSphere or more. 

The team behind the tool said the goal for the tool is “to manage the lifecycle (create, scale, upgrade, destroy) of Kubernetes-conformant clusters using a declarative API” and “to provide a transition path for Kubernetes lifecycle products to adopt Cluster API incrementally. Specifically, existing cluster lifecycle management tools should be able to adopt Cluster API in a staged manner, over the course of multiple releases, or even adopting a subset of Cluster API,” according to the Cluster API Book