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....

May 12, 2024 · 5 min · Michael
The HashiCorp Nomad and Kubernetes logos, connected with an arrow pointing from Nomad to Kubernetes

Nomad to k8s, Part 12: Backup Plan

Wherein it seems I need a new backup strategy. This is part 13 of my k8s migration series. During the last week, I’ve started to work on implementing my backup strategy for the new Kubernetes cluster. The original plan was to stay with what I’m already doing in my Nomad cluster. But it turns out I can’t, so I need a new strategy. If you’re prone to suffering from IT-related nightmares, you might wish to skip this one....

May 5, 2024 · 10 min · Michael
The HashiCorp Nomad and Kubernetes logos, connected with an arrow pointing from Nomad to Kubernetes

Nomad to k8s, Part 11: Container Registry with Harbor

Wherein I migrate my internal container registry to Harbor. This is part 12 of my k8s migration series. Let’s start by answering the obvious question: Why even have an internal container registry? For me, there are two reasons: Some place to put my own container images A cache for external images Most of my internal images are slightly changed external images. A prime example is my Fluentd image. I’ve extended the official image with a couple of additional plugins....

April 27, 2024 · 22 min · Michael
The HashiCorp Nomad and Kubernetes logos, connected with an arrow pointing from Nomad to Kubernetes

Nomad to k8s, Part 10: Grafana

Wherein I migrate my Grafana instance over to k8s. This is part 11 of my k8s migration series. I already wrote about my love for metrics in the companion post about the Prometheus setup, so I will spare you my excitement about pretty graphs this time. 😉 For the Grafana setup, I used the kube-prometheus-stack’s integration of the Grafana Helm Chart. Database setup First step is to setup the database for Grafana....

April 6, 2024 · 11 min · Michael
The stylized FluentD logo of a bird in flight with the word 'Fluentd' next to it.

Bite Sized: Some K8s Logging Changes

While working on the logging setup for my Grafana, Loki and CloudNativePG deployments, I found that there were some things I disliked about my original k8s logging setup, which I described here. This is the start of a kind of post where I try to keep the reading time reasonably short. Whenever I prefix a post with “Bit Sized:”, you can expect a short one. I’m trying to wean myself off of the incredibly long, meandering posts I seem to keep putting out....

April 4, 2024 · 9 min · Michael