<?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-247--krkn-chaos.netlify.app/tags/docs/</link><description>Recent content in Docs on Krkn</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 23 Mar 2026 15:33:32 -0400</lastBuildDate><atom:link href="https://deploy-preview-247--krkn-chaos.netlify.app/tags/docs/index.xml" rel="self" type="application/rss+xml"/><item><title>Krkn</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/installation/krkn/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--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-247--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-247--krkn-chaos.netlify.app/docs/developers-guide/krkn-lib/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--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-247--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-247--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-247--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-247--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-247--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-247--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-247--krkn-chaos.netlify.app/docs/installation/krkn-hub/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--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-247--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-247--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>Running a Chaos Scenario with Krkn</title><link>https://deploy-preview-247--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-247--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-247--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-247--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 Enviornment</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/installation/disconnected-env/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--krkn-chaos.netlify.app/docs/installation/disconnected-env/</guid><description>&lt;h2 id="getting-started-running-chaos-scenarios-in-a-disconnected-enviornment">
 Getting Started Running Chaos Scenarios in a Disconnected Enviornment
 &lt;a class="td-heading-self-link" href="#getting-started-running-chaos-scenarios-in-a-disconnected-enviornment" 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-247--krkn-chaos.netlify.app/docs/developers-guide/krknctl-edits/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--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-247--krkn-chaos.netlify.app/docs/contribution-guidelines/git-pointers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--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-247--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-247--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-247--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-247--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>Adding to Krkn Test Suite</title><link>https://deploy-preview-247--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-247--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>Getting Started with Running Scenarios</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/getting-started/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--krkn-chaos.netlify.app/docs/getting-started/</guid><description>&lt;h2 id="quick-start-with-krknctl-recommended">
 Quick Start with krknctl (Recommended)
 &lt;a class="td-heading-self-link" href="#quick-start-with-krknctl-recommended" aria-label="Heading self-link">&lt;/a>
&lt;/h2>


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

 &lt;strong>krknctl is the recommended and easiest way to run krkn scenarios.&lt;/strong> It provides command auto-completion, input validation, and abstracts the complexities of the container environment so you can focus on chaos engineering.

&lt;/div>

&lt;h3 id="why-krknctl">
 Why krknctl?
 &lt;a class="td-heading-self-link" href="#why-krknctl" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>krknctl is a dedicated CLI tool that streamlines running chaos scenarios by providing:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Command auto-completion&lt;/strong> - Quick access to all available commands&lt;/li>
&lt;li>&lt;strong>Input validation&lt;/strong> - Catch errors before they happen&lt;/li>
&lt;li>&lt;strong>Scenario descriptions&lt;/strong> - Built-in documentation and instructions&lt;/li>
&lt;li>&lt;strong>Simple workflow&lt;/strong> - No need to manage config files or containers&lt;/li>
&lt;/ul>
&lt;h3 id="get-started-in-3-steps">
 Get Started in 3 Steps:
 &lt;a class="td-heading-self-link" href="#get-started-in-3-steps" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>Install krknctl&lt;/strong> - Follow the &lt;a href="https://deploy-preview-247--krkn-chaos.netlify.app/docs/installation/krknctl/">installation guide&lt;/a>&lt;/li>
&lt;li>&lt;strong>Explore features&lt;/strong> - Learn about &lt;a href="https://deploy-preview-247--krkn-chaos.netlify.app/docs/krknctl/usage/">krknctl usage&lt;/a> and how to execute chaos scenarios&lt;/li>
&lt;li>&lt;strong>Run scenarios&lt;/strong> - Check out each &lt;a href="https://deploy-preview-247--krkn-chaos.netlify.app/docs/scenarios/">scenario&amp;rsquo;s documentation&lt;/a> for krknctl examples&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="alternative-methods">
 Alternative Methods
 &lt;a class="td-heading-self-link" href="#alternative-methods" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;p>The following alternative methods are available for advanced use cases:&lt;/p></description></item><item><title>Installation</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/installation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--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-247--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-247--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-247--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-247--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;h2 id="hahahugoshortcode36s1hbhb">
 

