cluster-api

module
v1.14.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 30, 2026 License: Apache-2.0

README

capi

GitHub release (latest SemVer)

Cluster API

👋 Welcome to our project! Our Book can help you get started and provides lots of in-depth information.

✨ 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

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 module
bootstrap
kubeadm command
main is the main package for the Kubeadm Bootstrap provider.
main is the main package for the Kubeadm Bootstrap provider.
kubeadm/pkg/builder
Package builder implements builder and CRDs for creating Bootstrap objects for testing.
Package builder implements builder and CRDs for creating Bootstrap objects for testing.
kubeadm/pkg/cloudinit
Package cloudinit implements kubeadm cloudinit functionality.
Package cloudinit implements kubeadm cloudinit functionality.
kubeadm/pkg/ignition
Package ignition aggregates all Ignition flavors into a single package to be consumed by the bootstrap provider by exposing an API similar to 'internal/cloudinit' package.
Package ignition aggregates all Ignition flavors into a single package to be consumed by the bootstrap provider by exposing an API similar to 'internal/cloudinit' package.
kubeadm/pkg/ignition/clc
Package clc generates bootstrap data in Ignition format using Container Linux Config Transpiler.
Package clc generates bootstrap data in Ignition format using Container Linux Config Transpiler.
kubeadm/pkg/locking
Package locking implements locking functionality.
Package locking implements locking functionality.
kubeadm/pkg/types
Package types contains Kubeadm utility types.
Package types contains Kubeadm utility types.
kubeadm/pkg/types/upstream
Package upstream contains types to handle additional data during Marshal or UnMarshal of kubeadm's types.
Package upstream contains types to handle additional data during Marshal or UnMarshal of kubeadm's types.
kubeadm/pkg/types/upstreamhub
Package upstreamhub contains hub types for conversion to kubeadm upstream types.
Package upstreamhub contains hub types for conversion to kubeadm upstream types.
kubeadm/pkg/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/pkg/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/reconcilers/kubeadmconfig
Package kubeadmconfig implements the Kubeadm controllers.
Package kubeadmconfig implements the Kubeadm controllers.
kubeadm/setup
Package setup provides utils for the setup of CABPK.
Package setup provides utils for the setup of CABPK.
kubeadm/webhooks/admission
Package admission provides the admission webhooks for KubeadmConfig and KubeadmConfigTemplate.
Package admission provides the admission webhooks for KubeadmConfig and KubeadmConfigTemplate.
kubeadm/webhooks/conversion
Package conversion provides conversion code for all APIs of the kubeadm bootstrap CAPI provider.
Package conversion provides conversion code for all APIs of the kubeadm bootstrap CAPI provider.
cmd
clusterctl command
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/convert
Package convert provides a converter for CAPI core resources between API versions.
Package convert provides a converter for CAPI core resources between API versions.
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/internal/templates
Package templates provides templates for descriptions and examples.
Package templates provides templates for descriptions and examples.
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/internal/scheme
Package scheme implements clusterctl scheme functionality.
Package scheme implements clusterctl scheme functionality.
clusterctl/internal/test
Package test implements test functionality.
Package test implements test functionality.
clusterctl/internal/test/providers/bootstrap
Package bootstrap defines the types for a generic bootstrap provider used for tests.
Package bootstrap defines the types for a generic bootstrap provider used for tests.
clusterctl/internal/test/providers/controlplane
Package controlplane defines the types for a generic control plane provider used for tests.
Package controlplane defines the types for a generic control plane provider used for tests.
clusterctl/internal/test/providers/external
Package external defines the types for a generic external provider used for tests.
Package external defines the types for a generic external provider used for tests.
clusterctl/internal/test/providers/infrastructure
Package infrastructure defines the types for a generic infrastructure provider used for tests.
Package infrastructure defines the types for a generic infrastructure provider used for tests.
clusterctl/internal/util
Package util implements clusterctl utility functions.
Package util implements clusterctl utility functions.
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.
crdmigrator
Package crdmigrator contains the CRD migrator implementation.
Package crdmigrator contains the CRD migrator implementation.
crdmigrator/test/t1/v1beta1
Package v1beta1 contains test types.
Package v1beta1 contains test types.
crdmigrator/test/t2/v1beta1
Package v1beta1 contains test types.
Package v1beta1 contains test types.
crdmigrator/test/t2/v1beta2
Package v1beta2 contains test types.
Package v1beta2 contains test types.
crdmigrator/test/t3/v1beta1
Package v1beta1 contains test types.
Package v1beta1 contains test types.
crdmigrator/test/t3/v1beta2
Package v1beta2 contains test types.
Package v1beta2 contains test types.
crdmigrator/test/t4/v1beta2
Package v1beta2 contains test types.
Package v1beta2 contains test types.
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 command
main is the main package for the Kubeadm Control Plane provider.
main is the main package for the Kubeadm Control Plane provider.
kubeadm/pkg
Package pkg contains code for the Kubeadm Control Plane.
Package pkg contains code for the Kubeadm Control Plane.
kubeadm/pkg/desiredstate
Package desiredstate contains utils to compute the desired state of a Machine.
Package desiredstate contains utils to compute the desired state of a Machine.
kubeadm/pkg/etcd
Package etcd provides a connection to an etcd member.
Package etcd provides a connection to an etcd member.
kubeadm/pkg/etcd/fake
Package fake implements testing fakes.
Package fake implements testing fakes.
kubeadm/pkg/etcd/util
Package util implements etcd utility functions.
Package util implements etcd utility functions.
kubeadm/pkg/proxy
Package proxy implements kubeadm proxy functionality.
Package proxy implements kubeadm proxy functionality.
kubeadm/reconcilers/kubeadmcontrolplane
Package kubeadmcontrolplane implements the Kubeadm controllers.
Package kubeadmcontrolplane implements the Kubeadm controllers.
kubeadm/setup
Package setup provides utils for the setup of CABPK.
Package setup provides utils for the setup of CABPK.
kubeadm/webhooks/admission
Package admission provides the admission webhook for KubeadmControlPlane scale subresource.
Package admission provides the admission webhook for KubeadmControlPlane scale subresource.
kubeadm/webhooks/conversion
Package conversion provides conversion code for all APIs of the kubeadm controlplane CAPI provider.
Package conversion provides conversion code for all APIs of the kubeadm controlplane CAPI provider.
main is the main package for the Cluster API Core Provider.
main is the main package for the Cluster API Core Provider.
reconcilers/cluster
Package cluster implements cluster controller.
Package cluster implements cluster controller.
reconcilers/clusterclass
Package clusterclass implements the clusterclass controller.
Package clusterclass implements the clusterclass controller.
reconcilers/clusterresourceset
Package clusterresourceset implements the ClusterResourceSet controller.
Package clusterresourceset implements the ClusterResourceSet controller.
reconcilers/clusterresourceset/predicates
Package predicates implements predicate functionality.
Package predicates implements predicate functionality.
reconcilers/clusterresourcesetbinding
Package clusterresourcesetbinding implements the ClusterResourceSetBinding controller.
Package clusterresourcesetbinding implements the ClusterResourceSetBinding controller.
reconcilers/extensionconfig
Package extensionconfig implements the ExtensionConfig controller.
Package extensionconfig implements the ExtensionConfig controller.
reconcilers/machine
Package machine implements machine controller.
Package machine implements machine controller.
reconcilers/machine/drain
Package drain provides a helper to cordon and drain Nodes.
Package drain provides a helper to cordon and drain Nodes.
reconcilers/machinedeployment
Package machinedeployment implements machinedeployment controller.
Package machinedeployment implements machinedeployment controller.
reconcilers/machinedeployment/mdutil
Package mdutil implements MachineDeployment utilities meant to be consumed internally by the controller.
Package mdutil implements MachineDeployment utilities meant to be consumed internally by the controller.
reconcilers/machinehealthcheck
Package machinehealthcheck implements machinehealthcheck controller.
Package machinehealthcheck implements machinehealthcheck controller.
reconcilers/machinepool
Package machinepool implements the MachinePool controller.
Package machinepool implements the MachinePool controller.
reconcilers/machineset
Package machineset implements machineset controller.
Package machineset implements machineset controller.
reconcilers/topology/cluster
Package cluster implements the cluster topology controller.
Package cluster implements the cluster topology controller.
reconcilers/topology/cluster/patches
Package patches implement the patch engine.
Package patches implement the patch engine.
reconcilers/topology/cluster/patches/api
Package api contains the API definition for the patch engine.
Package api contains the API definition for the patch engine.
reconcilers/topology/cluster/patches/external
Package external implements the external patch generator.
Package external implements the external patch generator.
reconcilers/topology/cluster/patches/inline
Package inline implements the inline JSON patch generator.
Package inline implements the inline JSON patch generator.
reconcilers/topology/cluster/patches/variables
Package variables calculates variables for patching.
Package variables calculates variables for patching.
reconcilers/topology/cluster/structuredmerge
Package structuredmerge implements server side apply support for managed topology controllers.
Package structuredmerge implements server side apply support for managed topology controllers.
reconcilers/topology/machinedeployment
Package machinedeployment implements the machinedeployment topology controller.
Package machinedeployment implements the machinedeployment topology controller.
reconcilers/topology/machineset
Package machineset implements the machineset topology controller.
Package machineset implements the machineset topology controller.
setup
Package setup provides utils for the setup of CABPK.
Package setup provides utils for the setup of CABPK.
webhooks/admission
Package admission contains external webhook implementations for some of our API types.
Package admission contains external webhook implementations for some of our API types.
webhooks/admission/test
Package test contains integration tests for webhooks.
Package test contains integration tests for webhooks.
webhooks/admission/testutil
Package testutil includes the utility functions for testing webhooks.
Package testutil includes the utility functions for testing webhooks.
webhooks/conversion
Package conversion provides conversion code for all APIs of the core CAPI provider.
Package conversion provides conversion code for all APIs of the core CAPI provider.
exp
Package exp implements experimental code.
Package exp implements experimental code.
runtime/client
Package client provides the Runtime SDK client.
Package client provides the Runtime SDK client.
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.
Package feature implements feature functionality.
Package feature implements feature functionality.
hack
scripts/verify/boilerplate/test
Package test contains test boilerplate.
Package test contains test boilerplate.
tools module
internal
contract
Package contract provides support for the ClusterReconciler to handle with providers objects according to the Cluster API contract.
Package contract provides support for the ClusterReconciler to handle with providers objects according to the Cluster API contract.
goproxy
Package goproxy implements a goproxy client.
Package goproxy implements a goproxy client.
goproxy/test
Package test contains test util functions for goproxy.
Package test contains test util functions for goproxy.
hooks
Package hooks has helper functions for Runtime Hooks.
Package hooks has helper functions for Runtime Hooks.
runtime/client
Package client provides the Runtime SDK client.
Package client provides the Runtime SDK client.
runtime/client/fake
Package fake is used to help with testing functions that need a fake RuntimeClient.
Package fake is used to help with testing functions that need a fake RuntimeClient.
runtime/metrics
Package metrics provides functions for creating Runtime SDK related metrics.
Package metrics provides functions for creating Runtime SDK related metrics.
runtime/registry
Package registry implements the RuntimeSDK registry.
Package registry implements the RuntimeSDK registry.
runtime/test/v1alpha1
Package v1alpha1 contains types for tests.
Package v1alpha1 contains types for tests.
runtime/test/v1alpha2
Package v1alpha2 contains types for tests.
Package v1alpha2 contains types for tests.
test/envtest
Package envtest contains the test environment to run integration tests.
Package envtest contains the test environment to run integration tests.
topology/check
Package check implements checks for managed topology.
Package check implements checks for managed topology.
topology/clustershim
Package clustershim contains clustershim utils.
Package clustershim contains clustershim utils.
topology/names
Package names implements name generators for managed topology.
Package names implements name generators for managed topology.
topology/ownerrefs
Package ownerrefs contains ownerref utils.
Package ownerrefs contains ownerref utils.
topology/selectors
Package selectors contains selectors utils.
Package selectors contains selectors utils.
topology/upgrade
Package upgrade implements test scenarios to validate the behavior of the topology controller after upgrades, changes in the API, changes in the webhooks, etc.
Package upgrade implements test scenarios to validate the behavior of the topology controller after upgrades, changes in the API, changes in the webhooks, etc.
topology/upgrade/test/t1/v1beta1
Package v1beta1 contains test types.
Package v1beta1 contains test types.
topology/upgrade/test/t1/webhook
Package webhook define webhooks for the v1beta1 API.
Package webhook define webhooks for the v1beta1 API.
topology/upgrade/test/t2/v1beta1
Package v1beta1 contains test types.
Package v1beta1 contains test types.
topology/upgrade/test/t2/v1beta2
Package v1beta2 contains test types.
Package v1beta2 contains test types.
topology/upgrade/test/t2/webhook
Package webhook define webhooks for the v1beta2 API.
Package webhook define webhooks for the v1beta2 API.
topology/variables
Package variables implements validation and defaulting for ClusterClass variables.
Package variables implements validation and defaulting for ClusterClass variables.
util/compare
Package compare contains utils to compare objects.
Package compare contains utils to compare objects.
util/hash
Package hash provides utils to calculate hashes.
Package hash provides utils to calculate hashes.
util/inplace
Package inplace provides utils for in-place updates.
Package inplace provides utils for in-place updates.
util/patch
Package patch contains patch utils.
Package patch contains patch utils.
util/ssa
Package ssa contains utils related to Server-Side-Apply.
Package ssa contains utils related to Server-Side-Apply.
util/taints
Package taints implements taint helper functions.
Package taints implements taint helper functions.
util/tree
Package tree implements utils for representing a tree in clusterctl commands or E2E tests.
Package tree implements utils for representing a tree in clusterctl commands or E2E tests.
util/version
Package version provides helpers for aggregating and sorting Kubernetes versions.
Package version provides helpers for aggregating and sorting Kubernetes versions.
test module
framework 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 utils for metav1.Conditions that will be used starting with the v1beta2 API.
Package conditions implements utils for metav1.Conditions that will be used starting with the v1beta2 API.
conditions/deprecated/v1beta1
Package v1beta1 implements condition utilities.
Package v1beta1 implements condition utilities.
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.
controller
Package controller provides utils for controller-runtime.
Package controller provides utils for controller-runtime.
conversion
Package conversion implements conversion utilities.
Package conversion implements conversion utilities.
deprecated/v1beta1/conditions
Package conditions implements condition utilities.
Package conditions implements condition utilities.
deprecated/v1beta1/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.
deprecated/v1beta1/patch
Package patch implements patch utilities.
Package patch implements patch utilities.
deprecated/v1beta1/paused
Package paused implements paused helper functions.
Package paused implements paused helper functions.
deprecated/v1beta1/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.
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.
index
Package index provides indexes for the api.
Package index provides indexes for the api.
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 utilities.
Package resource implements resource utilities.
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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL