KubeAid CLI helps you operate KubeAid managed Kubernetes cluster lifecycle in a GitOps native way.
KubeAid CLI is a thin client that proxies cluster and devenv commands to a containerized KubeAid Core engine. It pulls the matching ghcr.io/obmondo/kubeaid-core image, sets up Docker networking, mounts config files and SSH keys, and streams output back to your terminal.
- Cluster lifecycle management — bootstrap, upgrade, recover, test, and delete Kubernetes clusters
- Development environments — spin up local K3D-based dev clusters
- Multi-cloud support — AWS, Azure, Hetzner (cloud, bare-metal, hybrid), and generic bare-metal
- GitOps native — integrates with ArgoCD, KubeAid Config repos, and sealed secrets
- Config generation — generate sample configuration files per cloud provider
curl -fsSL https://raw.githubusercontent.com/Obmondo/kubeaid-cli/main/install.sh | shSupports x86_64 and arm64 on Linux and macOS. Installs to /usr/local/bin (may prompt for sudo).
nix profile install github:Obmondo/kubeaid-clibrew install Obmondo/kubeaid-cli/kubeaid-cligo install github.com/Obmondo/kubeaid-bootstrap-script/cmd/kubeaid-cli@latest- Docker — must be installed and running (KubeAid Core runs as a container)
- SSH agent —
ssh-agentwith your keys loaded (SSH_AUTH_SOCKmust be set)
-
Generate sample config files for your cloud provider:
kubeaid-cli config generate <aws|azure|hetzner|bare-metal|local>
-
Edit the generated
general.yamlandsecrets.yamlin the output directory. -
Bootstrap a cluster:
kubeaid-cli cluster bootstrap --configs-directory ./outputs/configs/<provider>/
kubeaid-cli [command] [flags]
| Command | Description |
|---|---|
config generate <provider> |
Generate sample general and secrets config files |
devenv create |
Create a local development environment |
cluster bootstrap |
Bootstrap a new Kubernetes cluster |
cluster upgrade <provider> |
Upgrade an existing cluster |
cluster recover <provider> |
Recover a cluster |
cluster test |
Run tests against a cluster |
cluster delete |
Delete a provisioned cluster |
version |
Print version, commit, and build date |
| Flag | Description |
|---|---|
--debug |
Enable debug logging |
--configs-directory |
Path to directory containing general.yaml and secrets.yaml |
| Provider | Bootstrap | Upgrade | Recover | Delete |
|---|---|---|---|---|
| AWS | Yes | Yes | Yes | Yes |
| Azure | Yes | Yes | Yes | Yes |
| Hetzner Cloud | Yes | — | — | Yes |
| Hetzner Bare Metal | Yes | — | — | Yes |
| Hetzner Hybrid | Yes | — | — | Yes |
| Bare Metal | Yes | — | — | Yes |
| Local (K3D) | Yes | — | — | — |
KubeAid CLI uses two YAML config files:
general.yaml— cluster settings, cloud provider config, ArgoCD deploy keys, Git repo URLs, node groups, etc.secrets.yaml— cloud credentials, tokens, and other sensitive values.
See docs/config-reference.md for the full configuration reference.
See docs/DEVELOPMENT.md for setup instructions.
# Build the CLI binary
make build-cli
# Build the KubeAid Core container image
make build-image
# Run linter
make lint