Chaos

This helm chart is used to deploy a chaos test suite composed of cerberus, kraken, litmus, chaos mesh and kube-monkey.

This chart is part of the chaos startx helm chart series focused on deploying various kind of chaos tools for cluster infrastructure or applications chaos-testing. chaos-xxx charts.

Requirements and guidelines

Read the startx helm-repository homepage for more information on how to use theses resources.

Deploy this helm chart on openshift

1. Connect to your Openshift cluster

oc login -t <token> <cluster-url>

2. Install the repository

helm repo add startx https://helm-repository.readthedocs.io/en/latest/packages/

3. Get information about this chart

helm show chart startx/chaos

4. Install this suite

# Install the projects
helm install \
--set cerberus.enabled=true --set cerberus.project.enabled=true  \
--set kraken.enabled=true --set kraken.project.enabled=true  \
--set litmus.enabled=true --set litmus.project.enabled=true  \
--set mesh.enabled=true --set mesh.project.enabled=true  \
--set monkey.enabled=true --set monkey.project.enabled=true  \
chaos-projects  startx/chaos
# Deploy the cerberus instance
helm install \
--set cerberus.enabled=true --set cerberus.cerberus.enabled=true  \
chaos-cerberus-instance  startx/chaos-cerberus
# Deploy the kraken instance in a job mode
helm install \
--set kraken.enabled=true --set kraken.kraken.enabled=true  \
--set kraken.kraken.mode=job  \
chaos-kraken-instance-job  startx/chaos-kraken
# Deploy the kraken instance with tekton pipeline (require pipeline been installed)
helm install \
--set kraken.enabled=true --set kraken.kraken.enabled=true  \
--set kraken.kraken.mode=pipeline \
chaos-kraken-instance-pipeline  startx/chaos-kraken
# Deploy the litmus instance
helm install \
--set litmus.enabled=true --set litmus.litmus.enabled=true  \
chaos-litmus-instance  startx/chaos-litmus
# Deploy the mesh instance
helm install \
--set mesh.enabled=true --set mesh.mesh.enabled=true  \
chaos-mesh-instance  startx/chaos-mesh
# Deploy the monkey instance
helm install \
--set monkey.enabled=true --set monkey.monkey.enabled=true  \
chaos-monkey-instance  startx/chaos-monkey

5. Manage with ArgoCD

ArgoCD will allow you to deploy this helm chart in a gitops way of doying. ArgoCD deployment must help you deploy the ArgoCD stack.

