Skip to content

litmuschaos/chaos-charts

Repository files navigation

Chaos-Charts

Slack Channel GitHub Workflow Docker Pulls GitHub issues Twitter Follow YouTube Channel

This repository hosts the Litmus Chaos Charts. A set of related chaos faults are bundled into a Chaos Chart. Chaos Charts are classified into the following categories.

Kubernetes Chaos

Chaos faults that apply to Kubernetes resources are classified in this category. Following chaos faults are supported for Kubernetes:

Fault Name Description Link
Container Kill Kill one container in the application pod container-kill
Disk Fill Fill the Ephemeral Storage of the Pod disk-fill
Docker Service Kill Kill docker service of the target node docker-service-kill
Kubelet Service Kill Kill kubelet service of the target node kubelet-service-kill
Node CPU Hog Stress the cpu of the target node node-cpu-hog
Node Drain Drain the target node node-drain
Node IO Stress Stress the IO of the target node node-io-stress
Node Memory Hog Stress the memory of the target node node-memory-hog
Node Restart Restart the target node node-restart
Node Taint Taint the target node node-taint
Pod Autoscaler Scale the replicas of the target application pod-autoscaler
Pod CPU Hog Stress the CPU of the target pod pod-cpu-hog
Pod Delete Delete the target pods pod-delete
Pod DNS Spoof Spoof dns requests to desired target hostnames pod-dns-spoof
Pod DNS Error Error the dns requests of the target pod pod-dns-error
Pod IO Stress Stress the IO of the target pod pod-io-stress
Pod Memory Hog Stress the memory of the target pod pod-memory-hog
Pod Network Latency Induce the network latency in target pod pod-network-latency
Pod Network Corruption Induce the network packet corruption in target pod pod-network-corruption
Pod Network Duplication Induce the network packet duplication in target pod pod-network-duplication
Pod Network Loss Induce the network loss in target pod pod-network-loss
Pod Network Partition Disrupt network connectivity to kubernetes pods pod-network-partition

Application Chaos

While chaos faults under the Kubernetes category offer the ability to induce chaos into Kubernetes resources, it is difficult to analyze and conclude if the induced chaos found a weakness in a given application. The application specific chaos faults are built with some checks on pre-conditions and some expected outcomes after the chaos injection. The result of the chaos faults is determined by matching the outcome with the expected outcome.

Fault Category Description Link
Spring Boot Faults Injects faults in Spring Boot applications Spring Boot Faults

Platform Chaos

Chaos faults that inject chaos into the platform and infrastructure resources 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, VMWare etc.)

Following chaos faults are classified in this category:

Fault Category Description Link
AWS Faults AWS Platform specific chaos AWS Faults
Azure Faults Azure Platform specific chaos Azure Faults
GCP Faults GCP Platform specific chaos GCP Faults
VMWare Faults VMWare Platform specific chaos VMWare Faults

Installation Steps for Chart Releases

Note: Supported from release 3.0.0

  • To install the chaos faults from a specific chart for a given release, execute the following commands with the desired <release_version>, <chart_name> & <namespace>
## downloads and unzips the released source
tar -zxvf <(curl -sL https://github.com/litmuschaos/chaos-charts/archive/<release_version>.tar.gz)

## installs the chaosexperiment resources
find chaos-charts-<release_version> -name experiments.yaml | grep <chart-name> | xargs kubectl apply -n <namespace> -f
  • For example, to install the Kubernetes fault chart bundle for release 3.0.0, in the sock-shop namespace, run:
tar -zxvf <(curl -sL https://github.com/litmuschaos/chaos-charts/archive/3.0.0.tar.gz)
find chaos-charts-3.0.0 -name experiments.yaml | grep kubernetes | xargs kubectl apply -n sock-shop -f
  • If you would like to install a specific fault, replace the experiments.yaml in the above command with the relative path of the fault manifest within the parent chart. For example, to install only the pod-delete fault, run:
find chaos-charts-3.0.0 -name fault.yaml | grep 'kubernetes/pod-delete' | xargs kubectl apply -n sock-shop -f

License

FOSSA Status