sigs.k8s.io/cluster-api@v1.7.1/docs/book/src/clusterctl/overview.md (about) 1 # Overview of clusterctl 2 3 The `clusterctl` CLI tool handles the lifecycle of a Cluster API [management cluster]. 4 5 The `clusterctl` command line interface is specifically designed for providing a simple "day 1 experience" and a 6 quick start with Cluster API. It automates fetching the YAML files defining [provider components] and installing them. 7 8 Additionally it encodes a set of best practices in managing providers, that helps the user in avoiding 9 mis-configurations or in managing day 2 operations such as upgrades. 10 11 Below you can find a list of main clusterctl commands: 12 13 * [`clusterctl init`](commands/init.md) Initialize a management cluster. 14 * [`clusterctl upgrade plan`](commands/upgrade.md#upgrade-plan) Provide a list of recommended target versions for upgrading Cluster API providers in a management cluster. 15 * [`clusterctl upgrade apply`](commands/upgrade.md#upgrade-apply) Apply new versions of Cluster API core and providers in a management cluster. 16 * [`clusterctl delete`](commands/delete.md) Delete one or more providers from the management cluster. 17 * [`clusterctl generate cluster`](commands/generate-cluster.md) Generate templates for creating workload clusters. 18 * [`clusterctl generate yaml`](commands/generate-yaml.md) Process yaml using clusterctl's yaml processor. 19 * [`clusterctl get kubeconfig`](commands/get-kubeconfig.md) Gets the kubeconfig file for accessing a workload cluster. 20 * [`clusterctl move`](commands/move.md) Move Cluster API objects and all their dependencies between management clusters. 21 * [`clusterctl alpha rollout`](commands/alpha-rollout.md) Manages the rollout of Cluster API resources. For example: MachineDeployments. 22 23 For the full list of clusterctl commands please refer to [commands](commands/commands.md). 24 25 ### Avoiding GitHub rate limiting 26 27 While using providers hosted on GitHub, clusterctl is calling GitHub API which are rate limited; for normal usage free tier is enough but when using clusterctl extensively users might hit the rate limit. 28 29 To avoid rate limiting for the public repos set the `GITHUB_TOKEN` environment variable. To generate a token [follow this](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) documentation. The token only needs `repo` scope for clusterctl. 30 31 Per default `clusterctl` will use a go proxy to detect the available versions to prevent additional 32 API calls to the GitHub API. It is possible to configure the go proxy url using the `GOPROXY` variable as 33 for go itself (defaults to `https://proxy.golang.org`). 34 To immediately fallback to the GitHub client and not use a go proxy, the environment variable could get set to 35 `GOPROXY=off` or `GOPROXY=direct`. 36 If a provider does not follow Go's semantic versioning, `clusterctl` may fail when detecting the correct version. 37 In such cases, disabling the go proxy functionality via `GOPROXY=off` should be considered. 38 39 # Installing clusterctl 40 Instructions are available in the [Quick Start](../user/quick-start.md#install-clusterctl). 41 42 <!-- links --> 43 [management cluster]: ../reference/glossary.md#management-cluster 44 [provider components]: ../reference/glossary.md#provider-components