<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Docs on Krkn</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/tags/docs/</link><description>Recent content in Docs on Krkn</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 11 May 2026 14:15:40 -0400</lastBuildDate><atom:link href="https://deploy-preview-515--krkn-chaos.netlify.app/tags/docs/index.xml" rel="self" type="application/rss+xml"/><item><title>Krkn</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/krkn/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/krkn/</guid><description>&lt;h2 id="installation">
 Installation
 &lt;a class="td-heading-self-link" href="#installation" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;h3 id="clone-the-repository">
 Clone the Repository
 &lt;a class="td-heading-self-link" href="#clone-the-repository" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>To clone and use the latest krkn version follow the directions below. If you&amp;rsquo;re wanting to contribute back to krkn in anyway in the future we recommend &lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/krkn/#fork-and-clone-the-repository">forking the repository&lt;/a> first before cloning.&lt;/p>
&lt;p>See the latest release version &lt;a href="https://github.com/krkn-chaos/krkn/releases">here&lt;/a>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">$ git clone https://github.com/krkn-chaos/krkn.git --branch &amp;lt;release version&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">$ &lt;span class="nb">cd&lt;/span> krkn
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="fork-and-clone-the-repository">
 Fork and Clone the Repository
 &lt;a class="td-heading-self-link" href="#fork-and-clone-the-repository" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>Fork the repository&lt;/p></description></item><item><title>Krkn-lib</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/krkn-lib/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/krkn-lib/</guid><description>&lt;p>&lt;img src="https://img.shields.io/pypi/v/krkn-lib?label=PyPi" alt="PyPI">&lt;/p>
&lt;h1 id="krkn-lib">
 krkn-lib
 &lt;a class="td-heading-self-link" href="#krkn-lib" aria-label="Heading self-link">&lt;/a>
&lt;/h1>
&lt;h2 id="krkn-chaos-and-resiliency-testing-tool-foundation-library">
 Krkn Chaos and resiliency testing tool Foundation Library
 &lt;a class="td-heading-self-link" href="#krkn-chaos-and-resiliency-testing-tool-foundation-library" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;h3 id="contents">
 Contents
 &lt;a class="td-heading-self-link" href="#contents" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>The Library contains Classes, Models and helper functions used in &lt;a href="https://github.com/krkn-chaos/krkn">Kraken&lt;/a> to interact with
Kubernetes, Openshift and other external APIS.
The goal of this library is to give to developers the building blocks to realize new Chaos
Scenarios and to increase the testability and the modularity of the Krkn codebase.&lt;/p></description></item><item><title>Adding scenarios via plugin api</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/scenario_plugin_api/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/scenario_plugin_api/</guid><description>&lt;h1 id="scenario-plugin-api">
 Scenario Plugin API:
 &lt;a class="td-heading-self-link" href="#scenario-plugin-api" aria-label="Heading self-link">&lt;/a>
&lt;/h1>
&lt;p>This API enables seamless integration of Scenario Plugins for Krkn. Plugins are automatically
detected and loaded by the plugin loader, provided they extend the &lt;code>AbstractPluginScenario&lt;/code>
abstract class, implement the required methods, and adhere to the specified &lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/scenario_plugin_api/#naming-conventions">naming conventions&lt;/a>.&lt;/p>
&lt;h2 id="plugin-folder">
 Plugin folder:
 &lt;a class="td-heading-self-link" href="#plugin-folder" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;p>The plugin loader automatically loads plugins found in the &lt;code>krkn/scenario_plugins&lt;/code> directory,
relative to the Krkn root folder. Each plugin must reside in its own directory and can consist
of one or more Python files. The entry point for each plugin is a Python class that extends the
&lt;a href="https://github.com/krkn-chaos/krkn/blob/main/krkn/scenario_plugins/abstract_scenario_plugin.py">AbstractPluginScenario&lt;/a> abstract class and implements its required methods.&lt;/p></description></item><item><title>Getting Started</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/krkn_ai/getting-started-krkn-ai/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/krkn_ai/getting-started-krkn-ai/</guid><description>&lt;h2 id="getting-started-with-krkn-ai">
 Getting Started with Krkn-AI
 &lt;a class="td-heading-self-link" href="#getting-started-with-krkn-ai" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;p>This documentation details how to deploy a sample microservice application on Kubernetes Cluster and run Krkn-AI test.&lt;/p>