In order to manage this cluster resource using argoCD, you should deploy your service [using startx charts(#0.requirements)] : - project to created required projects - operator to deploy required operators - instance to deploy this resource components

5.1 Create project

kind: Application
apiVersion: argoproj.io/v1alpha1
metadata:
name: chaos
namespace: "chaos"
spec:
destination:
    namespace: "default"
    server: 'https://kubernetes.default.svc'
project: default
source:
    path: charts/sxapi/
    repoURL: 'https://github.com/startxfr/helm-repository.git'
    targetRevision: "devel"
    helm:
    valueFiles:
        - values-test.yaml
    parameters:
    - name: sxapi.service.enabled
    value: "true"
    - name: sxapi.service.expose
    value: "true"
ignoreDifferences:
    - kind: Secret
    jsonPointers: [ "/" ]

#### 5.2 Enable operator

#### 5.3 Deploy cluster-service instance



## Values dictionary

### context values dictionary

| Key                 | Default   | Description                                                                                                                                                                                                                                                                                               |
| ------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| context.scope       | default   | Name of the global scope for this application (organisational tenant)                                                                                                                                                                                                                                     |
| context.cluster     | localhost | Name of the cluster running this application (plateform tenant)                                                                                                                                                                                                                                           |
| context.environment | dev       | Name of the environement for this application (ex: dev, factory, preprod or prod)                                                                                                                                                                                                                         |
| context.component   | demo      | Component name of this application (logical tenant)                                                                                                                                                                                                                                                       |
| context.app         | sxapi     | Application name (functionnal tenant, default use Chart name)                                                                                                                                                                                                                                             |
| context.version     | 0.0.1     | Version name of this application (default use Chart appVersion)                                                                                                                                                                                                                                           |
| cerberus            | {...}     | Configuration of the cerberus component. Inherit from the [chaos-cerberus chart](https://helm-repository.readthedocs.io/en/latest/charts/chaos-cerberus) (see [chart options](https://helm-repository.readthedocs.io/en/latest/charts/chaos-cerberus/#chaos-cerberus-values-dictionary) for more options) |
| kraken              | {...}     | Configuration of the kraken component. Inherit from the [chaos-kraken chart](https://helm-repository.readthedocs.io/en/latest/charts/chaos-kraken) (see [chart options](https://helm-repository.readthedocs.io/en/latest/charts/chaos-kraken/#chaos-kraken-values-dictionary) for more options)           |
| litmus              | {...}     | Configuration of the litmus component. Inherit from the [chaos-litmus chart](https://helm-repository.readthedocs.io/en/latest/charts/chaos-litmus) (see [chart options](https://helm-repository.readthedocs.io/en/latest/charts/chaos-litmus/#chaos-litmus-values-dictionary) for more options)           |
| mesh                | {...}     | Configuration of the chaos-mesh component. Inherit from the [chaos-mesh chart](https://helm-repository.readthedocs.io/en/latest/charts/chaos-mesh) (see [chart options](https://helm-repository.readthedocs.io/en/latest/charts/chaos-mesh/#chaos-mesh-values-dictionary) for more options)               |
| monkey              | {...}     | Configuration of the kube-monkey component. Inherit from the [chaos-monkey chart](https://helm-repository.readthedocs.io/en/latest/charts/chaos-monkey) (see [chart options](https://helm-repository.readthedocs.io/en/latest/charts/chaos-monkey/#chaos-monkey-values-dictionary) for more options)      |

## Values files

### Default values file (values.yaml)

#### Deploy chaos namespaces

Deploy the chaos test suite environment :

- 1 **project** named **chaos-cerberus**
- 1 **project** named **chaos-kraken**
- 1 **project** named **chaos-litmus**
- 1 **project** named **chaos-mesh**
- 1 **project** named **chaos-monkey**

```bash
helm install \
 --set cerberus.enable=true --set cerberus.project.enable=true \
 --set kraken.enable=true   --set kraken.project.enable=true \
 --set litmus.enable=true   --set litmus.project.enable=true \
 --set mesh.enable=true     --set mesh.project.enable=true \
 --set monkey.enable=true   --set monkey.project.enable=true \
 chaos startx/chaos

Deploy cerberus

Deploy the cerberus component

helm install \
--set cerberus.enable=true --set cerberus.cerberus.enable=true \
chaos-cerberus startx/chaos-cerberus

Deploy kraken

Deploy the kraken component

helm install \
--set kraken.enable=true --set kraken.kraken.enable=true \
chaos-kraken startx/chaos-kraken

Deploy litmus

Deploy the litmus component

helm install \
--set litmus.enable=true --set litmus.litmus.enable=true \
chaos-litmus startx/chaos-litmus

Deploy Chaos-mesh

Deploy the chaos-mesh component

helm install \
--set mesh.enable=true --set mesh.mesh.enable=true \
chaos-mesh startx/chaos-mesh

Deploy Kube-monkey

Deploy the kube-monkey component

helm install \
--set monkey.enable=true --set monkey.monkey.enable=true \
chaos-monkey startx/chaos-monkey

History

Release Date Description
10.12.5 2022-06-03 Initial commit of the example and poc chart example-chaos
10.12.8 2022-06-11 Initial commit for this helm chart as part of the chaos suite
10.12.26 2022-06-17 Create the chaos-mesh chart as part of the startx chaos chart suite
10.12.28 2022-06-17 Upgrade the chaos-cerberus helm chart schema with full option support. Link to upstream project release latest (no stable release)
10.12.29 2022-06-17 Align all charts to version 10.12.29
10.12.29 2022-06-17 publish stable update for the full repository
10.12.30 2022-06-17 Improved logo and global documentation
10.12.33 2022-06-17 version all dependencies charts
10.12.33 2022-06-17 publish stable update for the full repository
10.12.34 2022-06-17 Align all dependencies charts to 10.12.31
10.12.35 2022-06-18 Improve icon
10.12.39 2022-06-18 Align all chart to revision 10.12.39
10.12.41 2022-06-18 Align all charts to version 10.12.41
10.12.42 2022-06-18 Improve schema default values, notes and polish helm deployment documentation
10.12.43 2022-06-18 Improve doc for helm deployment
10.12.46 2022-06-18 publish stable update for the full repository
10.12.47 2022-06-18 Minor improvment in doc and sample values
10.12.49 2022-06-18 publish stable update for the full repository
10.12.51 2022-06-18 Update chaos chart dependencies to version 10.12.47
10.12.52 2022-06-18 Update chaos chart dependencies to version 10.12.46
10.12.52 2022-06-18 Update chaos chart dependencies to version 10.12.47
10.12.53 2022-06-18 Update chaos chart dependencies to version 10.12.46
10.12.53 2022-06-18 Update chaos chart dependencies to version 10.12.43
10.12.61 2022-06-18 All chart are aligned to release 10.12.61
10.12.53 2022-06-18 publish stable update for the full repository
10.12.71 2022-06-28 Debug the appVersion in all charts
10.12.72 2022-07-02 Common release
10.12.77 2022-07-02 Stable for clients
10.12.81 2022-07-02 publish stable update for the full repository
10.12.97 2022-07-03 publish stable update for the full repository
10.12.99 2022-09-16 Initialize OCP 4.11 upgrade on all chart
11.5.3 2022-09-17 Align all STARTX charts to release 11.5.3
11.7.1 2022-10-01 Upgrade chart to latest release available for OCP 4.11.7 release
11.7.3 2022-10-02 publish stable update for the full repository
11.7.9 2022-10-02 publish stable update for the full repository
11.7.10 2022-10-02 Stable release for all packages
11.7.11 2022-10-02 publish stable update for the full repository
11.7.15 2022-10-02 publish stable update for the full repository
11.7.17 2022-10-02 publish stable update for the full repository
11.7.31 2022-10-29 publish stable update for the full repository
11.7.33 2022-10-29 Update all startx packages to release 11.7.33
11.7.41 2022-11-02 publish stable update for the full repository
11.7.61 2022-11-30 publish stable update for the full repository
11.7.62 2022-11-30 Debug console links and notifications
11.7.63 2022-11-30 publish stable update for the full repository
11.7.64 2022-11-30 Increment sxapi version
11.7.67 2022-11-30 Debug depedencies on sub charts
11.7.67 2022-11-30 Debug depedencies on sub charts
11.7.69 2022-11-30 Finished dependencies stabilization
11.7.73 2022-12-04 Align all packages to release 11.7.73
11.7.75 2022-12-04 publish stable update for the full repository
11.7.77 2022-12-05 publish stable update for the full repository
11.7.87 2023-02-15 publish stable update for the full repository
11.7.88 2023-02-15 publish stable update for the full repository
11.7.91 2023-02-16 publish stable update for the full repository
11.7.93 2023-02-16 align dependencies to version 11.7.89
11.7.97 2023-02-19 publish stable update for the full repository
11.28.11 2023-02-19 publish stable update for the full repository
11.28.15 2023-02-19 publish stable update for the full repository
11.28.16 2023-02-19 publish stable update for the full repository
11.28.19 2023-02-19 publish stable update for the full repository
11.28.21 2023-02-19 Upgrade all dependencies packages to release 11.28.15
11.28.23 2023-02-21 publish stable update for the full repository
11.28.27 2023-02-21 All chart aligned to release 11.28.27
11.28.28 2023-02-21 Improve chaos options
11.28.28 2023-02-21 Improve chaos options
11.28.28 2023-02-21 Improve chaos options
11.28.28 2023-02-21 Improve chaos options
11.28.29 2023-02-21 publish stable update for the full repository
11.28.31 2023-02-21 Rebuild dependencies
11.28.33 2023-02-21 Improve chaos options
11.28.35 2023-02-21 publish stable update for the full repository
11.28.39 2023-02-21 Improve chaos options
11.28.43 2023-02-21 Improve chaos options
11.28.43 2023-02-21 Improve chaos options
11.28.49 2023-02-21 publish stable update for the full repository
11.28.59 2023-02-21 publish stable update for the full repository
11.28.60 2023-02-21 publish stable update for the full repository
11.28.67 2023-02-23 publish stable update for the full repository
11.28.69 2023-03-07 publish stable update for the full repository
11.28.89 2023-04-01 publish stable update for the full repository
11.28.93 2023-04-20 publish stable update for the full repository
11.28.95 2023-04-21 publish stable update for the full repository
11.28.99 2023-04-21 publish stable update for the full repository
11.28.103 2023-05-04 publish stable update for the full repository
11.28.127 2023-06-12 publish stable update for the full repository
11.28.128 2023-06-12 publish stable update for the full repository
11.28.129 2023-06-13 publish stable update for the full repository
11.28.199 2023-07-06 publish stable update for the full repository
11.28.201 2023-07-06 publish stable update for the full repository
11.28.203 2023-07-06 Upgrade dependencies
11.28.203 2023-07-06 Improve chaos options
11.28.205 2023-07-06 Improve chaos options
11.28.206 2023-07-06 Improve chaos options
11.28.207 2023-07-06 publish stable update for the full repository
11.28.230 2023-08-18 Align all helm chart to release 11.28.230 stable release
11.30.0 2023-08-18 Align all helm chart to release 11.30.0 stable for OCP 4.11.30
11.40.0 2023-08-18 Align all helm chart to release 11.40.0 stable for OCP 4.11.40
11.47.0 2023-08-18 Align all helm chart to release 11.47.0 stable for OCP 4.11.47
11.47.1 2023-08-18 Update appVersion in Chart.yml
11.47.1 2023-08-18 Update appVersion in Chart.yml
12.0.0 2023-08-18 Align all helm chart to release 12.0.0 transitionnal for OCP 4.12.0 target (unstable)
12.0.1 2023-08-18 Align all helm chart to release 12.0.1 transitionnal for OCP 4.12.0 target (unstable)
12.0.3 2023-08-18 Update all chart dependencies to 12.0.0 release (unstable)
12.0.5 2023-08-18 publish stable update for the full repository
12.0.11 2023-08-18 publish stable update for the full repository
12.30.1 2023-09-29 release 12.30.1 aligned and tested with OCP 4.12.30
12.36.1 2023-09-29 release 12.36.0 aligned with OCP 4.12.36 (unstable)