README
Cluster API
Please see our Book for more in-depth documentation.
Useful links
What is the Cluster API?
Cluster API is a Kubernetes sub-project focused on providing declarative APIs and tooling to simplify provisioning, upgrading, and operating multiple Kubernetes clusters.
Started by the Kubernetes Special Interest Group (SIG) Cluster Lifecycle, the Cluster API project uses Kubernetes-style APIs and patterns to automate cluster lifecycle management for platform operators. The supporting infrastructure, like virtual machines, networks, load balancers, and VPCs, as well as the Kubernetes cluster configuration are all defined in the same way that application developers operate deploying and managing their workloads. This enables consistent and repeatable cluster deployments across a wide variety of infrastructure environments.
NB: Cluster API is still in a 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 codebase is rapidly changing.
Providers
Cluster API can be extended to support any infrastructure provider (AWS, Azure, vSphere, etc.) or bootstrap provider (kubeadm is default) you need. There is a growing list of supported providers available.
Community, discussion, contribution, and support
Cluster API is developed in the open, and is constantly being improved by our users, contributors, and maintainers. It is because of you that we are able to automate cluster lifecycle management for the community. Join us!
If you have questions or what to get the latest project news, you can connect with us in the following ways:
- Chat with us on the Kubernetes Slack in the #cluster-api channel
- Subscribe to the SIG Cluster Lifecycle Google Group for access to documents and calendars
- Participate in the conversations on Kubernetes Discuss
- Join our Cluster API working group sessions where we share the latest project news, demos, answer questions, and triage issues
- Weekly on Wednesdays @ 10:00 PT on Zoom
- Previous meetings: [ notes | recordings ]
Pull Requests and feedback on issues are very welcome! See the issue tracker if you're unsure where to start, especially the Good first issue and Help wanted tags, and also feel free to reach out to discuss.
See also our contributor guide and the Kubernetes community page for more details on how to get involved.
Code of conduct
Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.
Documentation
Overview ¶
Copyright 2019 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Directories
Path | Synopsis |
---|---|
api/v1alpha2 | +k8s:conversion-gen=sigs.k8s.io/cluster-api/api/v1alpha3 Package v1alpha2 contains API Schema definitions for the cluster v1alpha2 API group +kubebuilder:object:generate=true +groupName=cluster.x-k8s.io |
api/v1alpha3 | Package v1alpha3 contains API Schema definitions for the cluster v1alpha3 API group +kubebuilder:object:generate=true +groupName=cluster.x-k8s.io |
bootstrap/kubeadm | |
bootstrap/kubeadm/api/v1alpha2 | +k8s:conversion-gen=sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1alpha3 Package v1alpha2 contains API Schema definitions for the kubeadm v1alpha2 API group +kubebuilder:object:generate=true +groupName=bootstrap.cluster.x-k8s.io |
bootstrap/kubeadm/api/v1alpha3 | Package v1alpha3 contains API Schema definitions for the kubeadm v1alpha3 API group +kubebuilder:object:generate=true +groupName=bootstrap.cluster.x-k8s.io |
bootstrap/kubeadm/controllers | |
bootstrap/kubeadm/internal/cloudinit | Code generated for package cloudinit by go-bindata DO NOT EDIT. |
bootstrap/kubeadm/internal/locking | |
bootstrap/kubeadm/types/v1beta1 | Package v1beta1 defines the v1beta1 version of the kubeadm configuration file format. |
bootstrap/kubeadm/types/v1beta2 | Package v1beta2 defines the v1beta2 version of the kubeadm configuration file format. |
bootstrap/util | |
cmd/clusterctl | |
cmd/clusterctl/api/v1alpha3 | Package v1alpha3 contains API Schema definitions for the clusterctl v1alpha3 API group +kubebuilder:object:generate=true +groupName=clusterctl.cluster.x-k8s.io |
cmd/clusterctl/client | |
cmd/clusterctl/client/cluster | |
cmd/clusterctl/client/config | |
cmd/clusterctl/client/repository | |
cmd/clusterctl/client/yamlprocessor | |
cmd/clusterctl/cmd | |
cmd/clusterctl/config | Code generated for package config by go-bindata DO NOT EDIT. |
cmd/clusterctl/internal/scheme | |
cmd/clusterctl/internal/test | |
cmd/clusterctl/internal/test/providers/bootstrap | package bootstrap defines the types for a generic bootstrap provider used for tests +kubebuilder:object:generate=true +groupName=bootstrap.cluster.x-k8s.io |
cmd/clusterctl/internal/test/providers/controlplane | package controlplane defines the types for a generic control plane provider used for tests +kubebuilder:object:generate=true +groupName=controlplane.cluster.x-k8s.io |
cmd/clusterctl/internal/test/providers/external | package external defines the types for a generic external provider used for tests +kubebuilder:object:generate=true +groupName=custom.cluster.x-k8s.io |
cmd/clusterctl/internal/test/providers/infrastructure | package infrastructure defines the types for a generic infrastructure provider used for tests +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io |
cmd/clusterctl/internal/util | |
cmd/clusterctl/log | Package log mirrors the controller runtime approach to logging, by defining a global logger that defaults to NullLogger. |
cmd/example-provider | |
cmd/version | |
controllers | |
controllers/external | |
controllers/mdutil | |
controllers/noderefutil | |
controllers/remote | |
controllers/remote/fake | |
controlplane/kubeadm | |
controlplane/kubeadm/api/v1alpha3 | Package v1alpha3 contains API Schema definitions for the kubeadm v1alpha3 API group +kubebuilder:object:generate=true +groupName=controlplane.cluster.x-k8s.io |
controlplane/kubeadm/controllers | |
controlplane/kubeadm/internal | |
controlplane/kubeadm/internal/etcd | Package etcd provides a connection to an etcd member. |
controlplane/kubeadm/internal/etcd/fake | |
controlplane/kubeadm/internal/etcd/util | |
controlplane/kubeadm/internal/hash | |
controlplane/kubeadm/internal/machinefilters | |
controlplane/kubeadm/internal/proxy | |
errors | |
exp | |
exp/addons/api/v1alpha3 | Package v1alpha3 contains API Schema definitions for the addons v1alpha3 API group +kubebuilder:object:generate=true +groupName=addons.cluster.x-k8s.io |
exp/addons/controllers | |
exp/addons/controllers/predicates | |
exp/api/v1alpha3 | Package v1alpha3 contains API Schema definitions for the exp v1alpha3 API group +kubebuilder:object:generate=true +groupName=exp.cluster.x-k8s.io |
exp/controllers | |
exp/util | |
feature | |
hack/boilerplate/test | |
test/e2e | |
test/e2e/internal/log | |
test/framework | |
test/framework/bootstrap | |
test/framework/clusterctl | |
test/framework/clusterctl/logger | |
test/framework/exec | |
test/framework/generators | |
test/framework/ginkgoextensions | |
test/framework/internal/log | |
test/framework/kubernetesversions | Code generated for package kubernetesversions by go-bindata DO NOT EDIT. |
test/framework/kubetest | |
test/framework/management/kind | |
test/framework/options | |
test/helpers | |
test/helpers/components | |
test/helpers/flag | |
test/helpers/kind | |
test/helpers/scheme | |
third_party/kubernetes-drain | |
util | |
util/annotations | |
util/certs | |
util/conditions | |
util/container | |
util/conversion | |
util/kubeconfig | |
util/patch | |
util/predicates | |
util/record | |
util/resource | |
util/secret | |
util/yaml | |
MODULE test/infrastructure/docker |