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