<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Architecture on Krkn</title><link>https://krkn-chaos.dev/tags/architecture/</link><description>Recent content in Architecture on Krkn</description><generator>Hugo</generator><language>en</language><atom:link href="https://krkn-chaos.dev/tags/architecture/index.xml" rel="self" type="application/rss+xml"/><item><title>Scenario Architecture</title><link>https://krkn-chaos.dev/docs/developers-guide/scenario-architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://krkn-chaos.dev/docs/developers-guide/scenario-architecture/</guid><description>&lt;p>A custom scenario connects two contracts: a &lt;strong>container image contract&lt;/strong> for
discovery and execution, and a &lt;strong>Python plugin contract&lt;/strong> for the Krkn engine.
The image carries the metadata needed to present a scenario to users; the
plugin implements the behavior that Krkn runs.&lt;/p>
&lt;figure>&lt;a href="https://krkn-chaos.dev/images/developers-guide/scenario-lifecycle.svg">&lt;img src="https://krkn-chaos.dev/images/developers-guide/scenario-lifecycle.svg"
 alt="A registry supplies image metadata to krknctl and Krkn Operator. The operator creates a scenario Pod, whose startup script turns environment variables into YAML. Krkn selects the plugin, which calls the target API through krkn-lib.">&lt;/a>&lt;figcaption>
 &lt;p>The same image connects discovery, configuration, and execution. Select the diagram to view it at full size.&lt;/p></description></item></channel></rss>