clusterctl
TLDR
Initialize management cluster
$ clusterctl init --infrastructure [aws]
Initialize with specific version$ clusterctl init --infrastructure [aws:v2.0.0]
Generate cluster template$ clusterctl generate cluster [mycluster] --kubernetes-version [v1.28.0]
Get workload cluster kubeconfig$ clusterctl get kubeconfig [mycluster]
Upgrade providers$ clusterctl upgrade apply --contract [v1beta1]
Move resources between clusters$ clusterctl move --to-kubeconfig [target.kubeconfig]
Delete provider$ clusterctl delete --infrastructure [aws]
SYNOPSIS
clusterctl command [options]
DESCRIPTION
clusterctl manages Kubernetes Cluster API management clusters. Installs providers, generates cluster templates, and handles lifecycle operations. Transforms Kubernetes clusters into management clusters.
COMMANDS
init
Install Cluster API componentsgenerate cluster
Generate cluster templategenerate yaml
Process YAML templatesget kubeconfig
Get workload cluster kubeconfigupgrade plan
Show upgrade recommendationsupgrade apply
Apply provider upgradesmove
Move resources between clustersdelete
Delete providersdescribe cluster
Describe cluster resources
INIT OPTIONS
--infrastructure provider
Infrastructure provider (aws, azure, vsphere, etc.)--bootstrap provider
Bootstrap provider--control-plane provider
Control plane provider--target-namespace ns
Target namespace for providers--core provider
Core provider version
CONFIGURATION
Config file: ~/.cluster-api/clusterctl.yaml
CAVEATS
Set GITHUB_TOKEN to avoid API rate limiting. Requires kubectl configured for target cluster. Uses go proxy for version detection.


