Installation¶
Prerequisites¶
Before using Operator Chaos, ensure you have the following:
Required for All Modes¶
- Go 1.25+ - Check
go.modin the repository for the exact version required - controller-runtime v0.23+ - Required for SDK and Fuzz modes
No cluster? You can still use operator-chaos
Several commands work entirely offline: validate, types, init, and preflight --local. You can validate experiment YAML, scaffold new experiments, and lint knowledge models without any cluster access. See the Offline vs Live Capabilities table for the full list.
Required for CLI and SDK Modes¶
- Kubernetes/OpenShift cluster - Required for running live experiments (
run,suite,preflightwithout--local,clean) - Not required for fuzz testing (uses a fake client) or offline commands listed above
- cluster-admin RBAC - CLI experiments perform destructive operations including:
- Pod deletion
- RBAC revocation
- Webhook mutation
- NetworkPolicy creation
RBAC Requirements
CLI experiments require cluster-admin privileges because they perform intentionally destructive chaos operations. Never run experiments on production clusters without proper safeguards.
Installation¶
Install the CLI using Go:
This will install the operator-chaos binary to your $GOPATH/bin directory.
Container Images¶
Pre-built container images are available at:
Use these images for running the chaos controller in Kubernetes or for CI/CD pipelines.
Verify Installation¶
Check that the installation was successful:
You should see the version information for the installed CLI.
Environment Guides¶
Set up your cluster for chaos testing. Each environment supports different fidelity tiers:
| Environment | Tiers | Best For |
|---|---|---|
| kind | 1 | CI pipelines, fast dev loops |
| k3s | 1-2 | Real NetworkPolicy enforcement, lightweight CI |
| OCP / ROSA | 1-6 | Full fidelity: OLM, Routes, SCCs, webhooks |
| OKD | 1-6 | Free OCP-compatible, community testing |
Next Steps¶
Choose your usage mode based on your testing needs:
- CLI Quickstart - Run structured experiments against a live cluster
- SDK Quickstart - Inject API-level faults in your operator code
- Fuzz Quickstart - Automated fault exploration during development