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
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