Updating my Kubeadm k8s Cluster from 1.30 to 1.33

Wherein I talk about updating my kubeadm Kubernetes cluster from 1.30 to 1.33 using Ansible. I’ve been a bit lax on my Kubernetes cluster updates, and I was still running Kubernetes v1.30. I’m also currently on a trip to fix a number of the smaller tasks in my Homelab, paying down a bit of technical debt before tackling the next big projects. I already did one update, from my initial Kubernetes 1.29 to 1.30 in the past, using an Ansible playbook I wrote to codify the kubeadm upgrade procedure. But I never wrote a proper post about it, which I’m now rectifying. ...

September 21, 2025 · 17 min · Michael
The Bookwyrm logo. It shows a wyrm, meaning a dragon but without the wings, slithering around a book.

Setting up Bookwyrm

Wherein I’m adding Bookwyrm to my Homelab. I used to read novels. A lot. On school days, I would spend the approximately twenty minutes between the end of my morning routine and having to head off with a novel. Ditto for lazy Sunday evenings. During my service as a conscript, I would always find space for a book in my pack when we went on a training exercise. At University, the most difficult decision while packing for a trip home would be judging how many books I would need to pack to ensure I would not run out. ...

August 31, 2025 · 23 min · Michael

Organizing Helm charts and other Manifests with Helmfile

Wherein I describe how I organize Helm charts and other k8s manifests. I’ve had this post laying around in my draft folder for a long long time. Mostly because I started writing it before I realized how useful it is to write posts very close to when something happens. The “something happens” in this case is the answer to the question “How to organize my Helm charts and other k8s manifests?”. I liked Helm fine enough when I looked at it. It’s pretty nice to get all necessary manifests to run an app, instead of having to write all of them myself. But the question then was: How to store which exact Helm charts I have installed, and in which version? And how/where to store the values.yaml files? And then, what about random manifests, like additional PriorityClasses? ...

June 5, 2025 · 7 min · Michael
A picture of a table laden with Raspberry Pi components. There is three of most things. Three 500 GB Kioxia NVMe SSDs. Three Raspberry Pi 5 8Gb. Three official Pi 5 27W power supplies. Three Pimoroni NVMe baseplates. The one exception are the Racknex mounting plates. Of those there are six. Also visible in the foreground is a Hama precision screwdriver set.

Migrating my Kubernetes Control Plane to Raspberry Pi 5

I’ve had problems with the stability of my Kubernetes control plane ever since I migrated it to three Raspberry Pi 4 from their temporary home on a beefy x86 server. I will be going into more detail about the problem first, describe the Pi 5 with NVMe a bit, and then describe the migration itself. The problem I’ve noted in a couple of the last posts that I’ve started seeing instability in my Kubernetes control plane. The main symptom I saw were my HashiCorp Vault Pods going down regularly. This was pretty visible because I have not automated unsealing for Vault, so each time the Pods are restarted, I have to manually enter the unseal passphrase. ...

May 12, 2025 · 23 min · Michael

What's next after the K8s Migration?

Wherein I go over my future plans for the Homelab, now that the k8s migration is finally done. So it’s done. The k8s migration is finally complete, and I can now get started with some other projects. Or, well, I can once I’ve updated my control plane Pis to Pi 5 with NVMe SSDs. But what to do then? As it turns out, I’ve got a very full backlog. I’m decidedly not in danger of boredom. ...

April 29, 2025 · 18 min · Michael