&lt;h3 id="prerequisites">
 Prerequisites
 &lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Follow this &lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/krkn-ai/">guide&lt;/a> to install Krkn-AI CLI.&lt;/li>
&lt;li>Krkn-AI uses Thanos Querier to fetch SLO metrics by PromQL. You can easily install it by setting up &lt;a href="https://github.com/prometheus-operator/prometheus-operator">prometheus-operator&lt;/a> in your cluster.&lt;/li>
&lt;/ul>
&lt;h3 id="deploy-sample-microservice">
 Deploy Sample Microservice
 &lt;a class="td-heading-self-link" href="#deploy-sample-microservice" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>For demonstration purpose, we will deploy a sample microservice called &lt;a href="https://github.com/instana/robot-shop">robot-shop&lt;/a> on the cluster:&lt;/p></description></item><item><title>krkn-hub</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/krkn-hub/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/krkn-hub/</guid><description>&lt;!-- 

&lt;div class="pageinfo pageinfo-primary">
&lt;p>Krkn-hub aka kraken-hub&lt;/p>

&lt;/div>
 -->
&lt;p>Hosts container images and wrapper for running scenarios supported by &lt;a href="https://github.com/krkn-chaos/krkn/">Krkn&lt;/a>, a chaos testing tool for Kubernetes clusters to ensure it is resilient to failures. All we need to do is run the containers with the respective environment variables defined as supported by the scenarios without having to maintain and tweak files!&lt;/p>
&lt;h2 id="set-up">
 Set Up
 &lt;a class="td-heading-self-link" href="#set-up" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;p>You can use docker or podman to run kraken-hub&lt;/p></description></item><item><title>Adding New Scenario to Krkn-hub</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/editing-krkn-hub/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/editing-krkn-hub/</guid><description>&lt;h2 id="addingediting-a-new-scenario-to-krkn-hub">
 Adding/Editing a New Scenario to Krkn-hub
 &lt;a class="td-heading-self-link" href="#addingediting-a-new-scenario-to-krkn-hub" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>Create folder with scenario name under &lt;a href="https://github.com/krkn-chaos/krkn-hub/tree/main">krkn-hub&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Create generic scenario template with environment variables&lt;/p>
&lt;p>a. See &lt;a href="https://github.com/krkn-chaos/krkn-hub/blob/main/application-outages/app_outages.yaml.template">scenario.yaml&lt;/a> for example&lt;/p>
&lt;p>b. Almost all parameters should be set using a variable (these will be set in the env.sh file or through the command line environment variables)&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Add defaults for any environment variables in an &amp;ldquo;env.sh&amp;rdquo; file&lt;/p>
&lt;p>a. See &lt;a href="https://github.com/krkn-chaos/krkn-hub/blob/main/application-outages/env.sh">env.sh&lt;/a> for example&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Create script to run.sh chaos scenario
a. See &lt;a href="https://github.com/krkn-chaos/krkn-hub/blob/main/application-outages/run.sh">run.sh&lt;/a> for example&lt;/p></description></item><item><title>Getting Started</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/getting-started/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/getting-started/</guid><description>&lt;h2 id="tldr">
 TL;DR
 &lt;a class="td-heading-self-link" href="#tldr" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 1. Install krknctl&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">curl -fsSL https://raw.githubusercontent.com/krkn-chaos/krknctl/refs/heads/main/install.sh &lt;span class="p">|&lt;/span> bash
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 2. Create a test workload&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">kubectl create namespace chaos-test
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">kubectl create deployment nginx-test --image&lt;span class="o">=&lt;/span>nginx --replicas&lt;span class="o">=&lt;/span>&lt;span class="m">3&lt;/span> -n chaos-test
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 3. Run your first chaos scenario (pod disruption)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">krknctl run pod-scenarios --namespace chaos-test --pod-label &lt;span class="s2">&amp;#34;app=nginx-test&amp;#34;&lt;/span> --disruption-count &lt;span class="m">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 4. Verify pods recovered&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">kubectl get pods -n chaos-test -l &lt;span class="nv">app&lt;/span>&lt;span class="o">=&lt;/span>nginx-test
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h2 id="what-you-need">
 What you need
 &lt;a class="td-heading-self-link" href="#what-you-need" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Requirement&lt;/th>
 &lt;th>Minimum Version&lt;/th>
 &lt;th>Check Command&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Kubernetes or OpenShift cluster&lt;/td>
 &lt;td>1.21+&lt;/td>
 &lt;td>&lt;code>kubectl version&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>kubeconfig with cluster-admin access&lt;/td>
 &lt;td>—&lt;/td>
 &lt;td>&lt;code>kubectl get nodes&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Docker &lt;strong>or&lt;/strong> Podman&lt;/td>
 &lt;td>Docker 20.10+ / Podman 4.0+&lt;/td>
 &lt;td>&lt;code>docker --version&lt;/code> or &lt;code>podman --version&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="basic-run">
 Basic Run
 &lt;a class="td-heading-self-link" href="#basic-run" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;p>This is the best starting point if you are new to Krkn or want to explore a specific scenario quickly. No metrics, no scoring, no pipeline — just run a scenario and see what happens.&lt;/p></description></item><item><title>Metrics Validation</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/getting-started/user-journeys/metrics-validation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/getting-started/user-journeys/metrics-validation/</guid><description>&lt;p>&lt;strong>Goal:&lt;/strong> Run chaos and automatically evaluate Prometheus metrics — getting a clear pass or fail without manual inspection.&lt;/p>
