# Install clusterctl with Homebrew, Nix, zypper, winget

Home for the Cluster Management API work, a subproject of sig-cluster-lifecycle. Version 1.13.4 via Homebrew; verified 2026-07-27. Also installable with nix: nix profile install nixpkgs#clusterctl.

## Install

```sh
sudo av install brew:clusterctl
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install clusterctl
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#clusterctl
```

  Evidence: nixpkgs package indexes: pkgs/by-name/cl/clusterctl/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- zypper (92%):

```sh
sudo zypper install clusterctl
```

  Evidence: openSUSE Tumbleweed package metadata: clusterctl from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

### Windows

- winget (92%):

```sh
winget install --id Kubernetes.clusterctl -e
```

  Evidence: Windows Package Manager source index: Kubernetes.clusterctl from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:clusterctl
- **Package manager:** Homebrew
- **Version:** 1.13.4
- **Source summary:** Home for the Cluster Management API work, a subproject of sig-cluster-lifecycle
- **Homepage:** <https://cluster-api.sigs.k8s.io>
- **Repository:** <https://github.com/kubernetes-sigs/cluster-api>
- **Last updated:** 2026-07-27T22:04:02+02:00
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- clusterctl (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 1.13.4
## Project history and usage

clusterctl is the command-line tool for bootstrapping and managing Kubernetes Cluster API providers and management clusters.

### Project history

The Cluster API project was started by Kubernetes SIG Cluster Lifecycle to provide declarative APIs and tooling for provisioning, upgrading, and operating multiple Kubernetes clusters.

clusterctl became the user-facing CLI for that project. The official docs say it handles the lifecycle of a Cluster API management cluster, provides a simple day-1 experience, fetches provider component YAML, installs providers, and encodes best practices for provider management and upgrades.

### Adoption history

clusterctl adoption follows Cluster API adoption across infrastructure providers. The docs describe default provider repositories sponsored by SIG Cluster Lifecycle and a provider contract that lets infrastructure, bootstrap, and control-plane providers publish release assets for clusterctl.

The input package facts show distribution through Homebrew, Nix, winget, and zypper, which matches its role as a cross-platform Kubernetes operations CLI.

### How it is used

Common commands include `clusterctl init` for management-cluster initialization, `clusterctl generate cluster` for workload-cluster templates, `clusterctl move` for moving Cluster API objects between management clusters, and `clusterctl upgrade plan/apply` for provider upgrades.

clusterctl uses `$XDG_CONFIG_HOME/cluster-api/clusterctl.yaml` for provider repository configuration, variable substitution values, image overrides, and options such as log level or version-check behavior.

### Why package nerds care

clusterctl matters to package maintainers because it is the small local binary that wires a large Kubernetes provider ecosystem together: it discovers releases, fetches YAML assets, talks to GitHub or Go proxies, and applies provider contracts across platforms.

It is also a classic modern infrastructure CLI: a single executable distributed by OS package managers while its real work coordinates remote releases, Kubernetes manifests, and cluster lifecycle state.

### Timeline

- 2019: Cluster API GitHub releases include early v0.1.x and v0.3.x releases.
- 2021: Cluster API v1.0.0 was published.
- 2024: Cluster API v1.7 and v1.8 release candidates were published.
- 2026: The Cluster API book documents v1.13 and current clusterctl behavior.

### Related projects

- Cluster API is the parent project for clusterctl.
- kubeadm is discussed in the official Cluster API introduction as prior SIG Cluster Lifecycle tooling that reduced Kubernetes bootstrap complexity.
- Cluster API providers such as Cluster API Provider AWS implement the provider contracts that clusterctl consumes.

### Sources

- <https://cluster-api.sigs.k8s.io/introduction>
- <https://cluster-api.sigs.k8s.io/clusterctl/overview>
- <https://cluster-api.sigs.k8s.io/clusterctl/configuration>
- <https://github.com/kubernetes-sigs/cluster-api/releases>


## Security Notes

infrastructure mutation or orchestration signal.

- **Geiger risk:** orange / medium
- infrastructure mutation or orchestration signal


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: $XDG_CONFIG_HOME/cluster-api/clusterctl.yaml
## Other Package-Manager Records

- Nix - clusterctl: normalized package name match | nixpkgs package indexes: pkgs/by-name/cl/clusterctl/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- zypper - clusterctl - 1.13.4-1.2: normalized package name match | openSUSE Tumbleweed package metadata: clusterctl from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | CLI tool to handle the lifecycle of a Cluster API management cluster | https://github.com/kubernetes-sigs/cluster-api
- zypper - clusterctl-bash-completion - 1.13.4-1.2: normalized package name match | openSUSE Tumbleweed package metadata: clusterctl-bash-completion from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Bash Completion for clusterctl | https://github.com/kubernetes-sigs/cluster-api
- zypper - clusterctl-fish-completion - 1.13.4-1.2: normalized package name match | openSUSE Tumbleweed package metadata: clusterctl-fish-completion from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Fish Completion for clusterctl | https://github.com/kubernetes-sigs/cluster-api
- zypper - clusterctl-zsh-completion - 1.13.4-1.2: normalized package name match | openSUSE Tumbleweed package metadata: clusterctl-zsh-completion from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Zsh Completion for clusterctl | https://github.com/kubernetes-sigs/cluster-api
- winget - Kubernetes.clusterctl: normalized package name match | Windows Package Manager source index: Kubernetes.clusterctl from https://cdn.winget.microsoft.com/cache/source.msix


## Combined YAML source

View the package source record on GitHub. [combined/clusterctl.yml](https://github.com/mxcl/pkgdb/blob/main/combined/clusterctl.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated configuration and credential file locations
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
