README

capi

Build Status Go Report Card

Cluster API

Please see our Book for more in-depth documentation.

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

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.

Expand ▾ Collapse ▴

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.

    Source Files

    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
    +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
    v1alpha3
    Package v1alpha3 contains API Schema definitions for the cluster v1alpha3 API group +kubebuilder:object:generate=true +groupName=cluster.x-k8s.io
    Package v1alpha3 contains API Schema definitions for the cluster v1alpha3 API group +kubebuilder:object:generate=true +groupName=cluster.x-k8s.io
    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
    +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
    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
    Package v1alpha3 contains API Schema definitions for the kubeadm v1alpha3 API group +kubebuilder:object:generate=true +groupName=bootstrap.cluster.x-k8s.io
    kubeadm/types/v1beta1
    Package v1beta1 defines the v1beta1 version of the kubeadm configuration file format.
    Package v1beta1 defines the v1beta1 version of the kubeadm configuration file format.
    kubeadm/types/v1beta2
    Package v1beta2 defines the v1beta2 version of the kubeadm configuration file format.
    Package v1beta2 defines the v1beta2 version of the kubeadm configuration file format.
    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
    Package v1alpha3 contains API Schema definitions for the clusterctl v1alpha3 API group +kubebuilder:object:generate=true +groupName=clusterctl.cluster.x-k8s.io
    clusterctl/config
    Code generated for package config by go-bindata DO NOT EDIT.
    Code generated for package config by go-bindata DO NOT EDIT.
    clusterctl/log
    Package log mirrors the controller runtime approach to logging, by defining a global logger that defaults to NullLogger.
    Package log mirrors the controller runtime approach to logging, by defining a global logger that defaults to NullLogger.
    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
    Package v1alpha3 contains API Schema definitions for the kubeadm v1alpha3 API group +kubebuilder:object:generate=true +groupName=controlplane.cluster.x-k8s.io
    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
    Package v1alpha3 contains API Schema definitions for the addons v1alpha3 API group +kubebuilder:object:generate=true +groupName=addons.cluster.x-k8s.io
    api/v1alpha3
    Package v1alpha3 contains API Schema definitions for the exp v1alpha3 API group +kubebuilder:object:generate=true +groupName=exp.cluster.x-k8s.io
    Package v1alpha3 contains API Schema definitions for the exp v1alpha3 API group +kubebuilder:object:generate=true +groupName=exp.cluster.x-k8s.io
    hack
    test
    e2e
    framework/kubernetesversions
    Code generated for package kubernetesversions by go-bindata DO NOT EDIT.
    Code generated for package kubernetesversions by go-bindata DO NOT EDIT.
    third_party