&lt;p>This journey is well suited to CI/CD pipelines where you cannot watch the cluster in real time.&lt;/p>
&lt;h2 id="what-you-need">
 What you need
 &lt;a class="td-heading-self-link" href="#what-you-need" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>Everything from &lt;a href="../basic-run/">Basic Run&lt;/a>&lt;/li>
&lt;li>A Prometheus instance accessible from where Krkn runs (auto-detected on OpenShift; set via scenario flags on Kubernetes) — need to set one up? See &lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/testing-changes/#prometheus">installing Prometheus on a kind cluster&lt;/a>&lt;/li>
&lt;li>krknctl installed&lt;/li>
&lt;/ul>
&lt;h2 id="steps">
 Steps
 &lt;a class="td-heading-self-link" href="#steps" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>Install krknctl&lt;/strong> — follow the &lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/krknctl/">installation guide&lt;/a>.&lt;/p></description></item><item><title>Running a Chaos Scenario with Krkn</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/getting-started/getting-started-krkn/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/getting-started/getting-started-krkn/</guid><description>&lt;h2 id="getting-started-running-chaos-scenarios">
 Getting Started Running Chaos Scenarios
 &lt;a class="td-heading-self-link" href="#getting-started-running-chaos-scenarios" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;h2 id="config">
 Config
 &lt;a class="td-heading-self-link" href="#config" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;p>Instructions on how to setup the config and all the available options supported can be found at &lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/krkn/config/">Config&lt;/a>.&lt;/p>
&lt;p>In all the examples below you&amp;rsquo;ll replace the &lt;code>scenario_type&lt;/code> with the scenario plugin type that can be found in the &lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/scenarios/">second column here&lt;/a>&lt;/p>
&lt;h3 id="running-a-single-scenario">
 Running a Single Scenario
 &lt;a class="td-heading-self-link" href="#running-a-single-scenario" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>To run a single scenario, you&amp;rsquo;ll edit the krkn config file and only have 1 item in the list of chaos_scenarios&lt;/p></description></item><item><title>Setting Up Disconnected Environment</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/disconnected-env/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/disconnected-env/</guid><description>&lt;h2 id="getting-started-running-chaos-scenarios-in-a-disconnected-environment">
 Getting Started Running Chaos Scenarios in a Disconnected Environment
 &lt;a class="td-heading-self-link" href="#getting-started-running-chaos-scenarios-in-a-disconnected-environment" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;h3 id="mirror-following-images-on-the-bastion-host">
 Mirror following images on the bastion host
 &lt;a class="td-heading-self-link" href="#mirror-following-images-on-the-bastion-host" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>quay.io/krkn-chaos/krkn-hub:node-scenarios-bm&lt;/strong> - Master/worker node disruptions on baremetal&lt;/li>
