<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>What is Krkn? on Krkn</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/</link><description>Recent content in What is Krkn? on Krkn</description><generator>Hugo</generator><language>en</language><atom:link href="https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/index.xml" rel="self" type="application/rss+xml"/><item><title>Krkn Config Explanations</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/config/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/config/</guid><description>&lt;h1 id="config">
 Config
 &lt;a class="td-heading-self-link" href="#config" aria-label="Heading self-link">&lt;/a>
&lt;/h1>
&lt;p>Set the scenarios to inject and the tunings like duration to wait between each scenario in the config file located at &lt;a href="https://github.com/redhat-chaos/krkn/blob/main/config/config.yaml">config/config.yaml&lt;/a>.&lt;/p>
&lt;p>&lt;strong>NOTE&lt;/strong>: &lt;a href="https://github.com/redhat-chaos/krkn/blob/main/config/config_performance.yaml">config&lt;/a> can be used if leveraging the &lt;a href="https://github.com/redhat-chaos/krkn#setting-up-infrastructure-dependencies">automated way&lt;/a> to install the infrastructure pieces.&lt;/p>
&lt;p>Config components:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/config/#kraken">Kraken&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/config/#cerberus">Cerberus&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/config/#performance-monitoring">Performance Monitoring&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/config/#resiliency">Resiliency&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/config/#elastic">ElasticSearch&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/config/#tunings">Tunings&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/config/#telemetry">Telemetry&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/config/#health-checks">Health Checks&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/config/#virt-checks">Virt Checks&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="kraken">
 Kraken
 &lt;a class="td-heading-self-link" href="#kraken" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;p>This section defines scenarios and specific data to the chaos run&lt;/p>
&lt;h3 id="distribution">
 Distribution
 &lt;a class="td-heading-self-link" href="#distribution" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>The distribution is now automatically set based on some verification points. Depending on which distribution, either &lt;strong>openshift&lt;/strong> or &lt;strong>kubernetes&lt;/strong> other parameters will be automatically set.
The prometheus url/route and bearer token are automatically obtained in case of OpenShift, please be sure to set it when the distribution is Kubernetes.&lt;/p></description></item><item><title>Health Checks</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/health-checks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/health-checks/</guid><description>&lt;h3 id="health-checks">
 Health Checks
 &lt;a class="td-heading-self-link" href="#health-checks" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>Health checks provide real-time visibility into the impact of chaos scenarios on application availability and performance. They run continuously in the background throughout the chaos run, detecting outages, measuring downtime duration, and recording results in telemetry.&lt;/p>
&lt;p>Krkn supports multiple health check types through a plugin-based architecture:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;code>http_health_check&lt;/code>&lt;/strong> — monitors HTTP/HTTPS endpoints (documented on this page)&lt;/li>
&lt;li>&lt;strong>&lt;code>virt_health_check&lt;/code>&lt;/strong> — monitors KubeVirt VMI SSH connectivity (see &lt;a href="https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/virt-checks/">Kube Virt Checks&lt;/a>)&lt;/li>
&lt;li>&lt;strong>Custom plugins&lt;/strong> — extend the system with your own health check logic (see &lt;a href="https://deploy-preview-247--krkn-chaos.netlify.app/docs/developers-guide/health-check-plugins/">Health Check Plugins&lt;/a>)&lt;/li>
&lt;/ul>
&lt;p>Health checks are configured in the &lt;code>config.yaml&lt;/code> under the &lt;code>health_checks&lt;/code> key.&lt;/p></description></item><item><title>Krkn RBAC</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/rbac/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/rbac/</guid><description>&lt;h1 id="rbac-configurations">
 RBAC Configurations
 &lt;a class="td-heading-self-link" href="#rbac-configurations" aria-label="Heading self-link">&lt;/a>
&lt;/h1>
&lt;p>Krkn supports two types of RBAC configurations:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Ns-Privileged RBAC&lt;/strong>: Provides namespace-scoped permissions for scenarios that only require access to resources within a specific namespace.&lt;/li>
&lt;li>&lt;strong>Privileged RBAC&lt;/strong>: Provides cluster-wide permissions for scenarios that require access to cluster-level resources like nodes.&lt;/li>
&lt;/ol>








 
 
 


