README
ΒΆ
Cluster API
π Welcome to our project! Our Book can help you get started and provides lots of in-depth information.
Useful links
β¨ What is the Cluster API?
Cluster API is a Kubernetes subproject 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.
βοΈ Providers
Cluster API can be extended to support any infrastructure (AWS, Azure, vSphere, etc.), bootstrap or control plane (kubeadm is built-in) provider. 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 want 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
- 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.
Directories
ΒΆ
Path | Synopsis |
---|---|
api
|
|
v1beta1
Package v1beta1 contains the v1beta1 API implementation.
|
Package v1beta1 contains the v1beta1 API implementation. |
v1beta1/index
Package index provides indexes for the api.
|
Package index provides indexes for the api. |
bootstrap
|
|
kubeadm
main is the main package for the Kubeadm Bootstrap provider.
|
main is the main package for the Kubeadm Bootstrap provider. |
kubeadm/api/v1beta1
Package v1beta1 contains API Schema definitions for the kubeadm v1beta1 API group +kubebuilder:object:generate=true +groupName=bootstrap.cluster.x-k8s.io
|
Package v1beta1 contains API Schema definitions for the kubeadm v1beta1 API group +kubebuilder:object:generate=true +groupName=bootstrap.cluster.x-k8s.io |
kubeadm/controllers
Package controllers implements the Kubeadm controllers.
|
Package controllers implements the Kubeadm controllers. |
kubeadm/types
Package utils contains Kubeadm utility types.
|
Package utils contains Kubeadm utility types. |
kubeadm/types/upstreamv1beta1
Package upstreamv1beta1 contains a mirror of kubeadm API v1beta1 API, required because it is not possible to import k/K.
|
Package upstreamv1beta1 contains a mirror of kubeadm API v1beta1 API, required because it is not possible to import k/K. |
kubeadm/types/upstreamv1beta2
Package upstreamv1beta2 contains a mirror of kubeadm API v1beta2 API, required because it is not possible to import k/K.
|
Package upstreamv1beta2 contains a mirror of kubeadm API v1beta2 API, required because it is not possible to import k/K. |
kubeadm/types/upstreamv1beta3
Package upstreamv1beta3 contains a mirror of kubeadm API v1beta3 API, required because it is not possible to import k/K.
|
Package upstreamv1beta3 contains a mirror of kubeadm API v1beta3 API, required because it is not possible to import k/K. |
kubeadm/types/upstreamv1beta4
Package upstreamv1beta4 contains a mirror of kubeadm API v1beta4 API, required because it is not possible to import k/K.
|
Package upstreamv1beta4 contains a mirror of kubeadm API v1beta4 API, required because it is not possible to import k/K. |
kubeadm/webhooks
Package webhooks provides the validating webhooks for KubeadmConfig and KubeadmConfigTemplate.
|
Package webhooks provides the validating webhooks for KubeadmConfig and KubeadmConfigTemplate. |
util
Package util implements kubeadm utility functionality.
|
Package util implements kubeadm utility functionality. |
cmd
|
|
clusterctl
main is the main package for clusterctl.
|
main is the main package for clusterctl. |
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/client
Package client implements clusterctl client functionality.
|
Package client implements clusterctl client functionality. |
clusterctl/client/alpha
Package alpha implements clusterctl alpha functionality.
|
Package alpha implements clusterctl alpha functionality. |
clusterctl/client/cluster
Package cluster implements clusterctl cluster functionality.
|
Package cluster implements clusterctl cluster functionality. |
clusterctl/client/config
Package config implements clusterctl config functionality.
|
Package config implements clusterctl config functionality. |
clusterctl/client/repository
Package repository implements clusterctl repository functionality.
|
Package repository implements clusterctl repository functionality. |
clusterctl/client/tree
Package tree supports the generation of an "at glance" view of a Cluster API cluster designed to help the user in quickly understanding if there are problems and where.
|
Package tree supports the generation of an "at glance" view of a Cluster API cluster designed to help the user in quickly understanding if there are problems and where. |
clusterctl/client/yamlprocessor
Package yamlprocessor implements YAML processing.
|
Package yamlprocessor implements YAML processing. |
clusterctl/cmd
Package cmd implements clusterctl commands.
|
Package cmd implements clusterctl commands. |
clusterctl/cmd/rollout
Package rollout implements the clusterctl rollout command.
|
Package rollout implements the clusterctl rollout command. |
clusterctl/config
Package config implements clusterctl config functionality.
|
Package config implements clusterctl config functionality. |
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. |
Package controllers implements controllers.
|
Package controllers implements controllers. |
clustercache
Package clustercache implements the ClusterCache.
|
Package clustercache implements the ClusterCache. |
external
Package external implements external controller types.
|
Package external implements external controller types. |
external/fake
Package fake provides a fake controllers for testing.
|
Package fake provides a fake controllers for testing. |
noderefutil
Package noderefutil implements noderef utilities.
|
Package noderefutil implements noderef utilities. |
remote
Package remote implements remote controllers.
|
Package remote implements remote controllers. |
remote/fake
Package fake implements testing fakes.
|
Package fake implements testing fakes. |
controlplane
|
|
kubeadm
main is the main package for the Kubeadm Control Plane provider.
|
main is the main package for the Kubeadm Control Plane provider. |
kubeadm/api/v1beta1
Package v1beta1 contains API Schema definitions for the kubeadm v1beta1 API group +kubebuilder:object:generate=true +groupName=controlplane.cluster.x-k8s.io
|
Package v1beta1 contains API Schema definitions for the kubeadm v1beta1 API group +kubebuilder:object:generate=true +groupName=controlplane.cluster.x-k8s.io |
kubeadm/controllers
Package controllers implements the Kubeadm controllers.
|
Package controllers implements the Kubeadm controllers. |
kubeadm/webhooks
Package webhooks provides the validating webhook for KubeadmControlPlane scale subresource.
|
Package webhooks provides the validating webhook for KubeadmControlPlane scale subresource. |
Package errors makes a set of error message handlers available for use by Cluster API Providers.
|
Package errors makes a set of error message handlers available for use by Cluster API Providers. |
Package exp implements experimental code.
|
Package exp implements experimental code. |
addons/api/v1beta1
Package v1beta1 contains API Schema definitions for the addons v1beta1 API group +kubebuilder:object:generate=true +groupName=addons.cluster.x-k8s.io
|
Package v1beta1 contains API Schema definitions for the addons v1beta1 API group +kubebuilder:object:generate=true +groupName=addons.cluster.x-k8s.io |
addons/controllers
Package controllers implements the exp/addons controllers.
|
Package controllers implements the exp/addons controllers. |
addons/webhooks
Package webhooks contains external addons webhook implementations for some of our API types.
|
Package webhooks contains external addons webhook implementations for some of our API types. |
api/v1beta1
Package v1beta1 contains experimental v1beta1 API implementation.
|
Package v1beta1 contains experimental v1beta1 API implementation. |
controllers
Package controllers implements experimental controllers.
|
Package controllers implements experimental controllers. |
ipam/api/v1alpha1
Package v1alpha1 contains API Schema definitions for the exp v1alpha1 IPAM API.
|
Package v1alpha1 contains API Schema definitions for the exp v1alpha1 IPAM API. |
ipam/api/v1beta1
Package v1beta1 contains API Schema definitions for the v1beta1 IPAM API.
|
Package v1beta1 contains API Schema definitions for the v1beta1 IPAM API. |
ipam/webhooks
Package webhooks contains external webhook implementations for some of our API types.
|
Package webhooks contains external webhook implementations for some of our API types. |
runtime/api/v1alpha1
Package v1alpha1 contains the v1alpha1 implementation of ExtensionConfig.
|
Package v1alpha1 contains the v1alpha1 implementation of ExtensionConfig. |
runtime/catalog
Package catalog provides the Catalog and corresponding builders.
|
Package catalog provides the Catalog and corresponding builders. |
runtime/client
Package client provides the Runtime SDK client.
|
Package client provides the Runtime SDK client. |
runtime/controllers
Package controllers implements the exp/runtime controllers.
|
Package controllers implements the exp/runtime controllers. |
runtime/hooks/api/v1alpha1
Package v1alpha1 contains the v1alpha1 RuntimeHooks.
|
Package v1alpha1 contains the v1alpha1 RuntimeHooks. |
runtime/server
Package server contains the implementation of a RuntimeSDK webhook server.
|
Package server contains the implementation of a RuntimeSDK webhook server. |
runtime/topologymutation
Package topologymutation provides helpers for implementing the topology mutation hooks.
|
Package topologymutation provides helpers for implementing the topology mutation hooks. |
topology/desiredstate
Package desiredstate contains cluster topology utils, e.g.
|
Package desiredstate contains cluster topology utils, e.g. |
topology/scope
Package scope provides types for handling all the information to process a request in the topology/ClusterReconciler controller.
|
Package scope provides types for handling all the information to process a request in the topology/ClusterReconciler controller. |
util
Package util implements utility functions.
|
Package util implements utility functions. |
webhooks
Package webhooks contains external webhook implementations for some of our API types.
|
Package webhooks contains external webhook implementations for some of our API types. |
Package feature implements feature functionality.
|
Package feature implements feature functionality. |
hack
|
|
boilerplate/test
Package test contains test boilerplate.
|
Package test contains test boilerplate. |
tools
Module
|
|
internal
|
|
test
module
|
|
framework
Module
|
|
infrastructure/docker
Module
|
|
Package util implements utilities.
|
Package util implements utilities. |
annotations
Package annotations implements annotation helper functions.
|
Package annotations implements annotation helper functions. |
apiwarnings
Package apiwarnings defines warning handlers used with API clients.
|
Package apiwarnings defines warning handlers used with API clients. |
cache
Package cache implements some cache utils.
|
Package cache implements some cache utils. |
certs
Package certs implements cert handling utilities.
|
Package certs implements cert handling utilities. |
collections
Package collections implements collection utilities.
|
Package collections implements collection utilities. |
conditions
Package conditions implements condition utilities.
|
Package conditions implements condition utilities. |
conditions/v1beta2
Package v1beta2 implements utils for metav1.Conditions that will be used starting with the v1beta2 API.
|
Package v1beta2 implements utils for metav1.Conditions that will be used starting with the v1beta2 API. |
container
Package container implements container utility functionality.
|
Package container implements container utility functionality. |
contract
Package contract contains utils related to the Cluster API contract.
|
Package contract contains utils related to the Cluster API contract. |
conversion
Package conversion implements conversion utilities.
|
Package conversion implements conversion utilities. |
defaulting
Package defaulting implements defaulting webhook functionality.
|
Package defaulting implements defaulting webhook functionality. |
failuredomains
Package failuredomains implements FailureDomain utility functions.
|
Package failuredomains implements FailureDomain utility functions. |
finalizers
Package finalizers implements finalizer helper functions.
|
Package finalizers implements finalizer helper functions. |
flags
Package flags implements the manager options utilities.
|
Package flags implements the manager options utilities. |
kubeconfig
Package kubeconfig implements utilities for working with kubeconfigs.
|
Package kubeconfig implements utilities for working with kubeconfigs. |
labels
Package labels implements label utility functions.
|
Package labels implements label utility functions. |
labels/format
Package format contains functions to format and compare formatted values used in Kubernetes labels.
|
Package format contains functions to format and compare formatted values used in Kubernetes labels. |
log
Package log provides log utils.
|
Package log provides log utils. |
patch
Package patch implements patch utilities.
|
Package patch implements patch utilities. |
paused
Package paused implements paused helper functions.
|
Package paused implements paused helper functions. |
predicates
Package predicates implements predicate utilities.
|
Package predicates implements predicate utilities. |
record
Package record implements recording functionality.
|
Package record implements recording functionality. |
resource
Package resource implements resource utilites.
|
Package resource implements resource utilites. |
secret
Package secret implements utilities for secret handling.
|
Package secret implements utilities for secret handling. |
test/builder
Package builder implements builder and CRDs for creating API objects for testing.
|
Package builder implements builder and CRDs for creating API objects for testing. |
topology
Package topology implements topology utility functions.
|
Package topology implements topology utility functions. |
version
Package version implements version handling.
|
Package version implements version handling. |
yaml
Package yaml implements yaml utility functions.
|
Package yaml implements yaml utility functions. |
Package version implements version handling code.
|
Package version implements version handling code. |
Package webhooks contains external webhook implementations for some of our API types.
|
Package webhooks contains external webhook implementations for some of our API types. |