&lt;?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Shorts · Costin Ștefan</title><link>https://shorts.costinstefan.ro/</link><description>A running feed of links, repos and tools worth keeping, curated by Costin Ștefan.</description><language>en-gb</language><atom:link href="https://shorts.costinstefan.ro/index.xml" rel="self" type="application/rss+xml"/><lastBuildDate>Tue, 01 Sep 2026 00:00:00 +0000</lastBuildDate><item><title>Multus CNI</title><link>https://github.com/k8snetworkplumbingwg/multus-cni</link><guid isPermaLink="false">https://github.com/k8snetworkplumbingwg/multus-cni</guid><pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate><description>&lt;p>Still the reference implementation for secondary interfaces on bare metal.
The thing the docs bury: a &lt;code>NetworkAttachmentDefinition&lt;/code> is namespaced, so
a pod cannot reference one from another namespace. Every Multus problem I
have debugged in the last year traced back to that one line.&lt;/p>&lt;hr>&lt;p>A CNI meta-plugin for multi-homed pods in Kubernetes, attaching multiple network interfaces to a single pod.&lt;/p></description><category>kubernetes</category><category>networking</category><category>openshift</category></item><item><title>etcd performance and tuning</title><link>https://etcd.io/docs/v3.5/op-guide/performance/</link><guid isPermaLink="false">https://etcd.io/docs/v3.5/op-guide/performance/</guid><pubDate>Thu, 27 Aug 2026 00:00:00 +0000</pubDate><description>&lt;p>Worth re-reading before blaming disks. Raft round-trip is bounded by fsync
latency, and the number nobody watches is event count — 700k accumulated
events will degrade a cluster long before the p99 write latency looks bad.&lt;/p>&lt;hr>&lt;p>How disk and network latency bound etcd throughput, and the settings that matter when they do.&lt;/p></description><category>etcd</category><category>kubernetes</category><category>performance</category></item><item><title>Cluster API Provider OpenStack</title><link>https://kubernetes-sigs.github.io/cluster-api-provider-openstack/</link><guid isPermaLink="false">https://kubernetes-sigs.github.io/cluster-api-provider-openstack/</guid><pubDate>Mon, 24 Aug 2026 00:00:00 +0000</pubDate><description>&lt;p>The CAPO reference I wish I had opened first. Read the flavor and image
sections before you write a single manifest — a missing flavor fails late,
during machine creation, and the error surfaces nowhere near the cause.&lt;/p>&lt;hr>&lt;p>Reference documentation for declaring and managing Kubernetes clusters on OpenStack with Cluster API.&lt;/p></description><category>openstack</category><category>kubernetes</category><category>capi</category></item><item><title>Flux components</title><link>https://fluxcd.io/flux/components/</link><guid isPermaLink="false">https://fluxcd.io/flux/components/</guid><pubDate>Wed, 19 Aug 2026 00:00:00 +0000</pubDate><description>&lt;p>The component breakdown is the page to hand someone who is new to Flux.
Once you see that source-controller and kustomize-controller are separate
reconcile loops, the &amp;ldquo;why has my change not landed&amp;rdquo; question answers itself.&lt;/p>&lt;hr>&lt;p>The GitOps toolkit controllers that make up Flux, and how each one reconciles its part of the system.&lt;/p></description><category>gitops</category><category>fluxcd</category><category>kubernetes</category></item><item><title>Ceph common issues</title><link>https://rook.io/docs/rook/latest-release/Troubleshooting/ceph-common-issues/</link><guid isPermaLink="false">https://rook.io/docs/rook/latest-release/Troubleshooting/ceph-common-issues/</guid><pubDate>Sat, 15 Aug 2026 00:00:00 +0000</pubDate><description>&lt;p>Bookmarking for the mon quorum section. A crashing mon is usually not a Rook
problem, it is Ceph telling you something through a crash report that Rook
never surfaces — check &lt;code>ceph crash ls&lt;/code> before touching the operator.&lt;/p>&lt;hr>&lt;p>Diagnosing the failures that show up most often in a Rook-managed Ceph cluster.&lt;/p></description><category>ceph</category><category>storage</category><category>kubernetes</category></item><item><title>Hardware transcoding</title><link>https://immich.app/docs/features/hardware-transcoding/</link><guid isPermaLink="false">https://immich.app/docs/features/hardware-transcoding/</guid><pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate><description>&lt;p>Set this up on the homelab box. The part that cost me an evening: hardware
transcoding needs the container to see the device &lt;em>and&lt;/em> the matching driver
userspace inside the image. Host driver alone is not enough.&lt;/p>&lt;hr>&lt;p>Configuring GPU-accelerated video transcoding in Immich, including per-vendor driver requirements.&lt;/p></description><category>homelab</category><category>selfhosted</category><category>docker</category></item><item><title>PCI(e) passthrough</title><link>https://pve.proxmox.com/wiki/PCI_Passthrough</link><guid isPermaLink="false">https://pve.proxmox.com/wiki/PCI_Passthrough</guid><pubDate>Thu, 06 Aug 2026 00:00:00 +0000</pubDate><description>&lt;p>The canonical passthrough page. Still the fastest way to work out whether
your IOMMU groups will cooperate before you buy hardware for a build.&lt;/p>&lt;hr>&lt;p>Passing physical devices through to Proxmox guests, covering IOMMU setup and group isolation.&lt;/p></description><category>homelab</category><category>proxmox</category><category>virtualization</category></item><item><title>512KB Club</title><link>https://512kb.club/</link><guid isPermaLink="false">https://512kb.club/</guid><pubDate>Thu, 30 Jul 2026 00:00:00 +0000</pubDate><description>&lt;p>The reason this site has no web fonts and no framework. A budget is a much
better design constraint than good intentions.&lt;/p>&lt;hr>&lt;p>A collection of performance-focused websites whose total uncompressed page weight stays under 512KB.&lt;/p></description><category>web</category><category>performance</category></item><item><title>Data templates</title><link>https://gohugo.io/templates/data-templates/</link><guid isPermaLink="false">https://gohugo.io/templates/data-templates/</guid><pubDate>Wed, 22 Jul 2026 00:00:00 +0000</pubDate><description>&lt;p>How this page is built — the whole feed is one YAML file walked by a
template. No content files, no taxonomy, no build step beyond Hugo itself.&lt;/p>&lt;hr>&lt;p>Reading structured YAML, JSON or TOML files from the data directory inside Hugo templates.&lt;/p></description><category>hugo</category><category>web</category></item></channel></rss>