README

Cluster API

What is the Cluster API?

The Cluster API is a Kubernetes project to bring declarative, Kubernetes-style APIs to cluster creation, configuration, and management. It provides optional, additive functionality on top of core Kubernetes.

Note that Cluster API effort is still in the prototype stage while we get feedback on the API types themselves. All of the code here is to experiment with the API and demo its abilities, in order to drive more technical feedback to the API design. Because of this, all of the prototype code is rapidly changing.

Cluster API Architecture

Learn more about the project's scope, objectives, goals and requirements, feature proposals and reference use cases.

How does Cluster API compare to Kubernetes Cloud Providers?

Cloud Providers and the Cluster API work in concert to provide a rich Kubernetes experience in cloud environments. The Cluster API initializes new nodes and clusters using available providers. Running clusters can then use Cloud Providers to provision support infrastructure like load balancers and persistent volumes.

Get involved!

  • Join the Cluster API discuss forum.

  • Join the sig-cluster-lifecycle Google Group for access to documents and calendars.

  • Join our Cluster API working group sessions

  • Provider implementer office hours

    • Weekly on Tuesdays @ 12:00 PT (Zoom) and Wednesdays @ 15:00 CET (Zoom)
    • Previous meetings: [ notes ]
  • Chat with us on Slack: #cluster-api

Provider Implementations

The code in this repository is independent of any specific deployment environment. Provider specific code is being developed in separate repositories, some of which are also sponsored by SIG-cluster-lifecycle:

API Adoption

Following are the implementations managed by third-parties adopting the standard cluster-api and/or machine-api being developed here.

Versioning, Maintenance, and Compatibility

  • We follow Semantic Versioning (semver).
  • Cluster API release cadence is Kubernetes Release + 6 weeks.
  • The cadence is subject to change if necessary, refer to the Milestones page for up-to-date information.
  • The master branch is where development happens, this might include breaking changes.
  • The release-X branches contain stable, backward compatible code. A new release-X branch is created at every major (X) release.

Getting Started

Resources
Prerequisites
  • kubectl is required, see here.
  • clusterctl is a SIG-cluster-lifecycle sponsored tool to manage Cluster API clusters. See here
Expand ▾ Collapse ▴

Directories

Path Synopsis
cmd
clusterctl/clientcmd
Package clientcmd contains convenience methods for working with the kubeconfig and loading specific configurations of api.Config and rest.Config.
Package clientcmd contains convenience methods for working with the kubeconfig and loading specific configurations of api.Config and rest.Config.
hack
pkg
apis
Package apis contains Kubernetes API groups.
Package apis contains Kubernetes API groups.
apis/cluster
Package cluster contains cluster API versions
Package cluster contains cluster API versions
apis/cluster/v1alpha1
Package v1alpha1 contains API Schema definitions for the cluster v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=sigs.k8s.io/cluster-api/pkg/apis/cluster +k8s:defaulter-gen=TypeMeta +groupName=cluster.k8s.io Package v1alpha1 contains API Schema definitions for the cluster v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=sigs.k8s.io/cluster-api/pkg/apis/cluster +k8s:defaulter-gen=TypeMeta +groupName=cluster.k8s.io
Package v1alpha1 contains API Schema definitions for the cluster v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=sigs.k8s.io/cluster-api/pkg/apis/cluster +k8s:defaulter-gen=TypeMeta +groupName=cluster.k8s.io Package v1alpha1 contains API Schema definitions for the cluster v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=sigs.k8s.io/cluster-api/pkg/apis/cluster +k8s:defaulter-gen=TypeMeta +groupName=cluster.k8s.io
client/clientset_generated/clientset
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/clientset_generated/clientset/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset_generated/clientset/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset_generated/clientset/typed/cluster/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset_generated/clientset/typed/cluster/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.