<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Argocd on Thomas Peters</title><link>https://www.sirmysterion.com/tags/argocd/</link><description>Recent content in Argocd on Thomas Peters</description><generator>Hugo</generator><language>en</language><managingEditor>thomas@tnepeters.com (Thomas Peters)</managingEditor><webMaster>thomas@tnepeters.com (Thomas Peters)</webMaster><copyright>&lt;a href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank" rel="noopener"&gt;CC BY-NC 4.0&lt;/a&gt;</copyright><lastBuildDate>Mon, 10 Aug 2026 21:07:53 -0600</lastBuildDate><atom:link href="https://www.sirmysterion.com/tags/argocd/index.xml" rel="self" type="application/rss+xml"/><item><title>Multi-Tenant Kubernetes with Kustomize Templates and ApplicationSets</title><link>https://www.sirmysterion.com/posts/20260810-multitenant-kubernetes-kustomize-appsets/</link><pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate><author>thomas@tnepeters.com (Thomas Peters)</author><guid>https://www.sirmysterion.com/posts/20260810-multitenant-kubernetes-kustomize-appsets/</guid><description>&lt;h1 id="the-problem"&gt;The Problem&lt;/h1&gt;
&lt;p&gt;I&amp;rsquo;ve been building a platform that runs the same application for multiple clients, with multiple users per client.
Every instance needs its own config, its own storage, and its own hostname.
Client A must never be able to reach client B, and that one has to be a guarantee rather than a convention.
Users inside a client are a softer boundary, which is a distinction worth making early because the design treats them very differently.
The naive approach is copy-pasting a pile of YAML per tenant, which works right up until you need to change one field across twenty instances.&lt;/p&gt;</description></item><item><title>One Repo, Many Clusters: ArgoCD ApplicationSets and the Root App Pattern</title><link>https://www.sirmysterion.com/posts/20260803-argocd-appsets-one-repo-many-clusters/</link><pubDate>Mon, 03 Aug 2026 00:00:00 +0000</pubDate><author>thomas@tnepeters.com (Thomas Peters)</author><guid>https://www.sirmysterion.com/posts/20260803-argocd-appsets-one-repo-many-clusters/</guid><description>&lt;h1 id="the-problem"&gt;The Problem&lt;/h1&gt;
&lt;p&gt;I run several Kubernetes clusters: bare-metal prod (talos-metal), legacy prod on VMs (talos-02), plus dev and edge clusters that come and go.
Every cluster needs roughly the same infrastructure: Cilium, cert-manager, external-dns, storage, monitoring.
On top of that, each one has its own set of apps.
Managing that by hand, or even with per-cluster ArgoCD Application manifests, turns into copy-paste drift almost immediately.&lt;/p&gt;
&lt;p&gt;What I want: adding an app to a cluster is &lt;code&gt;mkdir&lt;/code&gt; + &lt;code&gt;git push&lt;/code&gt;, and bootstrapping an entire new cluster is one &lt;code&gt;kubectl apply&lt;/code&gt; plus one label.&lt;/p&gt;</description></item></channel></rss>