Installation
ChaosPlane runs on Kubernetes and is installed via Helm. This guide walks you through a production-ready installation.
Prerequisites
- Kubernetes 1.25+
- Helm 3.10+
kubectlconfigured to talk to your cluster- Cluster-admin permissions (the operator needs RBAC to manage pods, nodes, and CRDs)
Add the Helm repository
helm repo add chaosplane https://chaosplane-hq.github.io/helm-charts
helm repo update
Install ChaosPlane
The chart installs three components: the operator, the daemon DaemonSet, and the platform API.
helm install chaosplane chaosplane/chaosplane \
--namespace chaosplane \
--create-namespace \
--set operator.replicaCount=2 \
--set api.enabled=true \
--set webui.enabled=true
Minimal install (operator only)
If you only want the operator and daemon without the web UI or REST API:
helm install chaosplane chaosplane/chaosplane \
--namespace chaosplane \
--create-namespace \
--set api.enabled=false \
--set webui.enabled=false
Verify the installation
kubectl get pods -n chaosplane
You should see output like:
NAME READY STATUS RESTARTS AGE
chaosplane-operator-7d9f8b6c4-xk2pq 1/1 Running 0 60s
chaosplane-operator-7d9f8b6c4-mn8rt 1/1 Running 0 60s
chaosplane-daemon-4xvzp 1/1 Running 0 60s
chaosplane-daemon-9kqwl 1/1 Running 0 60s
chaosplane-daemon-r7mns 1/1 Running 0 60s
chaosplane-api-6b8d9f7c5-p2qrs 1/1 Running 0 60s
chaosplane-webui-5c7f8d9b4-t3uvw 1/1 Running 0 60s
The daemon runs as a DaemonSet, so you'll see one pod per node.
Install the CLI
chaosctl is the command-line tool for managing experiments.
macOS
brew install chaosplane-hq/tap/chaosctl
Linux
curl -sSL https://github.com/chaosplane-hq/chaosplane/releases/latest/download/chaosctl-linux-amd64 \
-o /usr/local/bin/chaosctl
chmod +x /usr/local/bin/chaosctl
Verify
chaosctl version
Configure kubectl access
chaosctl uses your current kubeconfig context. Point it at the right cluster:
kubectl config use-context my-cluster
chaosctl get experiments
Helm chart values
Key values you can override:
| Value | Default | Description |
|---|---|---|
operator.replicaCount | 1 | Number of operator replicas |
operator.image.tag | latest | Operator image tag |
daemon.image.tag | latest | Daemon image tag |
api.enabled | true | Deploy the REST API |
api.service.type | ClusterIP | API service type |
webui.enabled | true | Deploy the web UI |
rbac.create | true | Create RBAC resources |
serviceAccount.create | true | Create service accounts |
Upgrading
helm repo update
helm upgrade chaosplane chaosplane/chaosplane -n chaosplane
Uninstalling
helm uninstall chaosplane -n chaosplane
kubectl delete namespace chaosplane
# Remove CRDs if you want a full cleanup
kubectl delete crd chaosexperiments.chaos.chaosplane.io
kubectl delete crd chaosworkflows.chaos.chaosplane.io
kubectl delete crd blastradius.chaos.chaosplane.io
warning
Deleting the CRDs removes all experiment and workflow resources from the cluster.