The HashiCorp Nomad and Kubernetes logos, connected with an arrow pointing from Nomad to Kubernetes

Nomad to k8s, Part 14: Deploying the Backups

Wherein I’m finally done with the backups in my Homelab’s k8s cluster. This is part 15 of my k8s migration series. Finally, I’m done. After months of writing Python code for my backup operator. Especially during the middle phase of the implementation, after the initial planning and design, it felt like a slog. Dozens of tasks, many functions to implement, and seemingly no end in sight. I’m rather elated to finally be able to write another post in the k8s migration series. ...

January 23, 2025 · 11 min · Michael

Homelab Backup Operator Part III: Running Backups

In the last couple of months, I’ve been working on a k8s operator for running backups of persistent volumes and S3 buckets in my cluster. Previous installments of the series can be found here. And now, I’m finally done with it, and over the weekend, I ran the first successful backups. Time to describe what I’ve implemented, why and how. Recap Let’s start with a recap. For a more detailed description of the problem, have a look at this post in my k8s migration series. ...

January 10, 2025 · 21 min · Michael
The HashiCorp Nomad and Kubernetes logos, connected with an arrow pointing from Nomad to Kubernetes

Nomad to k8s, Part 13: Almost one year

Wherein I realize that I’ve been at this for almost a year now. This is part 14 of my k8s migration series. It has been quite a while since I last wrote a blog post about the migration. And I’ve realized today that it’s been almost a year since I made the decision to switch over to Kubernetes for my Homelab. On the 17th of August 2023, I posted about the HashiPocalypse. ...

August 15, 2024 · 4 min · Michael

Homelab Backup Operator Part II: Basic Framework

In the last post of my Backup Operator series, I lamented the state of permissions in the kopf Kubernetes Operator framework. After some thinking, I decided to go ahead with kopf and just accept the permission/RBAC ugliness. I’ve just finished implementing the first cluster state change in the operator, so I thought this is a good place to write a post about my approach and setup. The journey up to now has been pretty interesting. I learned a bit about the Kubernetes API, and a lot about how cooperative multitasking with coroutines works in Python. ...

May 25, 2024 · 21 min · Michael

Homelab Backup Operator Part I: RBAC permission issues

As I’ve mentioned in my last k8s migration post, I’m working on writing a Homelab backup operator for my Kubernetes cluster. And I’ve run into some RBAC/permission issues I can’t quite figure out. So let’s see whether writing about it helps. 🙂 First, a short overview of the plan. I’m using the kopf framework to build a Kubernetes operator. This operator’s main goal is to handle HomelabServiceBackup resources. These will contain a list of PersitentVolumeClaims and S3 buckets which need to be backed up. I intend for there to be one HomelabServiceBackup object for every service, located in the service’s Namespace. ...

May 12, 2024 · 5 min · Michael