&lt;li>&lt;strong>quay.io/krkn-chaos/krkn-hub:network-chaos&lt;/strong> - Network disruptions/traffic shaping&lt;/li>
&lt;li>&lt;strong>quay.io/krkn-chaos/krkn-hub:pod-scenarios&lt;/strong> - Pod level disruptions and evaluating recovery time/availability&lt;/li>
&lt;li>&lt;strong>quay.io/krkn-chaos/krkn-hub:syn-flood&lt;/strong> - Generates substantial amount of traffic/half open connections targeting a service&lt;/li>
&lt;li>&lt;strong>quay.io/krkn-chaos/krkn-hub:node-cpu-hog&lt;/strong> - Hogs CPU on the target nodes&lt;/li>
&lt;li>&lt;strong>quay.io/krkn-chaos/krkn-hub:node-io-hog&lt;/strong> - Hogs IO on the target nodes&lt;/li>
&lt;li>&lt;strong>quay.io/krkn-chaos/krkn-hub:node-memory-hog&lt;/strong> - Hogs memory on the target nodes&lt;/li>
&lt;li>&lt;strong>quay.io/krkn-chaos/krkn-hub:pvc-scenarios&lt;/strong> - Fills up a given PersistentVolumeClaim&lt;/li>
&lt;li>&lt;strong>quay.io/krkn-chaos/krkn-hub:service-hijacking&lt;/strong> - Simulates fake HTTP response for a service&lt;/li>
&lt;li>&lt;strong>quay.io/krkn-chaos/krkn-hub:power-outages&lt;/strong> - Shuts down the cluster and turns it back on&lt;/li>
&lt;li>&lt;strong>quay.io/krkn-chaos/krkn-hub:container-scenarios&lt;/strong> - Kills a container via provided kill signal&lt;/li>
&lt;li>&lt;strong>quay.io/krkn-chaos/krkn-hub:application-outages&lt;/strong> - Isolates application Ingress/Egress traffic&lt;/li>
&lt;li>&lt;strong>quay.io/krkn-chaos/krkn-hub:time-scenarios&lt;/strong> - Tweaks time/date on the nodes&lt;/li>
&lt;li>&lt;strong>quay.io/krkn-chaos/krkn-hub:pod-network-chaos&lt;/strong> - Introduces network chaos at pod level&lt;/li>
&lt;li>&lt;strong>quay.io/krkn-chaos/krkn-hub:node-network-filter&lt;/strong> - Node ip traffic filtering&lt;/li>
&lt;li>&lt;strong>quay.io/krkn-chaos/krkn-hub:pod-network-filter&lt;/strong> - DNS, internal/external service outages&lt;/li>
&lt;/ul>
&lt;h3 id="will-also-need-these-mirrored-images-inside-the-cluster">
 Will also need these mirrored images inside the cluster
 &lt;a class="td-heading-self-link" href="#will-also-need-these-mirrored-images-inside-the-cluster" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Network disruptions - &lt;strong>quay.io/krkn-chaos/krkn:tools&lt;/strong>&lt;/li>
&lt;li>Hog scenarios ( CPU, Memory and IO ) - &lt;strong>quay.io/krkn-chaos/krkn-hog&lt;/strong>&lt;/li>
&lt;li>SYN flood - &lt;strong>quay.io/krkn-chaos/krkn-syn-flood:latest&lt;/strong>&lt;/li>
&lt;li>Pod network filter scenarios - &lt;strong>quay.io/krkn-chaos/krkn-network-chaos:latest&lt;/strong>&lt;/li>
&lt;li>Service hijacking scenarios - &lt;strong>quay.io/krkn-chaos/krkn-service-hijacking:v0.1.3&lt;/strong>&lt;/li>
&lt;/ul>
&lt;h2 id="how-to-mirror">
 How to Mirror
 &lt;a class="td-heading-self-link" href="#how-to-mirror" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;p>The strategy is simple:&lt;/p></description></item><item><title>Adding New Scenario to Krknctl</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/krknctl-edits/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/krknctl-edits/</guid><description>&lt;h1 id="adding-a-new-scenario-to-krknctl">
 Adding a New Scenario to Krknctl
 &lt;a class="td-heading-self-link" href="#adding-a-new-scenario-to-krknctl" aria-label="Heading self-link">&lt;/a>
