Using and contributing to ChaosHub
Important links
Chaos Hub is maintained at https://hub.litmuschaos.io
To contribute new ChaosCharts visit: https://github.com/litmuschaos/chaos-charts
Introduction
Litmus chaos hub is a place where the Chaos Engineering community members publish their chaos experiments. A set of related chaos experiments are bundled into a Chaos Chart
. Chaos Charts are classified into the following categories.
Generic Chaos
Chaos actions that apply to generic Kubernetes resources are classified into this category. Following chaos experiments are supported under Generic Chaos Chart
Experiment name | Description | User guide link |
---|---|---|
Container Kill | Kills the container in the application pod | container-kill |
Pod Delete | Deletes the application pod | pod-delete |
Pod Network Latency | Injects network latency into the pod | pod-network-latency |
Pod Network Loss | Injects network loss into the pod | pod-network-loss |
Node CPU Hog | Exhaust CPU resources on the Kubernetes Node | node-cpu-hog |
Node Memory Hog | Exhaust Memory resources on the Kubernetes Node | node-memory-hog |
Disk Fill | Fillup Ephemeral Storage of a Resource | disk-fill |
Disk Loss | External disk loss from the node | disk-loss |
Node Drain | Drains the node where application pod is scheduled | node-drain |
Pod CPU Hog | Consumes CPU resources on the application container | pod-cpu-hog |
Pod Memory Hog | Consumes Memory resources on the application container | pod-memory-hog |
Pod Network Corruption | Injects Network Packet Corruption into Application Pod | pod-network-corruption |
Kubelet Service Kill | Kills the kubelet service on the application node | kubelet-service-kill |
Docker Service Kill | Kills the docker service on the application node | docker-service-kill |
Node Taint | Taints the node where application pod is scheduled | node-taint |
Pod Autoscaler | Scales the application replicas and test the node autoscaling on cluster | pod-autoscaler |
Pod Network Duplication | Injects Network Packet Duplication into Application Pod | pod-network-duplication |
Pod IO Stress | Injects IO stress resources on the application container | pod-io-stress |
Node IO stress | Injects IO stress resources on the application node | node-io-stress |
Application Chaos
While Chaos Experiments under the Generic category offer the ability to induce chaos into Kubernetes resources, it is difficult to analyze and conclude if the chaos induced found a weakness in a given application. The application specific chaos experiments are built with some checks on pre-conditions and some expected outcomes after the chaos injection. The result of the chaos experiment is determined by matching the outcome with the expected outcome.
Benefits of contributing an application chaos experiment
Application developers write negative tests in their CI pipelines to test the resiliency of the applications. These negative can be converted into Litmus Chaos Experiments and contributed to ChaosHub, so that the users of the application can use them in staging/pre-production/production environments to check the resilience. Application environments vary considerably from where they are tested (CI pipelines) to where they are deployed (Production). Hence, running the same chaos tests in the user's environment will help determine the weaknesses of the deployment and fixing such weaknesses leads to increased resilience.
Following Application Chaos experiments are available on ChaosHub
Application | Description | Chaos Experiments |
---|---|---|
OpenEBS | Container Attached Storage for Kubernetes | openebs-pool-pod-failure openebs-pool-container-failure openebs-target-pod-failure openebs-target-container-failure openebs-target-network-delay openebs-target-network-loss openebs-control-plane-chaos openebs-nfs-provisioner-kill openebs-target-network-loss openebs-pool-disk-loss openebs-pool-network-loss openebs-pool-network-delay |
Kafka | Open-source stream processing software | kafka-broker-pod-failure kafka-broker-disk-failure |
CoreDns | CoreDNS is a fast and flexible DNS server that chains plugins | coredns-pod-delete |
Cassandra | Cassandra is an opensource distributed database | cassandra-pod-delete |
Platform Chaos
Chaos experiments that inject chaos into the platform resources of Kubernetes are classified into this category. Management of platform resources vary significantly from each other, Chaos Charts may be maintained separately for each platform (For example, AWS, GCP, Azure, etc)
Following Platform Chaos experiments are available on ChaosHub
Platform | Description | Chaos Experiments |
---|---|---|
AWS | Amazon Web Services platform. Includes EKS. | None |
GCP | Google Cloud Platform. Includes GKE. | None |
Azure | Microsoft Azure platform. Includes AKS. | None |