<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Homelab on khz</title><link>https://blog.khzaw.dev/tags/homelab/</link><description>Recent content in Homelab on khz</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 22 Feb 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://blog.khzaw.dev/tags/homelab/index.xml" rel="self" type="application/rss+xml"/><item><title>A self-tuning kubernetes homelab</title><link>https://blog.khzaw.dev/posts/self-tuning-kubernetes-homelab/</link><pubDate>Sun, 22 Feb 2026 00:00:00 +0800</pubDate><guid>https://blog.khzaw.dev/posts/self-tuning-kubernetes-homelab/</guid><description>&lt;p&gt;Every now and then, I wake up to a pull request. It looks something like this:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.khzaw.dev/img/self-tuning-kubernetes-homelab/tune-pr_hu_8ca187341fae4fb4.webp" alt="A tuning PR opened automatically by the resource-advisor CronJob" loading="lazy" decoding="async" width="923" height="971"&gt;&lt;/p&gt;
&lt;p&gt;The diff is a handful of Kubernetes resource request and limit changes across a couple of HelmRelease manifests. The PR description explains why each change was made: which containers need more memory, which ones are overprovisioned, how the proposed state fits on each node. I review it, click merge, and &lt;a href="https://fluxcd.io/"&gt;Flux&lt;/a&gt; rolls it out. That&amp;rsquo;s it.&lt;/p&gt;</description></item></channel></rss>