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

Nomad to k8s, Part 19: Migrating Nextcloud

Wherein I migrate my Nextcloud instance to the k8s cluster. This is part 20 of my k8s migration series. Nextcloud is the oldest continuously running service in my Homelab. It started out as an OwnCloud deployment back when I just called my Homelab my “Heimserver”. It ran continuously for more than ten years, and I quite like it. Initially I only used it for file sharing between my devices and as a better alternative to a Samba share. Over the years, I also started using it for contacts and calendar sharing between my phone and desktop as well as sharing of my Firefox bookmarks between my laptop and desktop via Floccus. One perhaps somewhat surprising use case is for backups of OPNsense, which has support for backing up its configuration to Nextcloud out of the box. ...

February 24, 2025 · 17 min · Michael
The HashiCorp Nomad and Kubernetes logos, connected with an arrow pointing from Nomad to Kubernetes

Nomad to k8s, Part 18: Migrating Jellyfin

Wherein I migrate my Jellyfin instance to the k8s cluster. This is part 19 of my k8s migration series. I’m running a Jellyfin instance in my Homelab to play movies and TV shows. I don’t have a very fancy setup, no re-encoding or anything like that. I’m just using Direct Play, as I’m only watching things on my desktop computer. Jellyfin doesn’t have any external dependencies at all, so there’s only the Jellyfin Pod itself to be configured. It also doesn’t have a proper configuration file. Instead, it’s configured through the web UI and a couple of command line options. For that reason, I won’t have any Secrets or ConfigMaps. Instead I’ve just got a PVC with the config and some space for Jellyfin’s cache and another CephFS volume for the media collection. ...

February 20, 2025 · 12 min · Michael
The HashiCorp Nomad and Kubernetes logos, connected with an arrow pointing from Nomad to Kubernetes

Nomad to k8s, Part 17: Migrating my IoT Services

Wherein I migrate several IoT services over to Kubernetes. This is part 18 of my k8s migration series. This is going to be a short one. This weekend, I finished the migration of several IoT related services to k8s. Mosquitto is my MQTT broker, handling messages from several sources. For me, it’s only a listener - I do not have any actual home automations. Said mosquitto instance is scraped by mqtt2prometheus to get the data my smart plugs and thermometers produce into my Prometheus instance. Finally, I also migrated my Zigbee2MQTT instance over to the k8s cluster. It controls my Zigbee transceiver and sends the data from my thermometers on to mosquitto. ...

February 15, 2025 · 11 min · Michael
The HashiCorp Nomad and Kubernetes logos, connected with an arrow pointing from Nomad to Kubernetes

Nomad to k8s, Part 16: Migrating Gitea

Wherein I migrate my Gitea instance from Nomad to k8s. This is part 17 of my k8s migration series. I’ve been using Gitea as my Git forge for a while now. What’s now the Gitea instance started life is a Gogs instance in 2016, when I had to downsize my Homelab to a Raspberry Pi 3B that couldn’t handle all the things I wanted to run on it. I decided to get rid of my Gitlab instance and exchange it for Gogs. The switch back to Gitea then happened because Gitlab started eating 12% of my new home server’s CPU even when idle. ...

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

Nomad to k8s, Part 15: Migrating my CI

Wherein I migrate my Drone CI setup on Nomad to a Woodpecker CI setup on k8s. This is part 16 of my k8s migration series. Finally, another migration blog post! I’m still rather happy that I’m getting into it again. For several years now, I’ve been running a CI setup to automate a number of tasks related to some personal projects. CI stands for Continuous Integration, and Wikipedia says this about it: ...

January 26, 2025 · 27 min · Michael