<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Promotion on johanneskueber.com</title><link>https://johanneskueber.com/tags/promotion/</link><description>Recent content in Promotion on johanneskueber.com</description><generator>Hugo</generator><language>en_US</language><lastBuildDate>Fri, 19 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://johanneskueber.com/tags/promotion/index.xml" rel="self" type="application/rss+xml"/><item><title>OCI-First GitOps Promotion with Flux, Kargo, and Renovate</title><link>https://johanneskueber.com/posts/2026-06-19-oci-gitpos-automatic-promotion/</link><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><guid>https://johanneskueber.com/posts/2026-06-19-oci-gitpos-automatic-promotion/</guid><description>&lt;h1 id="oci-first-gitops-promotion-with-flux-kargo-and-renovate"&gt;OCI-First GitOps Promotion with Flux, Kargo, and Renovate&lt;/h1&gt;
&lt;p&gt;This article describes a promotion architecture where &lt;strong&gt;the deployment definition lives in Git but is never deployed from Git&lt;/strong&gt;. Instead, every merge builds a signed OCI artifact containing the deployment manifests, and that artifact — immutable, versioned, digest-pinned — is what promotes through dev → staging → prod and what Flux actually deploys.&lt;/p&gt;
&lt;p&gt;Three tools, one responsibility each:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Renovate&lt;/strong&gt; updates the deployment definition in Git — new application image versions, third-party chart bumps, dependency updates. Its merged PRs are how change enters the pipeline.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kargo&lt;/strong&gt; promotes the resulting OCI artifact across environments, running automated tests at each gate.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flux&lt;/strong&gt; deploys the artifact into each cluster, verifying its signature before reconciling.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No human touches the routine path. Humans appear only at the optional prod approval gate and in emergencies.&lt;/p&gt;</description></item></channel></rss>