&lt;/h1>
&lt;p>For krknctl to find the parameters of the scenario it uses a krknctl input json file. Once this file is added to krkn-hub, krknctl will be able to find it along with the details of how to run the scenario.&lt;/p>
&lt;h2 id="add-krknctl-input-json">
 Add KrknCtl Input Json
 &lt;a class="td-heading-self-link" href="#add-krknctl-input-json" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;p>This file adds every environment variable that is set up for krkn-hub to be defined as a flag to the krknctl cli command. There are a number of different type of variables that you can use, each with their own required fields. See below for an example of the different variable types&lt;/p></description></item><item><title>Git Help For Contributions</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/contribution-guidelines/git-pointers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/contribution-guidelines/git-pointers/</guid><description>&lt;h1 id="how-to-contribute">
 How to contribute
 &lt;a class="td-heading-self-link" href="#how-to-contribute" aria-label="Heading self-link">&lt;/a>
&lt;/h1>
&lt;p>Contributions are always appreciated.&lt;/p>
&lt;p>How to:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/contribution-guidelines/git-pointers/#pull-request">Submit Pull Request&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/contribution-guidelines/git-pointers/#squash-commits">Squash Commits&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/contribution-guidelines/git-pointers/#rebase-with-upstream">Rebase with Upstream&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/contribution-guidelines/git-pointers/#developers-certificate-of-origin">Certificate of Origin&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="pull-request">
 Pull request
 &lt;a class="td-heading-self-link" href="#pull-request" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;p>In order to submit a change or a PR, please fork the project and follow instructions:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">$ git clone http://github.com/&amp;lt;me&amp;gt;/krkn-hub
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">$ &lt;span class="nb">cd&lt;/span> krkn-hub
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">$ git checkout -b &amp;lt;branch_name&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">$ &amp;lt;make change&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">$ git add &amp;lt;changes&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">$ git commit -a
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">$ &amp;lt;insert good message&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">$ git push
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="squash-commits">
 Squash Commits
 &lt;a class="td-heading-self-link" href="#squash-commits" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;p>If there are multiple commits, please rebase/squash multiple commits
before creating the PR by following:&lt;/p></description></item><item><title>Installation</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/</guid><description>&lt;h2 id="choose-your-installation-method">
 Choose Your Installation Method
 &lt;a class="td-heading-self-link" href="#choose-your-installation-method" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;p>Krkn provides multiple ways to run chaos scenarios. Choose the method that best fits your needs:&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Tool&lt;/th>
 &lt;th>What is it?&lt;/th>
 &lt;th>Best For&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/krknctl/">krknctl&lt;/a>&lt;/strong>&lt;/td>
 &lt;td>CLI tool with auto-completion&lt;/td>
 &lt;td>Complex workflow orchestration, querying and running scenarios, ease of use&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/krkn-hub/">krkn-hub&lt;/a>&lt;/strong>&lt;/td>
 &lt;td>Pre-built container images&lt;/td>
 &lt;td>CI/CD pipelines, automation&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/krkn-dashboard/">krkn Dashboard&lt;/a>&lt;/strong>&lt;/td>
 &lt;td>Web UI for running scenarios&lt;/td>
 &lt;td>Visual runs, demos, teams that prefer a GUI&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/krkn/">krkn&lt;/a>&lt;/strong>&lt;/td>
 &lt;td>Standalone Python program&lt;/td>
 &lt;td>Full control, development, and customization&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>


&lt;div class="alert alert-success" role="alert">
&lt;h4 class="alert-heading">Recommendation&lt;/h4>

 &lt;strong>krknctl&lt;/strong> is the recommended way to run Krkn. It provides the simplest path to chaos testing with powerful capabilities including complex workflow orchestration, built-in scenario discovery, and interactive query support — all without managing configuration files.

&lt;/div>



&lt;div class="alert alert-success" role="alert">
&lt;h4 class="alert-heading">Recommendation&lt;/h4>

 Look for features marked with [BETA] (e.g., [BETA] Krkn Resilience Score). Beta features provide early access to new capabilities for experimentation and feedback and may not yet meet the stability, performance, or compatibility guarantees of GA features. Please refer to the &lt;a href="https://github.com/krkn-chaos/krkn/blob/main/BETA_FEATURE_POLICY.md">Beta feature policy&lt;/a> for more details.

&lt;/div>

