• Stars
    star
    4,399
  • Rank 9,736 (Top 0.2 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated 30 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Litmus helps SREs and developers practice chaos engineering in a Cloud-native way. Chaos experiments are published at the ChaosHub (https://hub.litmuschaos.io). Community notes is at https://hackmd.io/a4Zu_sH4TZGeih-xCimi3Q

LitmusChaos

LitmusChaos

Open Source Chaos Engineering Platform

Slack Channel GitHub Workflow Docker Pulls GitHub stars GitHub issues Twitter Follow CII Best Practices FOSSA Status YouTube Channel



Read this in other languages.

๐Ÿ‡ฐ๐Ÿ‡ท ๐Ÿ‡จ๐Ÿ‡ณ ๐Ÿ‡ง๐Ÿ‡ท ๐Ÿ‡ฎ๐Ÿ‡ณ

Overview

LitmusChaos is an open source Chaos Engineering platform that enables teams to identify weaknesses & potential outages in infrastructures by inducing chaos tests in a controlled way. Developers & SREs can practice Chaos Engineering with LitmusChaos as it is easy to use, based on modern Chaos Engineering principles & community collaborated. It is 100% open source & a CNCF project.

LitmusChaos takes a cloud-native approach to create, manage and monitor chaos. The platform itself runs as a set of microservices and uses Kubernetes custom resources to define the chaos intent, as well as the steady state hypothesis.

At a high-level, Litmus comprises of:

  • Chaos Control Plane: A centralized chaos management tool called chaos-center, which helps construct, schedule and visualize Litmus chaos workflows
  • Chaos Execution Plane Services: Made up of a chaos agent and multiple operators that execute & monitor the experiment within a defined target Kubernetes environment.

architecture summary

At the heart of the platform are the following chaos custom resources:

  • ChaosExperiment: A resource to group the configuration parameters of a particular fault. ChaosExperiment CRs are essentially installable templates that describe the library carrying out the fault, indicate permissions needed to run it & the defaults it will operate with. Through the ChaosExperiment, Litmus supports BYOC (bring-your-own-chaos) that helps integrate (optional) any third-party tooling to perform the fault injection.

  • ChaosEngine: A resource to link a Kubernetes application workload/service, node or an infra component to a fault described by the ChaosExperiment. It also provides options to tune the run properties and specify the steady state validation constraints using 'probes'. ChaosEngine is watched by the Chaos-Operator, which reconciles it (triggers experiment execution) via runners.

The ChaosExperiment & ChaosEngine CRs are embedded within a Workflow object that can string together one or more experiments in a desired order.

  • ChaosResult: A resource to hold the results of the experiment run. It provides details of the success of each validation constraint, the revert/rollback status of the fault as well as a verdict. The Chaos-exporter reads the results and exposes information as prometheus metrics. ChaosResults are especially useful during automated runs.

ChaosExperiment CRs are hosted on hub.litmuschaos.io. It is a central hub where the application developers or vendors share their chaos experiments so that their users can use them to increase the resilience of the applications in production.

chaos-operator-flow

Use cases

  • For Developers: To run chaos experiments during application development as an extension of unit testing or integration testing.
  • For CI/CD pipeline builders: To run chaos as a pipeline stage to find bugs when the application is subjected to fail paths in a pipeline.
  • For SREs: To plan and schedule chaos experiments into the application and/or surrounding infrastructure. This practice identifies the weaknesses in the deployment system and increases resilience.

Getting Started with Litmus

To get started, check out the Litmus Docs and specifically the Installation section of the Getting Started with Litmus page.

Contributing to Chaos Hub

Check out the Contributing Guidelines for the Chaos Hub

Community

Community Resources:

Feel free to reach out if you have any queries,concerns, or feature requests

  • Give us a star โญ๏ธ - If you are using LitmusChaos or think it is an interesting project, we would love a star โค๏ธ

  • Follow LitmusChaos on Twitter @LitmusChaos.

  • Subscribe to the LitmusChaos YouTube channel for regular updates & meeting recordings.

  • To join our Slack Community and meet our community members, put forward your questions & opinions, join the #litmus channel on the Kubernetes Slack.

Community Meetings

The Litmus community meets on the third wednesday of every month at 10:00PM IST/6:30 PM CEST/9:30 AM PST.

Videos

And More....

Blogs

Community Blogs:

Adopters

Check out the Adopters of LitmusChaos

(Send a PR to the above page if you are using Litmus in your chaos engineering practice)

License

Litmus is licensed under the Apache License, Version 2.0. See LICENSE for the full license text. Some of the projects used by the Litmus project may be governed by a different license, please refer to its specific license.

FOSSA Status

Litmus Chaos is part of the CNCF Projects.

CNCF

Important Links

Litmus Docs Litmus Docs
CNCF Landscape Litmus on CNCF Landscape

More Repositories

1

chaos-operator

chaos engineering via kubernetes operator
Go
134
star
2

chaos-charts

Repository to hold chaos experiments resource YAML bundles
Go
78
star
3

litmus-go

Go
67
star
4

litmus-helm

Helm Charts for the Litmus Chaos Operator & CRDs
YAML
45
star
5

chaos-exporter

Prometheus Exporter for Litmus Chaos Metrics
Go
35
star
6

test-tools

A set of containerized applications, workload generators that will be consumed by openebs/e2e & openebs/litmus
C
29
star
7

github-chaos-actions

Github actions to trigger chaos on your review apps
Shell
29
star
8

chaos-runner

The bridge between chaos operator and chaos experiment! Lifecycle manager for chaos experiments
Go
24
star
9

litmusctl

Command-Line tool to manage Litmuschaos's agent plane
Go
24
star
10

chaos-workflows

Argo integration with LitmusChaos to create Chaos Workflows
19
star
11

v1-litmus-docs

Documentation for the Litmus Project
JavaScript
18
star
12

charthub.litmuschaos.io

front-end and back-end for litmus community charts
TypeScript
16
star
13

litmus-e2e

Test the Chaos!!! An e2e (end-to-end) validation pipeline for the LitmusChaos infrastructure
Go
15
star
14

litmus-docs

Documentation for the Litmus Project
JavaScript
15
star
15

litmus-python

Litmus Chaos Experiments written in Python !
Python
12
star
16

website-litmuschaos

Website source code for litmuschaos.io and staging-litmuschaos.io etc
TypeScript
9
star
17

litmus-ansible

Ansible-based chaos experiments
Python
9
star
18

litmus-cd-old

8
star
19

admission-controllers

Admission Controllers used in LitmusChaos
Go
7
star
20

chaos-scheduler

Schedule your Chaos!!
Go
7
star
21

chaos-ci-lib

Go
7
star
22

litmus-ui

Litmus UI - component library
TypeScript
6
star
23

chaos-observability

Observability for LitmusChaos Experiments
6
star
24

litmus-java-sdk

Java
6
star
25

tutorials

Consists of codelabs to perform standard user flows for LitmusChaos
HTML
5
star
26

gitlab-remote-templates

5
star
27

m-agent

LitmusChaos Machine Agent
Go
4
star
28

backstage-plugin

Backstage plugin where you can find all the information you need to run chaos engineering on Litmus in one place
TypeScript
3
star
29

litmus-portal

Contains the frontend and backend for Litmus portal
CSS
3
star
30

litmus-website-2

litmus-website-2
JavaScript
1
star