<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>System-Upgrade-Controller on Apurv Kiri | Tech Notes</title>
    <link>https://apurv.me/tags/system-upgrade-controller/</link>
    <description>Recent content in System-Upgrade-Controller on Apurv Kiri | Tech Notes</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-gb</language>
    <lastBuildDate>Fri, 30 Oct 2026 01:55:15 +0530</lastBuildDate><atom:link href="https://apurv.me/tags/system-upgrade-controller/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Kubernetes - Automated K3s Upgrades with System Upgrade Controller</title>
      <link>https://apurv.me/posts/kubernetes-automated-k3s-upgrades-with-system-upgrade-controller/</link>
      <pubDate>Fri, 30 Oct 2026 01:55:15 +0530</pubDate>
      
      <guid>https://apurv.me/posts/kubernetes-automated-k3s-upgrades-with-system-upgrade-controller/</guid>
      
      <description>&lt;hr&gt;
&lt;p&gt;This post is part of our ongoing series of posts for Kubernetes. In this post, we will upgrade our K3s cluster using &lt;strong&gt;System Upgrade Controller&lt;/strong&gt;, a Kubernetes controller from Rancher that upgrades nodes based on declarative &lt;code&gt;Plan&lt;/code&gt; resources.&lt;/p&gt;
&lt;p&gt;In our &lt;a href=&#34;https://apurv.me/posts/kubernetes-automated-dependency-updates-with-renovate/&#34;&gt;previous post&lt;/a&gt;, Renovate pointed out how outdated our Helm charts were, and we held back some of the updates because they need a newer Kubernetes version. The cluster itself was even further behind: the server node was running &lt;code&gt;v1.31.5+k3s1&lt;/code&gt;, the agent node &lt;code&gt;v1.31.6+k3s1&lt;/code&gt;, while the current stable K3s release is &lt;code&gt;v1.36.5+k3s1&lt;/code&gt;. Upgrading K3s manually means SSHing into every node, cordoning it, running the install script again with the new version and waiting for it to come back, one node and one minor version at a time. Doing this by hand is error-prone and time-consuming.&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
