Skip to the content.

chaos-monkey Chaos Chart : ChaosMonkeys

Artifacthub

This helm chart used to deploy kube-monkey on Openshift or Kubernetes cluster. Kube-monkey is a chaos injection tool that randomly terminates pods during business hours to test application resilience.

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 these 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/repos/stable/

3. Get information about this chart

helm show chart startx/chaos-monkey

4. Install this component

# Install the monkey project
helm install --set project.enabled=true chaos-monkey-project  startx/chaos-monkey
# Deploy the monkey instance
helm install --set monkey.enabled=true  chaos-monkey-instance startx/chaos-monkey

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 (platform tenant)
context.environment dev Name of the environment for this application (ex: dev, factory, preprod or prod)
context.component demo Component name of this application (logical tenant)
context.app kube-monkey Application name (functional tenant, default use Chart name)
context.version 0.0.1 Version name of this application (default use Chart appVersion)

chaos-monkey values dictionary

Key Default Description
project {…} Configuration of the project (or namespace). Inherit from the project chart (see chart options for more options)
project.enable false Enable creation of the namespace
monkey {…} Configuration of the kube-monkey deployment. Inherit from the asobti kube-monkey chart (see chart options for more options)
monkey.enable false Enable deploying the kube-monkey chaos injector

Values files

Default values file (values.yaml)

Simple monkey with default configuration :

# Install the kube-monkey project
helm install --set project.enable=true chaos-monkey-project startx/chaos-monkey
# Deploy the kube-monkey instance
helm install --set monkey.enable=true -n chaos-monkey chaos-monkey-instance startx/chaos-monkey

STARTX values file (values-startx-xxx.yaml)

Same as the default configuration but with namespace prefixed with startx-

# Configuration running demo example configuration
helm install chaos-monkey-project startx/chaos-monkey -f https://raw.githubusercontent.com/startxfr/helm-repository/master/charts/chaos-monkey/values-startx-project.yaml
helm install chaos-monkey-deploy startx/chaos-monkey -f https://raw.githubusercontent.com/startxfr/helm-repository/master/charts/chaos-monkey/values-startx-deploy.yaml

Usage examples

Deploy kube-monkey with basic kill schedule

Enable kube-monkey to run daily at 8am and terminate pods in opted-in namespaces:

# my-monkey-values.yaml
context:
  scope: myorg
  cluster: prod-cluster
  environment: chaos
  component: monkey
  app: kube-monkey

monkey:
  enabled: true
  config:
    dryRun: false
    timezone: America/New_York
    startHour: 8
    endHour: 17
    gracePeriodSec: 5
    killAllOnFail: false
    debug:
      enabled: false
helm install chaos-monkey-instance startx/chaos-monkey -f my-monkey-values.yaml -n chaos-monkey

Dry-run mode (simulate without killing)

Test the configuration without actually terminating pods:

# my-monkey-dryrun-values.yaml
monkey:
  enabled: true
  config:
    dryRun: true
    timezone: Europe/Paris
    startHour: 9
    endHour: 18
helm install chaos-monkey-dryrun startx/chaos-monkey -f my-monkey-dryrun-values.yaml -n chaos-monkey

Opt in a deployment for kube-monkey

Add annotations to your application’s Deployment to opt in and set the kill probability:

# In your application Deployment manifest
metadata:
  labels:
    kube-monkey/enabled: "enabled"
  annotations:
    kube-monkey/enabled: "enabled"
    kube-monkey/identifier: "myapp"
    kube-monkey/mtbf: "3"           # mean time between failures (days)
    kube-monkey/kill-mode: "fixed"  # or "random-max-percent"
    kube-monkey/kill-value: "1"     # number of pods to kill

ArgoCD deployment

Deploy via ArgoCD Application

chaos-monkey deploys kube-monkey which runs on a schedule (configurable startHour/endHour). Target deployments must opt in via annotations.

git clone https://gitlab.com/startx1/helm.git
cd helm-repository/charts/chaos-monkey/examples/argocd/
oc apply -k .

History

Release Date Description
16.19.59 2024-12-09 Align all chart to the 16.19.59 release
17.14.19 2025-03-12 Align all chart to the 17.14.19 release
17.14.90 2025-04-30 Publish stable release for 4.17 version
18.11.71 2025-11-27 Align all charts to the same releas
18.23.0 2026-02-28 Start 4.19 branch
19.23.15 2026-03-02 Prepare upgrading dependency to 19.23.11
19.23.17 2026-03-02 Align all dependencies to chart v19.23.11
20.14.7 2026-03-02 Update dependencies to version 20.14.0
20.14.15 2026-03-02 Update all chrat to OCP version 4.20.14
21.3.0 2026-03-02 Update all chart to OCP version 4.21.3
21.3.1 2026-03-02 Prepare release 21.3.x with 21.x dependencies
21.3.3 2026-03-02 Upgrade dependencies to v21.3.0
21.3.4 2026-06-17 21.3.9
21.3.11 2026-06-17 publish stable update for the full repository
21.3.27 2026-06-19 publish stable update for the full repository
21.3.55 2026-06-19 publish stable update for the full repository
21.3.56 2026-06-19 publish stable update for the full repository
21.3.56 2026-06-19 publish stable update for the full repository
21.3.67 2026-06-20 publish stable update for the full repository
21.3.68 2026-06-20 update basic dependencies to v21.3.70
21.3.68 2026-06-20 update all charts dependencies to v21.3.70
21.3.68 2026-06-20 update all charts dependencies to v21.3.70
21.3.102 2026-06-20 publish stable update for the full repository
21.3.103 2026-06-20 Improve chaos-monkey options
21.3.103 2026-06-21 publish stable update for the full repository
21.3.103 2026-06-21 publish stable update for the full repository
21.3.104 2026-06-21 publish stable update for the full repository
21.3.105 2026-06-21 publish stable update for the full repository
21.3.105 2026-06-21 publish stable update for the full repository
21.3.105 2026-06-21 publish stable update for the full repository
21.3.106 2026-06-21 publish stable update for the full repository
21.3.107 2026-06-21 publish stable update for the full repository
21.3.167 2026-06-23 publish stable update for the full repository
21.3.181 2026-06-23 publish stable update for the full repository
21.3.182 2026-06-23 publish stable update for the full repository