&lt;hr>
&lt;h2 id="installation-methods">
 Installation Methods
 &lt;a class="td-heading-self-link" href="#installation-methods" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;h3 id="krknctl-recommended">
 krknctl (Recommended)
 &lt;a class="td-heading-self-link" href="#krknctl-recommended" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>&lt;strong>What is it?&lt;/strong> A dedicated command-line interface (CLI) tool that simplifies running Krkn chaos scenarios while providing powerful orchestration capabilities.&lt;/p></description></item><item><title>Long-Term Storage</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/getting-started/user-journeys/long-term-storage/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/getting-started/user-journeys/long-term-storage/</guid><description>&lt;p>&lt;strong>Goal:&lt;/strong> Persist metrics from every chaos run into Elasticsearch so you can compare behavior across releases, dates, or cluster configurations.&lt;/p>
&lt;p>This journey enables regression analysis — for example, detecting that API server latency during a node failure has increased between software versions.&lt;/p>
&lt;h2 id="what-you-need">
 What you need
 &lt;a class="td-heading-self-link" href="#what-you-need" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>Everything from &lt;a href="../metrics-validation/">Metrics Validation&lt;/a>&lt;/li>
&lt;li>An Elasticsearch instance (self-hosted or managed) — need to set one up? See &lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/testing-changes/#elasticsearch">installing Elasticsearch on a kind cluster&lt;/a>&lt;/li>
&lt;li>krknctl installed&lt;/li>
&lt;/ul>
&lt;h2 id="steps">
 Steps
 &lt;a class="td-heading-self-link" href="#steps" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>Complete &lt;a href="../metrics-validation/">Metrics Validation&lt;/a>&lt;/strong> first to confirm Prometheus evaluation is working.&lt;/p></description></item><item><title>Adding to Krkn Test Suite</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/add-tests-krkn/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/add-tests-krkn/</guid><description>&lt;p>This guide covers how to add both unit tests and functional tests to the krkn project. Tests are essential for ensuring code quality and preventing regressions.&lt;/p>
&lt;h1 id="unit-tests">
 Unit Tests
 &lt;a class="td-heading-self-link" href="#unit-tests" aria-label="Heading self-link">&lt;/a>
&lt;/h1>
&lt;p>Unit tests in krkn are located in the &lt;code>tests/&lt;/code> directory and use Python&amp;rsquo;s &lt;code>unittest&lt;/code> framework with comprehensive mocking to avoid requiring external dependencies like cloud providers or Kubernetes clusters.&lt;/p>
&lt;h2 id="creating-a-unit-test">
 Creating a Unit Test
 &lt;a class="td-heading-self-link" href="#creating-a-unit-test" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;h3 id="1-file-location-and-naming">
 1. File Location and Naming
 &lt;a class="td-heading-self-link" href="#1-file-location-and-naming" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>Place your test file in the &lt;code>tests/&lt;/code> directory with the naming pattern &lt;code>test_&amp;lt;feature&amp;gt;.py&lt;/code>:&lt;/p></description></item><item><title>Krkn-AI</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/krkn-ai/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/krkn-ai/</guid><description>&lt;h2 id="installation">
 Installation
 &lt;a class="td-heading-self-link" href="#installation" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;h3 id="prerequisites">
 Prerequisites
 &lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Python 3.11+&lt;/li>
&lt;li>Podman or Docker Container Runtime&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/krknctl/">krknctl&lt;/a>&lt;/li>
&lt;li>&lt;code>uv&lt;/code> package manager (recommended) or &lt;code>pip&lt;/code>&lt;/li>
&lt;/ul>
&lt;h3 id="clone-the-repository">
 Clone the Repository
 &lt;a class="td-heading-self-link" href="#clone-the-repository" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>To clone and use the latest krkn version follow the directions below. If you&amp;rsquo;re wanting to contribute back to Krkn-AI in anyway in the future we recommend &lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/krkn-ai/#fork-and-clone-the-repository">forking the repository&lt;/a> first before cloning.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">$ git clone https://github.com/krkn-chaos/krkn-ai.git
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">$ &lt;span class="nb">cd&lt;/span> krkn-ai
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="fork-and-clone-the-repository">
 Fork and Clone the Repository
 &lt;a class="td-heading-self-link" href="#fork-and-clone-the-repository" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>Fork the repository&lt;/p></description></item><item><title>License Header &amp; Pre-Commit</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/contribution-guidelines/pre-commit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/contribution-guidelines/pre-commit/</guid><description>&lt;h1 id="license-header--pre-commit">
 License Header &amp;amp; Pre-Commit
 &lt;a class="td-heading-self-link" href="#license-header--pre-commit" aria-label="Heading self-link">&lt;/a>
