Skip to the content.

chaos-kraken Chaos Chart : Kraken

Artifacthub

This helm chart used to deploy kraken on Openshift or Kubernetes cluster. Kraken is as a chaos engine with chaos scenarios for Openshift clusters.

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-kraken

4. Install this component

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

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 kraken Application name (functional tenant, default use Chart name)
context.version 5.0.0 Version name of this application (default use Chart appVersion)

chaos-kraken 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
kraken {…} Configuration of the kraken deployment
kraken.enable false Unleash the kraken ;)
kraken.expose true Enable exposition for this application (route based)
kraken.cerberusUrl url Fill the cerberus server url. (prefer internal)
kraken.mode pipeline Kraken mode (could be job or pipeline)
kraken.job {…} configuration of the job mode
kraken.job.prefix kraken-test Job name prefix
kraken.pipeline {…} configuration of the pipeline mode
kraken.pipeline.prefix kraken-test pipelinerun name prefix
kraken.aws {…} AWS configuration section (must have privileged accesss to Openshift deployed resources like VPC, subnet, EC2 instance)
kraken.aws.enabled false enable the aws integration
kraken.aws.credentials {…} credentials (mandatory if enabled)
kraken.aws.credentials.region eu-west-3 used AWS region
kraken.aws.credentials.key_id AKIAXXX… AWS accesss key ID
kraken.aws.credentials.secret “xxxxxxxxxx” AWS secret accesss key
kraken.kubeconfig {…} Kubeconfig of the supervised tested cluster (mandatory)
kraken.kubeconfig.mode token Connection mode to use for the cluster (could be token or file)
kraken.kubeconfig.token {…} If mode is token, this section must be filled
kraken.kubeconfig.token.server https://localhost:6443 The server URL to the target cluster API
kraken.kubeconfig.token.token sha256~XXX The token to use to get accesss. This token must have full cluster admin accesss to perform some chaos scenarios
kraken.kubeconfig.file ”” If mode is token, this property must be set with a full kubeconfig content

Values files

Default values file (values.yaml)

Simple kraken with default configuration :

# Running the default configuration
helm install --set project.enable=true chaos-kraken-project startx/chaos-kraken
helm install --set kraken.enable=true chaos-kraken-instance startx/chaos-kraken

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-kraken-project startx/chaos-kraken -f https://raw.githubusercontent.com/startxfr/helm-repository/master/charts/chaos-kraken/values-startx-project.yaml
helm install chaos-kraken-deploy startx/chaos-kraken -f https://raw.githubusercontent.com/startxfr/helm-repository/master/charts/chaos-kraken/values-startx-deploy.yaml

Usage examples

Run kraken in job mode (one-shot chaos run)

Deploy kraken as a Kubernetes Job that runs a node failure scenario once:

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

kraken:
  enabled: true
  expose: false
  cerberusUrl: http://cerberus.chaos-cerberus.svc.cluster.local:8080
  mode: job
  job:
    prefix: kraken-node-failure
  kubeconfig:
    mode: token
    token:
      server: https://api.prod-cluster.example.com:6443
      token: sha256~REPLACE_WITH_YOUR_TOKEN
helm install chaos-kraken-job startx/chaos-kraken -f my-kraken-job-values.yaml -n chaos-kraken

Run kraken in pipeline mode (Tekton)

Deploy kraken using a Tekton PipelineRun for each scenario (requires OpenShift Pipelines):

# my-kraken-pipeline-values.yaml
kraken:
  enabled: true
  cerberusUrl: http://cerberus.chaos-cerberus.svc.cluster.local:8080
  mode: pipeline
  pipeline:
    prefix: kraken-test
  kubeconfig:
    mode: token
    token:
      server: https://api.prod-cluster.example.com:6443
      token: sha256~REPLACE_WITH_YOUR_TOKEN
helm install chaos-kraken-pipeline startx/chaos-kraken -f my-kraken-pipeline-values.yaml -n chaos-kraken

Run kraken with AWS integration (node stop/start)

Enable AWS credentials to allow kraken to stop/start EC2 instances during node failure scenarios:

# my-kraken-aws-values.yaml
kraken:
  enabled: true
  mode: job
  aws:
    enabled: true
    credentials:
      region: eu-west-3
      key_id: AKIAXXX_REPLACE_WITH_REAL_KEY
      secret: "REPLACE_WITH_REAL_SECRET"
  kubeconfig:
    mode: token
    token:
      server: https://api.prod-cluster.example.com:6443
      token: sha256~REPLACE_WITH_YOUR_TOKEN
helm install chaos-kraken-aws startx/chaos-kraken -f my-kraken-aws-values.yaml -n chaos-kraken

ArgoCD deployment

Deploy via ArgoCD Application

chaos-kraken follows the project/instance pattern. Kraken requires a kubeconfig to connect to the target cluster and optionally a cerberus URL for health gating.

git clone https://gitlab.com/startx1/helm.git
cd helm-repository/charts/chaos-kraken/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-kraken 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.107 2026-06-21 publish stable update for the full repository
21.3.108 2026-06-22 Improve chaos-kraken options
21.3.108 2026-06-22 Improve chaos-kraken options
21.3.108 2026-06-22 Improve chaos-kraken options
21.3.109 2026-06-22 Improve chaos-kraken options
21.3.109 2026-06-22 Improve chaos-kraken options
21.3.110 2026-06-22 Improve chaos-kraken options
21.3.111 2026-06-22 fix mountPath: use /home/krkn instead of /root for kraken image paths
21.3.112 2026-06-22 Improve chaos-kraken options
21.3.113 2026-06-22 fix: add missing elastic and telemetry sections to kraken-config-all
21.3.114 2026-06-22 Improve chaos-kraken options
21.3.115 2026-06-22 fix: replace plugin_scenarios with pod_disruption_scenarios for krkn v5 compatibility
21.3.116 2026-06-22 Improve chaos-kraken options
21.3.117 2026-06-22 fix scenarios: correct pod labels for monitoring/machines, rewrite machines to krkn v5 format
21.3.118 2026-06-22 Improve chaos-kraken options
21.3.119 2026-06-22 split logging scenario into loki and elastic variants
21.3.120 2026-06-22 Improve chaos-kraken options
21.3.121 2026-06-22 split logging scenario into loki and elastic variants
21.3.122 2026-06-22 Improve chaos-kraken options
21.3.123 2026-06-22 migrate kraken-scenarios-all to individual kraken-scenario- ConfigMaps
21.3.124 2026-06-22 Improve chaos-kraken options
21.3.125 2026-06-22 split scenario and chaos-config ConfigMaps into grouped template files by category
21.3.126 2026-06-22 Improve chaos-kraken options
21.3.127 2026-06-22 tuning scenarios timings
21.3.128 2026-06-22 reduce wait_duration 60s and monitoring kill
21.3.129 2026-06-22 Improve chaos-kraken options
21.3.130 2026-06-22 add ingress, OVN and kube-apiserver chaos scenarios
21.3.131 2026-06-22 fix container scenarios syntax and add ingress OVN kube-apiserver scenarios
21.3.132 2026-06-22 Improve chaos-kraken options
21.3.133 2026-06-22 Improve chaos-kraken options
21.3.134 2026-06-22 improve monitoring apiserver machines podmonkey and app-outage scenarios
21.3.135 2026-06-22 Improve chaos-kraken options
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