&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;a class="td-heading-self-link" href="#hahahugoshortcode36s1hbhb" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&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>Krkn-AI</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/installation/krkn-ai/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--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-247--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-247--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>Testing your changes</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/developers-guide/testing-changes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--krkn-chaos.netlify.app/docs/developers-guide/testing-changes/</guid><description>&lt;ul>
&lt;li>&lt;a href="https://deploy-preview-247--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-247--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-247--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-247--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-247--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>Health Check Plugins</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/developers-guide/health-check-plugins/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--krkn-chaos.netlify.app/docs/developers-guide/health-check-plugins/</guid><description>&lt;h1 id="health-check-plugins">
 Health Check Plugins
 &lt;a class="td-heading-self-link" href="#health-check-plugins" aria-label="Heading self-link">&lt;/a>
&lt;/h1>
&lt;p>Health check plugins allow Krkn to continuously monitor the health of your services and infrastructure &lt;strong>during&lt;/strong> chaos experiments. They run in background threads alongside the chaos scenario, detecting outages, tracking downtime duration, and collecting telemetry data.&lt;/p>
&lt;h2 id="overview">
 Overview
 &lt;a class="td-heading-self-link" href="#overview" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;p>The health check system uses a plugin architecture:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;code>HealthCheckFactory&lt;/code>&lt;/strong> — automatically discovers and loads all plugins from the &lt;code>krkn.health_checks&lt;/code> package&lt;/li>
&lt;li>&lt;strong>&lt;code>AbstractHealthCheckPlugin&lt;/code>&lt;/strong> — base class all plugins must extend&lt;/li>
&lt;li>Plugins run in separate threads and write telemetry to a shared queue&lt;/li>
&lt;li>The factory tracks all active plugin instances and provides lifecycle management (&lt;code>increment_all_iterations&lt;/code>, &lt;code>stop_all&lt;/code>)&lt;/li>
&lt;/ul>
&lt;h3 id="exit-codes">
 Exit Codes
 &lt;a class="td-heading-self-link" href="#exit-codes" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Code&lt;/th>
 &lt;th>Meaning&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>0&lt;/code>&lt;/td>
 &lt;td>Success — all health checks passed&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>2&lt;/code>&lt;/td>
 &lt;td>Critical alert detected during the run&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>3&lt;/code>&lt;/td>
 &lt;td>Health check failure (e.g. &lt;code>exit_on_failure: true&lt;/code> triggered)&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="built-in-plugins">
 Built-in Plugins
 &lt;a class="td-heading-self-link" href="#built-in-plugins" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;h3 id="http-health-check-health_checks">
 &lt;a href="https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/health-checks/">HTTP Health Check&lt;/a> (&lt;code>health_checks&lt;/code>)
 &lt;a class="td-heading-self-link" href="#http-health-check-health_checks" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>Monitors HTTP endpoints by making periodic GET requests. Tracks status changes, measures downtime duration, and records telemetry for each state transition.&lt;/p></description></item><item><title>Krkn Dashboard</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/installation/krkn-dashboard/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--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) or &lt;strong>containerized&lt;/strong> (Podman/Docker).&lt;/p>
&lt;hr>
&lt;h2 id="prerequisites-both-methods">
 Prerequisites (both methods)
 &lt;a class="td-heading-self-link" href="#prerequisites-both-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>Cerberus</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/cerberus/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--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-247--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-247--krkn-chaos.netlify.app/docs/cerberus/installation/">Installation&lt;/a>.&lt;/p></description></item><item><title>Developers Guide</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/developers-guide/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--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-247--krkn-chaos.netlify.app/docs/krkn/">Krkn Main README&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-247--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-247--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-247--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-247--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-247--krkn-chaos.netlify.app/docs/developers-guide/health-check-plugins/">Add a Health Check Plugin&lt;/a>: Monitor services during chaos using the health check plugin system&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-247--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>