Skip to main content

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+
  • kubectl configured 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:

ValueDefaultDescription
operator.replicaCount1Number of operator replicas
operator.image.taglatestOperator image tag
daemon.image.taglatestDaemon image tag
api.enabledtrueDeploy the REST API
api.service.typeClusterIPAPI service type
webui.enabledtrueDeploy the web UI
rbac.createtrueCreate RBAC resources
serviceAccount.createtrueCreate 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.

Next steps