How to run kzero (self-hosted)
September 2, 2026 · View on GitHub
← Back to the repository README.
Pick a mode below. Install the CLI from kzero releases (v1.1.1 recommended). This repo holds operator docs and examples only.
| Directory | When to use |
|---|---|
standalone/ | Release binary on a bastion — cron, systemd timer, one-shot down/up/reset (no Docker) |
docker/ | docker run with ghcr.io/hrodrig/kzero — analyze / version; not a full live runtime without host kubectl / helm |
examples/ | Minimal kzero.sample.yml, full-reset-example/, reference hooks, infra-probe Redis assets |
in-cluster/ | Job + ServiceAccount + RBAC + ConfigMap — run kzero inside the cluster (native scale, no kubeconfig mount) |
docs/ | CI/cron, KZERO_RUN_MODE, YES-gated wrappers, safety checklist · full-reset validation |
../testing/kind/ | Disposable kind cluster + kzero live smoke (make test-kind-e2e) |
../testing/kind/in-cluster/ | kind + kzero Jobs in-cluster (make test-kind-in-cluster) |
Upstream application: hrodrig/kzero — Go CLI, SPEC, tests, make release-check, ghcr.io/hrodrig/kzero images, brew install hrodrig/kzero/kzero.
Not shipped here: Docker Compose, a Helm chart that installs kzero as a long-running in-cluster controller, or bundled kubectl / helm inside the runner image. In-cluster Jobs (reference manifests under run/in-cluster/) use the distroless GHCR image with run.execution: native only; release.* and shell hooks still need host tooling or future Helm SDK / exec steps in kzero.
Use a published image tag that matches your desired kzero release (in-cluster examples pin v1.1.1).