<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Metadata on Krkn</title><link>https://krkn-chaos.dev/tags/metadata/</link><description>Recent content in Metadata on Krkn</description><generator>Hugo</generator><language>en</language><atom:link href="https://krkn-chaos.dev/tags/metadata/index.xml" rel="self" type="application/rss+xml"/><item><title>Scenario Image Contract</title><link>https://krkn-chaos.dev/docs/developers-guide/krknctl-edits/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://krkn-chaos.dev/docs/developers-guide/krknctl-edits/</guid><description>&lt;p>Krknctl and Krkn Operator discover scenario definitions from container image
metadata. To add a custom scenario, publish an image with the expected labels
and configure its registry in the client. You do not need to add the scenario
to krknctl&amp;rsquo;s source code when the existing input types cover its parameters.&lt;/p>
&lt;p>The &lt;a href="https://krkn-chaos.dev/docs/developers-guide/custom-scenario/package-and-test/">packaging lab&lt;/a>
builds this contract without rebuilding krkn-hub. The definitions are implemented
in krknctl&amp;rsquo;s &lt;a href="https://github.com/krkn-chaos/krknctl/blob/main/pkg/typing/field.go">input field parser&lt;/a>
and &lt;a href="https://github.com/krkn-chaos/krknctl/blob/main/pkg/typing/types.go">type validators&lt;/a>.&lt;/p>
&lt;h2 id="image-labels">
 Image labels
 &lt;a class="td-heading-self-link" href="#image-labels" aria-label="Heading self-link">&lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>&lt;code>krknctl.is_a_scenario&lt;/code>&lt;/strong> identifies scenario images when set to &lt;code>&amp;quot;true&amp;quot;&lt;/code>.&lt;/li>
&lt;li>&lt;strong>&lt;code>krknctl.title&lt;/code>&lt;/strong> and &lt;strong>&lt;code>krknctl.description&lt;/code>&lt;/strong> describe the scenario.&lt;/li>
&lt;li>&lt;strong>&lt;code>krknctl.input_fields&lt;/code>&lt;/strong> contains a JSON array of field descriptors.&lt;/li>
&lt;li>&lt;strong>&lt;code>krknctl.kubeconfig_path&lt;/code>&lt;/strong> appears in the companion image as metadata.
The clients used in this lab do not read it to configure the kubeconfig mount.
Set the &lt;a href="https://krkn-chaos.dev/docs/developers-guide/krknctl-edits/#kubeconfig-mount-path">runtime mount path&lt;/a> independently.&lt;/li>
&lt;li>&lt;strong>&lt;code>krknctl.privileged&lt;/code>&lt;/strong> declares a privilege requirement. It is not an RBAC
grant; actual permissions depend on the client, runtime, and target credentials.&lt;/li>
&lt;li>&lt;strong>&lt;code>krknctl.has_rollback&lt;/code>&lt;/strong> describes rollback capability. Set it to match
implemented behavior, not to indicate an intended future feature.&lt;/li>
&lt;/ul>
&lt;p>The base image can also supply global input labels such as
&lt;code>krknctl.input_fields.global&lt;/code>. Keep scenario-specific fields in the scenario
label rather than copying every framework setting into it.&lt;/p></description></item></channel></rss>