Skip to main content
Version: Next

Install Litmus without ChaosCenter


This guide covers running LitmusChaos as infrastructure only: CRDs, chaos operator, and runners — without deploying the ChaosCenter UI/control plane. Use this model when experiments are created and triggered from CI/CD, GitOps, or plain kubectl, not from the portal.

If you need the full product experience (UI, multi-tenancy, GitOps from the portal), follow the standard ChaosCenter installation instead.

What you get​

ComponentRole
Litmus CRDsChaosExperiment, ChaosEngine, ChaosResult, and related APIs
chaos-operatorWatches ChaosEngine CRs and launches experiment pods
chaos-runner / experiment imagesExecute individual faults
Optional chaos-exporterExpose chaos metrics

You do not install the ChaosCenter frontend, GraphQL server, auth server, or MongoDB control-plane stack.

Prerequisites​

  • Kubernetes 1.17+ (see chart docs for the version you install)
  • Helm 3
  • kubectl configured for the target cluster
  • Permission to install CRDs and create workloads in your target namespace

Install execution plane with Helm (litmus-core)​

The litmus-core chart installs infrastructure components (operator + CRDs) without ChaosCenter.

1. Add the Helm repository​

helm repo add litmuschaos https://litmuschaos.github.io/litmus-helm/
helm repo update
helm search repo litmuschaos/litmus-core

2. Create a namespace​

kubectl create namespace litmus

3. Install litmus-core​

helm install chaos-core litmuschaos/litmus-core \
--namespace litmus

Useful options (see chart values for the full list):

# Namespace-scoped operator (when you do not want cluster-wide watch)
helm install chaos-core litmuschaos/litmus-core \
--namespace litmus \
--set operatorMode=namespace

# Enable chaos-exporter
helm install chaos-core litmuschaos/litmus-core \
--namespace litmus \
--set exporter.enabled=true

4. Verify​

kubectl get pods -n litmus
kubectl get crds | grep litmuschaos
kubectl get deploy -n litmus

You should see the chaos-operator (and exporter if enabled) Running, and Litmus CRDs registered on the cluster.

Alternative: stand-alone litmus-agent chart​

The litmus-agent chart can deploy execution-plane components. By default it is oriented toward registering with a ChaosCenter. For a center-less install, disable the registration hook:

helm install chaos-agent litmuschaos/litmus-agent \
--namespace litmus --create-namespace \
--set enablePreInstallJob=false

You may still need to adjust related flags (secrets/configmaps the chart expects). Prefer litmus-core when you only need operator + CRDs and will apply experiments yourself.

Run experiments without the UI​

With the operator installed, chaos is driven by Kubernetes APIs:

  1. Install fault definitions (ChaosExperiment CRs) for the faults you need — from litmuschaos/chaos-charts or your own catalogs.

  2. Create a ChaosEngine (and optional Argo Workflow) that references those experiments and selects your application.

  3. Apply with CI/CD or GitOps:

    kubectl apply -f chaosexperiment-pod-delete.yaml
    kubectl apply -f chaosengine-pod-delete.yaml
    kubectl get chaosengine,chaosresult -n <app-namespace> -w

For composing multi-step Argo workflows outside the portal, see Construct chaos experiment YAML without ChaosCenter.

Minimal CI pattern​

# prune: install infra once per cluster (pipeline or bootstrap job)
helm upgrade --install chaos-core litmuschaos/litmus-core -n litmus --create-namespace

# each pipeline run: apply fault + engine manifests from git
kubectl apply -f experiments/
kubectl wait --for=condition=Complete chaosengine/my-engine -n demo --timeout=300s || true
kubectl get chaosresult -n demo

Exact ChaosEngine status fields depend on the chart/CRD version; assert on the conditions your version exposes, or on the companion ChaosResult.

How this differs from ChaosCenter installs​

Without ChaosCenter (litmus-core)With ChaosCenter (litmus chart)
UI / API portalNoYes
MongoDB for portalNoYes
Who schedules chaosYou (kubectl, CI, GitOps)Portal, litmusctl, APIs
Hub / project multi-tenancyNot providedProvided
Cluster impactOperator + experiment podsControl plane + execution plane

litmusctl is primarily a ChaosCenter client. It is optional for the headless model; use it when you still operate a center elsewhere.