Skip to content

Latest commit

 

History

History
41 lines (25 loc) · 3.29 KB

litmus_scenarios.md

File metadata and controls

41 lines (25 loc) · 3.29 KB

Litmus Scenarios

Kraken consumes Litmus under the hood for some scenarios

Official Litmus documentation and to read more information on specifics of Litmus resources can be found here

Litmus Chaos Custom Resources

There are 3 custom resources that are created during each Litmus scenario. Below is a description of the resources:

  • ChaosEngine: A resource to link a Kubernetes application or Kubernetes node to a ChaosExperiment. ChaosEngine is watched by Litmus' Chaos-Operator which then invokes Chaos-Experiments
  • ChaosExperiment: A resource to group the configuration parameters of a chaos experiment. ChaosExperiment CRs are created by the operator when experiments are invoked by ChaosEngine.
  • ChaosResult : A resource to hold the results of a chaos-experiment. The Chaos-exporter reads the results and exports the metrics into a configured Prometheus server.

Understanding Litmus Scenarios

To run Litmus scenarios we need to apply 3 different resources/yaml files to our cluster

  1. Chaos experiments contain the actual chaos details of a scenario

    i. This is installed automatically by Kraken (does not need to be specified in kraken scenario configuration)

  2. Service Account: should be created to allow chaosengine to run experiments in your application namespace. Usually sets just enough permissions to a specific namespace to be able to run the experiment properly

    i. This can be defined using either a link to a yaml file or a downloaded file in the scenarios folder

  3. Chaos Engine connects the application instance to a Chaos Experiment. This is where you define the specifics of your scenario; ie: the node or pod name you want to cause chaos within

    i. This is a downloaded yaml file in the scenarios folder, full list of scenarios can be found here

NOTE: By default all chaos experiments will be installed based on the version you give in the config file.

Adding a new Litmus based scenario is as simple as adding references to 2 new yaml files (the Service Account and Chaos engine files for your scenario ) in the Kraken config.

Supported scenarios

Following are the start of scenarios for which a chaos scenario config exists today.

Scenario Description Working
Node CPU Hog Chaos scenario that hogs up the CPU on a defined node for a specific amount of time ✔️
Node Memory Hog Chaos scenario that hogs up the memory on a defined node for a specific amount of time ✔️
Node IO Hog Chaos scenario that hogs up the IO on a defined node for a specific amount of time ✔️