&lt;/h1>
&lt;p>Krkn enforces Apache 2.0 license headers on all Python files using a pre-commit hook. Contributors must have this set up before submitting pull requests.&lt;/p>
&lt;h2 id="setup-one-time">
 Setup (one-time)
 &lt;a class="td-heading-self-link" href="#setup-one-time" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">pip install pre-commit
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">pre-commit install
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="check-license-headers-manually">
 Check license headers manually
 &lt;a class="td-heading-self-link" href="#check-license-headers-manually" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">python scripts/check_license.py
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="auto-fix-all-missing-headers">
 Auto-fix all missing headers
 &lt;a class="td-heading-self-link" href="#auto-fix-all-missing-headers" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">python scripts/check_license.py --fix
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="run-via-pre-commit-against-all-files">
 Run via pre-commit against all files
 &lt;a class="td-heading-self-link" href="#run-via-pre-commit-against-all-files" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">pre-commit run check-license-header --all-files
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Resilience Score</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/getting-started/user-journeys/resilience-score/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/getting-started/user-journeys/resilience-score/</guid><description>&lt;p>&lt;strong>Goal:&lt;/strong> Generate a numerical score (0–100%) that represents how well your environment held up during chaos — giving you more signal than a binary pass/fail.&lt;/p>
&lt;p>A resilience score lets you track improvement over time, compare environments, and set score thresholds as release gates.&lt;/p>


&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Beta Feature&lt;/h4>

 Resiliency Scoring is currently in Beta. The configuration format and scoring behavior may change in future releases.

&lt;/div>

&lt;h2 id="what-you-need">
 What you need
 &lt;a class="td-heading-self-link" href="#what-you-need" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>Everything from &lt;a href="../metrics-validation/">Metrics Validation&lt;/a>&lt;/li>
&lt;li>krknctl installed&lt;/li>
&lt;/ul>
&lt;h2 id="how-scoring-works">
 How scoring works
 &lt;a class="td-heading-self-link" href="#how-scoring-works" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;p>After a chaos scenario completes, Krkn evaluates a set of SLOs (defined as PromQL expressions) over the chaos time window. Each SLO is &lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/krkn/resiliency-score/#the-scoring-algorithm">weighted by severity&lt;/a>:&lt;/p></description></item><item><title>Testing your changes</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/testing-changes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/testing-changes/</guid><description>&lt;ul>
&lt;li>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/testing-changes/#configure-kind-testing-environment">Configure Kind environment&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/testing-changes/#testing-changes-in-krkn-lib">Testing Changes in Krkn-lib&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/testing-changes/#testing-changes-in-krkn">Testing Changes in Krkn&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/testing-changes/#testing-changes-for-krkn-hub">Testing Changes in Krkn-hub&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/testing-changes/#testing-changes-in-krknctl">Testing Changes in Krknctl&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>This page gives details about how you can get a kind cluster configured to be able to run on krkn-lib (the lowest level of krkn-chaos repos) up through krknctl (our easiest way to run and highest level repo)&lt;/p>
&lt;h2 id="configure-kind-testing-environment">
 Configure Kind Testing Environment
 &lt;a class="td-heading-self-link" href="#configure-kind-testing-environment" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>&lt;a href="https://kind.sigs.k8s.io/docs/user/quick-start/#installation">Install kind&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Create cluster using &lt;a href="https://github.com/krkn-chaos/krkn-lib/blob/main/kind-config.yml">kind-config.yml&lt;/a> under &lt;em>krkn-lib&lt;/em> base folder&lt;/p></description></item><item><title>Krkn Dashboard</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/krkn-dashboard/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/krkn-dashboard/</guid><description>&lt;p>The Krkn Dashboard is a web UI for running and observing Krkn chaos scenarios. You can run it &lt;strong>locally&lt;/strong> (Node.js on your machine), &lt;strong>containerized&lt;/strong> (Podman/Docker), or via &lt;strong>krknctl&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h2 id="prerequisites-all-methods">
 Prerequisites (all methods)
 &lt;a class="td-heading-self-link" href="#prerequisites-all-methods" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Kubernetes cluster&lt;/strong> — You need a cluster and a kubeconfig so that the dashboard can target it for chaos runs. If you don&amp;rsquo;t have one, see &lt;a href="https://kubernetes.io/docs/setup/">Kubernetes&lt;/a>, &lt;a href="https://minikube.sigs.k8s.io/docs/start/">minikube&lt;/a>, &lt;a href="https://rancher.com/docs/k3s/latest/en/quick-start/">K3s&lt;/a>, or &lt;a href="https://docs.openshift.com/container-platform/latest/welcome/index.html">OpenShift&lt;/a>.&lt;/li>