&lt;div class="alert alert-info" role="alert"> &lt;div class="alert-header">
 &lt;i class="fas fa-circle-info text-info">&lt;/i> &lt;span class="alert-title">INFO&lt;/span>
 &lt;/div>
 &lt;div class="alert-content">
 The examples below use placeholders such as &lt;code>target-namespace&lt;/code> and &lt;code>krkn-namespace&lt;/code> which should be replaced with your actual namespaces. The service account name &lt;code>krkn-sa&lt;/code> is also a placeholder that you can customize.
 &lt;/div>
&lt;/div>
&lt;h2 id="rbac-yaml-files">
 RBAC YAML Files
 &lt;a class="td-heading-self-link" href="#rbac-yaml-files" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;h3 id="ns-privileged-role">
 Ns-Privileged Role
 &lt;a class="td-heading-self-link" href="#ns-privileged-role" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>The ns-privileged role provides permissions limited to namespace-scoped resources:&lt;/p></description></item><item><title>Krkn Roadmap</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/krkn-roadmap/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/krkn-roadmap/</guid><description>&lt;h2 id="krkn-roadmap">
 Krkn Roadmap
 &lt;a class="td-heading-self-link" href="#krkn-roadmap" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;p>Following are a list of enhancements that we are planning to work on adding support in Krkn. Of course any help/contributions are greatly appreciated.&lt;/p>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &lt;a href="https://github.com/krkn-chaos/krkn/issues/424">Ability to run multiple chaos scenarios in parallel under load to mimic real world outages&lt;/a>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &lt;a href="https://github.com/krkn-chaos/krkn/issues/423">Centralized storage for chaos experiments artifacts&lt;/a>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &lt;a href="https://github.com/krkn-chaos/krkn/issues/394">Support for causing DNS outages&lt;/a>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &lt;a href="https://github.com/krkn-chaos/krkn/tree/main/utils/chaos-recommender">Chaos recommender&lt;/a> to suggest scenarios having probability of impacting the service under test using profiling results&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Chaos AI integration to improve test coverage while reducing fault space to save costs and execution time &lt;a href="https://github.com/krkn-chaos/krkn-chaos-ai">krkn-chaos-ai&lt;/a>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &lt;a href="https://github.com/krkn-chaos/krkn/issues/393">Support for pod level network traffic shaping&lt;/a>&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> &lt;a href="https://github.com/krkn-chaos/krkn/issues/124">Ability to visualize the metrics that are being captured by Kraken and stored in Elasticsearch&lt;/a>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Support for running all the scenarios of Kraken on Kubernetes distribution - see &lt;a href="https://github.com/krkn-chaos/krkn/issues/185">https://github.com/krkn-chaos/krkn/issues/185&lt;/a>, &lt;a href="https://github.com/redhat-chaos/krkn/issues/186">https://github.com/redhat-chaos/krkn/issues/186&lt;/a>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Continue to improve &lt;a href="https://krkn-chaos.github.io/krkn">Chaos Testing Guide&lt;/a> in terms of adding best practices, test environment recommendations and scenarios to make sure the OpenShift platform, as well the applications running on top it, are resilient and performant under chaotic conditions.&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &lt;a href="https://github.com/krkn-chaos/krkn/issues/495">Switch documentation references to Kubernetes&lt;/a>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &lt;a href="https://github.com/krkn-chaos/krkn/issues/497">OCP and Kubernetes functionalities segregation&lt;/a>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &lt;a href="https://github.com/krkn-chaos/krknctl">Krknctl - client for running Krkn scenarios with ease&lt;/a>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &lt;a href="https://github.com/krkn-chaos/krkn-lightspeed">AI Chat bot to help get started with Krkn and commands&lt;/a>&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> &lt;a href="https://github.com/krkn-chaos/krkn/issues/804">Ability to roll back cluster to original state if chaos fails&lt;/a>&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Add recovery time metrics to each scenario for better regression analysis&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> &lt;a href="https://github.com/krkn-chaos/krkn/issues/125">Add resiliency scoring to chaos scenarios ran on cluster&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Kube Virt Checks</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/virt-checks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/virt-checks/</guid><description>&lt;h3 id="kube-virt-checks">
 Kube Virt Checks
 &lt;a class="td-heading-self-link" href="#kube-virt-checks" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>Virt checks provide real-time visibility into the impact of chaos scenarios on VMI ssh connectivity and performance.
