kubeaid-bootstrap-script

module
v0.20.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 20, 2026 License: AGPL-3.0

README

KubeAid CLI

Release Go Report Card

KubeAid CLI helps you operate KubeAid managed Kubernetes cluster lifecycle in a GitOps native way.

Architecture

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.

Features

  • 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

Installation

Shell script (Linux / macOS)
curl -fsSL https://raw.githubusercontent.com/Obmondo/kubeaid-cli/main/install.sh | sh

Supports x86_64 and arm64 on Linux and macOS. Installs to /usr/local/bin (may prompt for sudo).

Nix
nix profile install github:Obmondo/kubeaid-cli
Homebrew (macOS)
brew install Obmondo/kubeaid-cli/kubeaid-cli
From source
go install github.com/Obmondo/kubeaid-bootstrap-script/cmd/kubeaid-cli@latest

Prerequisites

  • Docker — must be installed and running (KubeAid Core runs as a container)
  • SSH agentssh-agent with your keys loaded (SSH_AUTH_SOCK must be set)

Quick start

  1. Generate sample config files for your cloud provider:

    kubeaid-cli config generate <aws|azure|hetzner|bare-metal|local>
    
  2. Edit the generated general.yaml and secrets.yaml in the output directory.

  3. Bootstrap a cluster:

    kubeaid-cli cluster bootstrap --configs-directory ./outputs/configs/<provider>/
    

Usage

kubeaid-cli [command] [flags]
Commands
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
Global flags
Flag Description
--debug Enable debug logging
--configs-directory Path to directory containing general.yaml and secrets.yaml

Cloud providers

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

Configuration

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.

Development

See docs/DEVELOPMENT.md for setup instructions.

Requirements
Building
# Build the CLI binary
make build-cli

# Build the KubeAid Core container image
make build-image

# Run linter
make lint

License

GNU Affero General Public License v3.0

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL