Skip to main content
Version: 2.5.0

ChaosCenter Cluster Scope Installation


Before deploying LitmusChaos, make sure the following items are there

  • Kubernetes 1.17 or later

  • A Persistent volume of 20GB


    Recommend to have a Persistent volume(PV) of 20GB, You can start with 1GB for test purposes as well. This PV is used as persistent storage to store the chaos config and chaos-metrics in the Portal. By default, litmus install would use the default storage class to allocate the PV. Provide this value

  • Helm3 or kubectl


Users looking to use Litmus for the first time have two options available to them today. One way is to use a hosted Litmus service like ChaosNative Litmus Cloud. Alternatively, users looking for some more flexibility can install Litmus into their own Kubernetes cluster.

Users choosing the self-hosted option can refer to our Install and Configure docs for installing alternate versions and more detailed instructions.

Installation of Self-Hosted Litmus can be done using either of the below methods:
  • Helm3 chart
  • Kubectl yaml spec file

  • Refer to the below details for Self-Hosted Litmus installation.

    Install Litmus using Helm

    The helm chart will install all the required service account configuration and ChaosCenter.

    The following steps will help you install Litmus ChaosCenter via helm.

    Step-1: Add the litmus helm repository

    helm repo add litmuschaos
    helm repo list

    Step-2: Create the namespace on which you want to install Litmus ChaosCenter

    • The ChaosCenter can be placed in any namespace, but for this scenario we are choose litmus as the namespace.
    kubectl create ns litmus

    Step-3: Install Litmus ChaosCenter

    helm install chaos litmuschaos/litmus --namespace=litmus
    Expected Output
    NAME: chaos
    LAST DEPLOYED: Tue Jun 15 19:20:09 2021
    NAMESPACE: litmus
    STATUS: deployed
    TEST SUITE: None
    Thank you for installing litmus 😀

    Your release is named chaos and its installed to namespace: litmus.

    Visit to find more info.

    Note: Litmus uses Kubernetes CRDs to define chaos intent. Helm3 handles CRDs better than Helm2. Before you start running a chaos experiment, verify if Litmus is installed correctly.

    Install Litmus using kubectl

    Install Litmus ChaosCenter

    Applying the manifest file will install all the required service account configuration and ChaosCenter.

    kubectl apply -f

    Verify your installation

    Verify if the frontend, server, and database pods are running

    • Check the pods in the namespace where you installed Litmus:

      kubectl get pods -n litmus
      Expected Output
      NAME                                    READY   STATUS  RESTARTS  AGE
      litmusportal-frontend-97c8bf86b-mx89w 1/1 Running 2 6m24s
      litmusportal-server-5cfbfc88cc-m6c5j 2/2 Running 2 6m19s
      mongo-0 1/1 Running 0 6m16s
    • Check the services running in the namespace where you installed Litmus:

      kubectl get svc -n litmus
      Expected Output
      NAME                            TYPE        CLUSTER-IP      EXTERNAL-IP PORT(S)                       AGE
      litmusportal-frontend-service NodePort <none> 9091:30229/TCP 7m14s
      litmusportal-server-service NodePort <none> 9002:30479/TCP,9003:31949/TCP 7m8s
      mongo-service ClusterIP <none> 27017/TCP 7m6s

    Accessing the ChaosCenter

    To setup and login to ChaosCenter expand the available services just created and copy the PORT of the litmusportal-frontend-service service

    kubectl get svc -n litmus
    Expected Output
    NAME                            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                         AGE
    chaos-litmus-portal-mongo ClusterIP <none> 27017/TCP 2m
    litmusportal-frontend-service NodePort <none> 9091:30385/TCP 2m
    litmusportal-server-service NodePort <none> 9002:32456/TCP,9003:31160/TCP 2m

    Note: In this case, the PORT for litmusportal-frontend-service is 30385. Yours will be different.

    Once you have the PORT copied in your clipboard, simply use your IP and PORT in this manner <NODEIP>:<PORT> to access the Litmus ChaosCenter.

    For example:

    Where is my NodeIP and 30385 is the frontend service PORT. If using a LoadBalancer, the only change would be to provide a <LoadBalancerIP>:<PORT>. Learn more about how to access ChaosCenter with LoadBalancer

    You should be able to see the Login Page of Litmus ChaosCenter. The default credentials are

    Username: admin
    Password: litmus

    By default you are assigned with a default project with Owner permissions.

    Verify Successful Registration of the Self Agent

    Once the project is created, the cluster is automatically registered as a chaos target via installation of ChaosAgents. This is represented as Self-Agent in ChaosCenter.

    kubectl get pods -n litmus
    NAME                                     READY   STATUS    RESTARTS   AGE
    chaos-exporter-547b59d887-4dm58 1/1 Running 0 5m27s
    chaos-operator-ce-84ddc8f5d7-l8c6d 1/1 Running 0 5m27s
    event-tracker-5bc478cbd7-xlflb 1/1 Running 0 5m28s
    litmusportal-frontend-97c8bf86b-mx89w 1/1 Running 0 15m
    litmusportal-server-5cfbfc88cc-m6c5j 2/2 Running 1 15m
    mongo-0 1/1 Running 0 15m
    subscriber-958948965-qbx29 1/1 Running 0 5m30s
    workflow-controller-78fc7b6c6-w82m7 1/1 Running 0 5m32s


    Learn more