MayaData Blog

Kubernetes Chaos Engineering with LitmusChaos 0.6 release

Written by Ajesh Baby | Sep 16, 2019 3:29:09 PM

LitmusChaos 0.6 release is a significant release for LitmusChaos project. The changes in this release enable LitmusChaos project to be positioned as a framework for planning and orchestrating chaos around any cloud-native application on Kubernetes. Summary of new features in this release is:

  • New CRDs for orchestrating chaos for both developers and SREs.
  • New place to collaborate chaos logic for applications.


Releasing LitmusChaos 0.6

Chaos CRDs and Operator

CRDs are needed to define chaos, link the chaos to an application, and observe the results of chaos. The three CRDs are:

  • ChaosExperiment
  • ChaosEngine
  • ChaosResult


How does the Operator work around the chaos CRs?

The set of controllers that manage the above CRs is called ChaosOperator. This operator is implemented using the operator-sdk. LitmusChaos operator is available in operatorhub.io. The operator is installed on the Kubernetes cluster and watches for the ChaosEngine CR. As an application developer or as an SRE, you will create a ChaosEngine CR, ChaosExperiment CR. The chaos operator that is watching ChaosEngine CR will instantiate chaos-runner pod, which will, in turn, read the chaos associated experiment CRs and starts executing the actual chaos. The results of the chaos experiment will be available through a ChaosResults CR, which is created for each ChaosExperiment.

Chaos Charts

Developers and SREs need to create a ChaosEngine YAML to link with an application and specify the list of Chaos Experiments. However, the logic around chaos experiment itself is more complicated. The ChaosExperiment will involve the status check of the application pre and post the chaos injection, which will be specific to the application. Application vendors typically develop these chaos experiments during their application development phase and release process. These are then made available at hub.litmuschaos.io to their users to run the chaos in production. The group of such experiments is called a chaos chart.

Users who want to inject chaos into a particular application, search for a relevant chart, and install the chart (ChaosExperiment CRDs) into their namespace. And, then proceed to create a ChaosEngine specification referring to the installed ChaosExperiments.

Community

The community looks great with 250+ stars, 99 forks, 54 contributors and 25 Slack users. We are expecting/seeking new chaos charts to be contributed to the Chaos Hub.

A quick peek into the 0.7 release:

  • More chaos charts for OpenEBS and K8s.
  • Option to pass environment variables to chaos experiments from chaos engine.
  • Ability to avoid monitoring for specific chaos experiments.
  • Improve the pluggability of other chaos runners like PowerfulSeal into LitmusChaos.

Hacktoberfest

Borrowing the sentence from Digital Ocean, "Open source is changing the world – one pull request at a time. Hacktoberfest encourages more participation in the open source community, which grows bigger every year." This year we at MayaData are looking to get more newbies contribution into LitmusChaos project. Watch out for hacktoberfest tag.

Summary:

We have created the CRDs and charts to help write and orchestrate chaos in a generic way around Kubernetes. Start using LitmusChaos in your development environments and staging environments and give us feedback. Tell us what you think about chaos charts at the hub.