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.
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
- Weekly on Wednesdays @ 10:00 PT on Zoom
- Previous meetings: [ notes | recordings ]
-
Provider implementer office hours
-
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:
- AWS, https://github.com/kubernetes-sigs/cluster-api-provider-aws
- Azure, https://github.com/kubernetes-sigs/cluster-api-provider-azure
- Baidu Cloud, https://github.com/baidu/cluster-api-provider-baiducloud
- Bare Metal, https://github.com/metal3-io/cluster-api-provider-baremetal
- DigitalOcean, https://github.com/kubernetes-sigs/cluster-api-provider-digitalocean
- Exoscale, https://github.com/exoscale/cluster-api-provider-exoscale
- GCP, https://github.com/kubernetes-sigs/cluster-api-provider-gcp
- IBM Cloud, https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud
- OpenStack, https://github.com/kubernetes-sigs/cluster-api-provider-openstack
- Talos, https://github.com/talos-systems/cluster-api-provider-talos
- Tencent Cloud, https://github.com/TencentCloud/cluster-api-provider-tencent
- vSphere, https://github.com/kubernetes-sigs/cluster-api-provider-vsphere
API Adoption
Following are the implementations managed by third-parties adopting the standard cluster-api and/or machine-api being developed here.
- Kubermatic machine-controller, https://github.com/kubermatic/machine-controller/tree/master
- Machine API Operator, https://github.com/openshift/machine-api-operator/tree/master
- Machine-controller-manager, https://github.com/gardener/machine-controller-manager/tree/cluster-api
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
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. |