Virt checks are configured in the &lt;code>config.yaml&lt;/code> &lt;a href="https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/config/#virt-checks">here&lt;/a>&lt;/p>
&lt;p>The system periodically checks the VMI&amp;rsquo;s in the provided namespace based on the defined interval and records the results in Telemetry. The checks will run continuously from the very beginning of krkn until all scenarios are done and wait durations are complete. The telemetry data includes:&lt;/p></description></item><item><title>Resiliency Scoring</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/resiliency-score/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/resiliency-score/</guid><description>&lt;div class="alert alert-warning" role="alert"> &lt;div class="alert-header">
 &lt;i class="fas fa-triangle-exclamation text-warning">&lt;/i> &lt;span class="alert-title">WARNING&lt;/span>
 &lt;/div>
 &lt;div class="alert-content">
 &lt;p>&lt;strong>Beta Feature:&lt;/strong> Resiliency Scoring is currently in Beta. The API, configuration format, and scoring behavior may change in future releases.&lt;/p>
&lt;p>If you encounter any issues or unexpected behavior, please open a bug report at &lt;a href="https://github.com/krkn-chaos/krkn/issues">github.com/krkn-chaos/krkn/issues&lt;/a>. Include your configuration, krkn version, and any relevant logs or output.&lt;/p>

 &lt;/div>
&lt;/div>
&lt;h3 id="introduction">
 Introduction
 &lt;a class="td-heading-self-link" href="#introduction" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>&lt;strong>What is the Resiliency Score?&lt;/strong>
The Resiliency Score is a percentage (0-100%) that represents the health and stability of your Kubernetes cluster during a chaos scenario. It is calculated by evaluating a set of Service Level Objectives (SLOs) against live Prometheus data.&lt;/p></description></item><item><title>Signaling to Krkn</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/signal/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/signal/</guid><description>&lt;p>This functionality allows a user to be able to pause or stop the Krkn run at any time no matter the number of iterations or daemon_mode set in the config.&lt;/p>
&lt;p>If publish_kraken_status is set to True in the config, Krkn will start up a connection to a url at a certain port to decide if it should continue running.&lt;/p>
&lt;p>By default, it will get posted to http://0.0.0.0:8081/&lt;/p>
&lt;p>An example use case for this feature would be coordinating Krkn runs based on the status of the service installation or load on the cluster.&lt;/p></description></item><item><title>SLO Validation</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/slos_validation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/slos_validation/</guid><description>&lt;h2 id="slos-validation">
 SLOs validation
 &lt;a class="td-heading-self-link" href="#slos-validation" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;p>Krkn has a few different options that give a Pass/fail based on metrics captured from the cluster is important in addition to checking the health status and recovery. Krkn supports:&lt;/p>
&lt;h3 id="checking-for-critical-alerts-post-chaos">
 Checking for critical alerts post chaos
 &lt;a class="td-heading-self-link" href="#checking-for-critical-alerts-post-chaos" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>If enabled, the check runs at the end of each scenario ( post chaos ) and Krkn exits in case &lt;code>critical&lt;/code> alerts are firing to allow user to debug. You can enable it in the config:&lt;/p></description></item><item><title>Telemetry</title><link>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/telemetry/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-247--krkn-chaos.netlify.app/docs/krkn/telemetry/</guid><description>&lt;h3 id="telemetry-details">
 Telemetry Details
 &lt;a class="td-heading-self-link" href="#telemetry-details" aria-label="Heading self-link">&lt;/a>
&lt;/h3>
&lt;p>We wanted to gather some more insights regarding our Krkn runs that could have been post processed (eg. by a ML model) to have a better understanding about the behavior of the clusters hit by krkn, so we decided to include this as an opt-in feature that, based on the platform (Kubernetes/OCP), is able to gather different type of data and metadata in the time frame of each chaos run.
The telemetry service is currently able to gather several scenario and cluster metadata:
A json named telemetry.json containing:&lt;/p></description></item></channel></rss>