You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Litmus architecture can be segregated into two parts:
12
12
13
-
1.**Control Plane:** Contains the components required for the functioning of ChaosCenter, the website-based portal for Litmus.
13
+
1.**Control plane:** Contains the components required for the functioning of ChaosCenter, the website-based portal for Litmus.
14
14
15
-
2.**Execution Plane:** Contains the components required for the injection of chaos in the target resources.
15
+
2.**Execution plane:** Contains the components required for the injection of chaos in the target resources.
16
16
17
-
ChaosCenter can be used for creating and scheduling Chaos Experiments, a set of chaos faults defined in a definitive sequence to achieve desired chaos impact on the target resources upon execution. Users can log in to the ChaosCenter using valid login credentials and leverage the interactive web UI to define their chaos experiment to target multiple aspects of their infrastructure. Once the user creates a Chaos Experiment using the ChaosCenter, it is passed on to the Execution Plane. The Execution Plane can be present either in the host cluster containing the Control Plane if the self chaos infrastructure is being used, or in the target cluster if an external chaos infrastructure is being used. The Execution Plane interprets the Chaos Experiment as a list of steps required for injecting chaos into the target resources. It ensures efficient orchestration of chaos in cloud-native environments using various Kubernetes CRs. Once the Chaos Experiment is executed, Execution Plane sends the chaos result to the Control Plane for their post-processing using either the built-in monitoring dashboard of Litmus or using external observability tools such as Prometheus DB and Grafana dashboard. Litmus also achieves automated Chaos Experiment runs to execute chaos as part of the CI/CD pipeline based on a set of defined conditions using GitOps.
17
+
- Control plane can be used for creating and scheduling chaos experiments, which is a set of chaos faults defined in a definitive sequence to achieve desired chaos impact on the target resources upon execution. Users can log in to the ChaosCenter using the web UI or the APIs to define a chaos experiment and assess the resilience of target workloads.
18
+
19
+
- Once the user creates a chaos experiment using the ChaosCenter, it is passed on to the execution plane. The Execution plane can be present either in the same cluster as the ChaosCenter if the self chaos infrastructure is being used, or in a remote cluster if an external chaos infrastructure is being used. The Execution plane interprets the chaos experiment as a list of actions that will inject chaos into the target workloads. It ensures efficient orchestration of chaos in various cloud-native environments using Kubernetes custom resources.
20
+
21
+
- Once the chaos experiment is executed, Execution plane sends the chaos result to the control plane for their post-processing using either the built-in monitoring dashboard of Litmus or using external observability tools such as Prometheus DB and Grafana dashboard. Litmus also achieves automated chaos experiment runs to execute chaos as part of the CI/CD pipeline based on a set of defined conditions using GitOps.
18
22
19
23
:::note
20
24
With the latest release of LitmusChaos 3.0.0:
21
-
22
-
<li>The term <b>Chaos Delegate/Agent</b> has been changed to <b>Chaos Infrastructure.</b> </li>
23
-
<li>The term <b>Chaos Experiment</b> has been changed to <b>Chaos Fault.</b> </li>
24
-
<li>The term <b>Chaos Scenario/Workflow</b> has been changed to <b>Chaos Experiment.</b></li>
25
+
- The term **Chaos Delegate/Agent** has been changed to **Chaos Infrastructure**.
26
+
- The term **Chaos Experiment** has been changed to **Chaos Fault**.
27
+
- The term **Chaos Scenario/Workflow** has been changed to **Chaos Experiment**.
Copy file name to clipboardExpand all lines: website/docs/architecture/chaos-control-plane.md
+4-4
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,16 @@
1
1
---
2
2
id: chaos-control-plane
3
-
title: Chaos Control Plane
4
-
sidebar_label: Chaos Control Plane
3
+
title: Chaos control plane
4
+
sidebar_label: Chaos control plane
5
5
---
6
6
7
7
---
8
8
9
9
<img src={require("../assets/chaos-control-plane.png").default} alt="Chaos Control Plane" />
10
10
11
-
Chaos Control Plane consists of micro-services responsible for the functioning of the ChaosCenter, the website-based portal that can be used for interacting with Litmus, apart from the CLI. Chaos Plane facilitates the creation and scheduling of chaos experiments, system observability during the event of chaos, and post-processing and analysis of fault results.
11
+
Chaos control plane consists of micro-services responsible for the functioning of the ChaosCenter, the website-based portal that can be used for interacting with Litmus, apart from the CLI. Chaos Plane facilitates the creation and scheduling of chaos experiments, system observability during the event of chaos, and post-processing and analysis of fault results.
12
12
13
-
## Chaos Control Plane Components
13
+
## Chaos control plane components
14
14
15
15
-**Authentication Server:** A Golang micro-service that is responsible for authorizing, authenticating the requests received from ChaosCenter and managing users along with their projects. It primarily serves the cause of user creation, user login, resetting the password, updating user information, creating project, managing project related operations.
Copy file name to clipboardExpand all lines: website/docs/concepts/chaos-workflow.md
+18-14
Original file line number
Diff line number
Diff line change
@@ -1,20 +1,23 @@
1
1
---
2
2
id: chaos-workflow
3
-
title: Chaos Experiment
4
-
sidebar_label: Chaos Experiment
3
+
title: Chaos experiment
4
+
sidebar_label: Chaos experiment
5
5
---
6
6
7
7
---
8
8
9
-
**Chaos Experiment** is a set of different operations coupled together to achieve desired chaos impact on a Kubernetes Cluster. <br/>
10
-
It is useful in automating a series of pre-conditioning steps or action which is necessary to be performed before triggering the chaos injection.<br/>
11
-
A Chaos Experiment can also be used to perform different operations parallelly to achieve a desired chaos impact.
9
+
Chaos experiments gives you the flexibility to create complex, real-life failure scenarios that are used to validate your target workloads. At the same time, chaos experiments are declarative and can be constructed using the ChaosCenter UI without any programmatic intervention.
10
+
11
+
A chaos experiment is composed of chaos faults that are arranged in a specific order to create a failure scenario. The chaos faults target various aspects of an application, including the constituent microservices and underlying infrastructure. You can tune the parameters associated with these faults to impart the desired chaos behavior.
12
+
13
+
- It is useful in automating a series of pre-conditioning steps or action which is necessary to be performed before triggering the chaos injection.
14
+
15
+
- A Chaos Experiment can also be used to perform different operations parallelly to achieve a desired chaos impact.
12
16
13
17
:::note
14
18
With the latest release of LitmusChaos 3.0.0:
15
-
16
-
<li>The term <b>Chaos Experiment</b> has been changed to <b>Chaos Fault.</b> </li>
17
-
<li>The term <b>Chaos Scenario/Workflow</b> has been changed to <b>Chaos Experiment.</b></li>
19
+
The term **Chaos Experiment** has been changed to **Chaos Fault**.
20
+
The term **Chaos Scenario/Workflow** has been changed to **Chaos Experiment**.
18
21
:::
19
22
20
23
## Prerequisites
@@ -25,12 +28,13 @@ The following should be required before creating a Chaos Experiment:
## How do we define and execute a Chaos Experiment ?
31
+
## Defining and executing a chaos experiment
32
+
33
+
LitmusChaos leverages the popular GitOps tool **Argo** to achieve this goal. Argo enables the creation of different chaos experiments together in form of chaos experiments which are extremely simple and efficient to use.
29
34
30
-
LitmusChaos leverages the popular GitOps tool **Argo** to achieve this goal. Argo enables the creation of different chaos experiments together in form of chaos experiments which are extremely simple and efficient to use.<br/>
31
35
With the help of **ChaosCenter**, chaos experiments with different types of faults can be created. In a Chaos Experiment, the faults can be set to execute in parallel to each other and the user can tune the chaos experiment by adding additional steps to simulate a desired fault that might occur in the production stage.
32
36
33
-
### Life Cycle of a Chaos Experiment
37
+
### Chaos experiment life cycle
34
38
35
39
Here is a sample pod-delete chaos experiment from ChaosCenter.
36
40
@@ -232,11 +236,11 @@ These include installing the chaos faults, executing the chaos engine of the fau
232
236
Some additional checks can be added with the faults in the form of probes. These probes are defined in the ChaosEngines of the faults and are updated when the fault execution takes place.
233
237
The overall chaos experiment result can be viewed with the ChaosResult CRD which contains the `verdict` and the `probeSuccessPercentage` (a ratio of successful checks v/s total probes).
234
238
235
-
## What is a run?
239
+
## Chaos experiment run
236
240
237
241
A chaos experiment run can be defined as a single/one-time execution of the chaos experiment. There can be multiple runs of a single chaos experiment. If the chaos experiment consists of a cron syntax, it will run periodically according to the cron provided in the chaos experiment.
238
242
239
-
## What is Resilience Score?
243
+
## Resilience Score
240
244
241
245
**Resiliency score** is an overall measure of the resiliency of a system for a given chaos experiment, which is obtained upon executing the constituent experiment faults on that system.
242
246
@@ -255,7 +259,7 @@ Total Resilience for one single fault = (Weight Given to that fault * Probe Succ
255
259
Overall Resilience Score = Total Test Result / Sum of the assigned weights of the faults
256
260
```
257
261
258
-
## What is a Cron Chaos Experiment?
262
+
## Cron chaos experiment
259
263
260
264
Cron Chaos Experiment is a type of chaos experiment that runs on a pre-defined schedule. It consists of a mandatory field `spec.schedule`. A cron syntax is provided in this field at which the chaos experiment execution takes
Copy file name to clipboardExpand all lines: website/docs/concepts/chaoshub.md
+24-21
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,11 @@ sidebar_label: ChaosHub
6
6
7
7
---
8
8
9
-
ChaosHub allows you to orchestrate chaos experiments from the Public **[ChaosHub](http://hub.litmuschaos.io/)** or an alternate source for the Experiments (basically, a **[fork](https://github.com/litmuschaos/chaos-charts)** of the public hub with custom faults).
9
+
A ChaosHub is a collection of experiment templates and faults that you can use to create and launch chaos experiments. Both experiments and faults are stored as manifests in an appropriate directory structure. This way, new experiment templates and faults can be added directly to the repository as files. In addition, the experiment templates can be derived from the existing experiments to be saved in ChaosHub from the web UI.
10
+
11
+
- ChaosHub is accessed using a Git service provider such as GitHub, where ChaosHub exists as a repository. This allows native version control and management of the faults and experiment artifacts.
12
+
13
+
- Chaos experiments can be created from the public [ChaosHub](http://hub.litmuschaos.io/) which is already connected to your ChaosCenter, or a custom ChaosHub which is a [fork](https://github.com/litmuschaos/chaos-charts) of the public ChaosHub where custom faults can be stored.
10
14
11
15
## Prerequisites
12
16
@@ -18,37 +22,37 @@ The following are the prerequisites for creating a Chaos Experiment:
18
22
An active internet connection is required to clone the git repository for the first time installation.
19
23
:::
20
24
21
-
## Connecting a Git repository using ChaosHub
25
+
## Connecting to a Git repository using ChaosHub
22
26
23
27
With ChaosHub, you can construct chaos experiments by selecting, tuning and sequencing different faults together from their connected ChaosHubs.
24
28
25
29
You can make changes in your forked repositories and sync it with the Portal to get the latest changes from the fork.
26
30
27
-
By default, a Public ChaosHub is provided when the ChaosCenter is installed for the first time.
31
+
By default, a public ChaosHub is provided when the ChaosCenter is installed for the first time.
To add a Private Hub, you need provide the Hub name, Git URL of the forked repository and the Branch name similar to that of Public Hub and the repository can be connected by 2 methods:
47
+
To add a private ChaosHub, you need provide the hub name, Git URL of the forked repository and the branch name similar to that of public hub and the repository can be connected in two ways:
Personal Access Tokens are used as an alternative to the password for authentication to Git services.
50
54
51
-
#### b. SSH Key
55
+
#### b. SSH key
52
56
53
57
Just like the Access Token , SSH keys are used for the authentication. These keys come in pairs, a public key that is shared with the Git Services and a private key that is stored with you.
54
58
SSH link of the repository should be provided if you select this method.
@@ -57,13 +61,13 @@ SSH link of the repository should be provided if you select this method.
57
61
58
62
## Syncing a ChaosHub
59
63
60
-
If some changes are made into the git repository, you can reflect these changes in the hub by selecting the **Refresh Hub** option from the ChaosHub card.
64
+
If some changes are made into the Git repository, you can reflect these changes in the hub by selecting the **Refresh Hub** option from the ChaosHub card.
61
65
62
66
## Editing a ChaosHub
63
67
64
68
To make changes in a hub like changing the name, branch, access token etc, you can select the **Edit Hub** option from the ChaosHub card.
65
69
66
-
## Chaos Experiments and Experiments in a ChaosHub
70
+
## Chaos experiments and experiments in a ChaosHub
67
71
68
72
### 1. View the PreDefined Chaos Experiments
69
73
@@ -73,16 +77,16 @@ After connecting a ChaosHub, you can view the different pre-defined chaos experi
73
77
74
78
### 2. View the Chaos Faults
75
79
76
-
Similarly, you can view the different charts and the fault. These charts are sorted according to different categories like generic, aws, azure, kube-components etc.
80
+
Similarly, you can view the different charts and the fault. These charts are sorted according to different categories like generic, AWS, Azure, Kube-Components etc.
You can select one of the chaos faults and can examine the fault details.
83
-
The fault page consists of all the important details like the description of the fault, a tutorial video, the maintainer of the fault, etc.
84
-
You can also find the fault yaml link, RBAC link, and the ChaosEngine yaml link of the fault.
85
-
These yaml links are required for the creation of Custom Chaos Experiments.
86
+
You can select one of the chaos faults and can examine the fault details. The fault page consists of all the important details like the description of the fault, a tutorial video, the maintainer of the fault, etc.
87
+
88
+
You can also find the Experiment manifest URL, RBAC URL, and the ChaosEngine URLs of the fault.
89
+
These URLs are required for the creation of custom chaos experiments.
@@ -92,10 +96,9 @@ To remove a ChaosHub from a project, you can select the **Disconnect Hub** optio
92
96
93
97
## Summary
94
98
95
-
You can select one of the chaos faults and can examine the fault details.
96
-
The fault page consists of all the important details like the description of the fault, a tutorial video, the maintainer of the fault, etc.
97
-
You can also find the fault yaml link, RBAC link, and the ChaosEngine yaml link of the fault.
98
-
These yaml links are required for the creation of Custom Chaos Experiments.
99
+
You can select one of the chaos faults and can examine the fault details.The fault page consists of all the important details like the description of the fault, a tutorial video, the maintainer of the fault, etc.
100
+
You can also find the Experiment URL URL, RBAC URL, and the ChaosEngine yaml URL of the fault.
101
+
These yaml URLs are required for the creation of Custom Chaos Experiments.
0 commit comments