&lt;li>&lt;strong>Podman or Docker&lt;/strong> — The dashboard starts chaos runs by launching krkn-hub containers; the host must have Podman (or Docker) installed and available.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="local-installation">
 Local installation
 &lt;a class="td-heading-self-link" href="#local-installation" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;p>Run the dashboard on your machine with Node.js.&lt;/p></description></item><item><title>Multi-Cluster Orchestration</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/getting-started/user-journeys/multi-cluster/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/getting-started/user-journeys/multi-cluster/</guid><description>&lt;p>&lt;strong>Goal:&lt;/strong> Run chaos scenarios across multiple clusters or cloud environments from a single control point — useful for validating a multi-region application or comparing cluster configurations.&lt;/p>
&lt;p>The recommended approach for multi-cluster orchestration is &lt;strong>krkn-operator&lt;/strong>: a Kubernetes operator that runs on a dedicated control plane cluster and dispatches chaos scenarios to any number of registered target clusters, without distributing credentials to individual users.&lt;/p>
&lt;h2 id="how-krkn-operator-works">
 How krkn-operator works
 &lt;a class="td-heading-self-link" href="#how-krkn-operator-works" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>A &lt;strong>control plane cluster&lt;/strong> runs the operator and its web console&lt;/li>
&lt;li>&lt;strong>Target clusters&lt;/strong> are registered once by an administrator (via kubeconfig, service account token, or username/password)&lt;/li>
&lt;li>Users select one or more targets through the web UI and launch scenarios — they never handle cluster credentials directly&lt;/li>
&lt;li>Scenarios run in parallel across all selected targets&lt;/li>
&lt;/ul>
&lt;p>This design preserves the original Krkn architecture (chaos runs from outside the cluster) while adding a secure, centralized orchestration layer.&lt;/p></description></item><item><title>Cerberus</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/cerberus/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/cerberus/</guid><description>&lt;h1 id="cerberus">
 Cerberus
 &lt;a class="td-heading-self-link" href="#cerberus" aria-label="Heading self-link">&lt;/a>
&lt;/h1>
&lt;p>Guardian of Kubernetes and OpenShift Clusters&lt;/p>
&lt;p>Cerberus watches the Kubernetes/OpenShift clusters for dead nodes, system component failures/health and exposes a go or no-go signal which can be consumed by other workload generators or applications in the cluster and act accordingly.&lt;/p>
&lt;h3 id="workflow">
 Workflow
 &lt;a class="td-heading-self-link" href="#workflow" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>&lt;img src="https://deploy-preview-515--krkn-chaos.netlify.app/images/cerberus-workflow.png" alt="Cerberus workflow">&lt;/p>
&lt;h3 id="installation">
 Installation
 &lt;a class="td-heading-self-link" href="#installation" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>Instructions on how to setup, configure and run Cerberus can be found at &lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/cerberus/installation/">Installation&lt;/a>.&lt;/p></description></item><item><title>Developers Guide</title><link>https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/</guid><description>&lt;p>This document describes how to develop and add to Krkn. Before you start, it is recommended that you read the following documents first:&lt;/p>
&lt;ol>
&lt;li>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/krkn/">Krkn Main README&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/scenarios/">List of all Supported Scenarios&lt;/a>&lt;/li>
&lt;/ol>
&lt;p>Be sure to properly &lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/installation/">install&lt;/a> Krkn. Then you can start to develop krkn. The following documents will help you get started:&lt;/p>
&lt;ol>
&lt;li>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/krkn-lib/">Add k8s functionality to krkn-lib&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/scenario_plugin_api/">Add a New Chaos Scenario using Plugin API&lt;/a>: Adding a new scenario into krkn&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-515--krkn-chaos.netlify.app/docs/developers-guide/testing-changes/">Test your changes&lt;/a>&lt;/li>
&lt;/ol>
&lt;p>&lt;code>NOTE: All base kubernetes functionality should be added into krkn-lib and called from krkn&lt;/code>&lt;/p></description></item></channel></rss>