<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Security on rtnpro</title><link>https://rtnpro.com/tags/Security/</link><description>Recent content in Security on rtnpro</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Fri, 07 Aug 2026 09:00:00 +0530</lastBuildDate><atom:link href="https://rtnpro.com/tags/Security/index.xml" rel="self" type="application/rss+xml"/><item><title>Secrets in a GitOps World: Scopes, an External Store, and Never a Value in Git</title><link>https://rtnpro.com/post/2026-08-07-gitops-secrets-never-a-value-in-git/</link><pubDate>Fri, 07 Aug 2026 09:00:00 +0530</pubDate><guid>https://rtnpro.com/post/2026-08-07-gitops-secrets-never-a-value-in-git/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;Last week I walked through the Argo CD and Kargo objects a golden-path layer generates, and closed on the thing that &lt;em&gt;wasn&amp;rsquo;t&lt;/em&gt; there: not a single secret anywhere in those manifests. That wasn&amp;rsquo;t tidy example hygiene. It&amp;rsquo;s a design position, and this post defends it.&lt;/p&gt;
&lt;p&gt;The tension is familiar. The GitOps pitch is &lt;em&gt;everything in Git&lt;/em&gt; — desired state, reviewable, revertible, reconciled. The security pitch is &lt;em&gt;never commit a secret&lt;/em&gt;. The most common resolution is to split the difference: encrypt the secret and commit the ciphertext, with &lt;a href="https://github.com/bitnami-labs/sealed-secrets"&gt;Sealed Secrets&lt;/a&gt; or SOPS. It works, lots of good teams do it, and I think it&amp;rsquo;s the wrong default.&lt;/p&gt;</description></item></channel></rss>