<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Controllers on Felix Seifert</title>
		<link>https://felix-seifert.com/blog/tags/controllers/</link>
		<description>Recent content in Controllers on Felix Seifert</description>
		<generator>Hugo</generator>
		<language>en-gb</language>
		
		
		
			<copyright>Felix Seifert</copyright>
		
		
			<lastBuildDate>Tue, 20 Oct 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://felix-seifert.com/blog/tags/controllers/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Kubernetes Operators: The Reconciliation Loop</title>
				<link>https://felix-seifert.com/blog/how-kubernetes-operators-work/</link>
				<pubDate>Tue, 20 Oct 2026 00:00:00 +0000</pubDate>
				<guid>https://felix-seifert.com/blog/how-kubernetes-operators-work/</guid>
				<description>&lt;p&gt;&lt;em&gt;This is part 3 of a four-part series on building a Kubernetes operator: &#xA;&#xA;&#xA;&#xA;  &lt;a href=&#34;https://felix-seifert.com/blog/writing-a-basic-kubernetes-crd/&#34;&gt;CRDs&lt;/a&gt;&#xA;&#xA;, &#xA;&#xA;&#xA;&#xA;  &lt;a href=&#34;https://felix-seifert.com/blog/understanding-kubernetes-custom-resources/&#34;&gt;Custom Resources&lt;/a&gt;&#xA;&#xA;, Operators (this post) and &#xA;&#xA;&#xA;&#xA;  &lt;span class=&#34;series-upcoming&#34; title=&#34;Coming soon&#34;&gt;Kubebuilder&lt;/span&gt;&#xA;&#xA;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;pattern-and-not-kubernetes-built-in&#34;&gt;Pattern and Not Kubernetes Built-In&lt;/h2&gt;&#xA;&lt;p&gt;An &amp;ldquo;operator&amp;rdquo; is not a Kubernetes resource type or an API, I would consider it an architectural pattern: It comprises of a Custom Resource Definition (CRD) that describes the desired state (covered in &lt;a href=&#34;../writing-a-basic-kubernetes-crd/&#34;&gt;part one&lt;/a&gt;), and a controller that watches Custom Resource (CR) instances (covered in &lt;a href=&#34;../understanding-kubernetes-custom-resources/&#34;&gt;part two&lt;/a&gt;) and drives them towards this desired state. Something can be considered an operator rather than &amp;ldquo;just a controller&amp;rdquo; when it encodes real operational knowledge, which would otherwise live in a runbook, and runs continuously instead of being triggered by a human. You can think of a Kubernetes operator as the software representation of a human operator.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
