Tech, photography, notes and random stuff.

  • Suspend All Kubernetes Cronjobs

    Recently, I had the need to suspend all Kubernetes cronjobs in a cluster. Looking around for an existing one-liner I came across this helpful gist. It loops over all namespaces, gets all cronjobs in each and patches them to spec.suspend: true. And to enable them again, we can patch them to spec.suspend: false. Keep in…

  • Whoami or Who Is My DNS Resolver?

    There are thousands of memes that DNS is the cause of (almost) all computer issues, so debugging DNS issues is necessary more often than anyone would like. One question that comes up often when debugging DNS is: Which server is my actual DNS resolver? An easy way I found to answer this question is the…

  • Figuring out the Network Interface of an IP Address in Ansible

    Recently I had an odd problem with Ansible. I had a bunch of servers and knew that all of them had an IP address from a specific subnet but I couldn’t be sure which network interface this IP would be (automatically, outside of my control) assigned to. Well, Ansible discovers all network interfaces and IP…

  • 16. & 17. #everyonecancontribute Cafe: Building a K3s Cluster on Hetzner Cloud – Part 3 and 4

    In January and February we started our ongoing journey to build a k3s Kubernetes cluster on Hetzner cloud in part 1 and part 2. We continued this in February with part 3 and 4 where we deployed the hcloud cloud controller manager, cert-manager and nginx ingress controller to get traffic into our cluster.

  • Joining the Hetzner Cloud Team

    A week ago I shared on Twitter that I quit my job at SysEleven after half a decade. Those years have been an incredible ride from “part time in support” to “senior kubernetes architect” while learning a ton of things, not only as an engineer but also as a human. If our paths crossed during…

  • Unknown Subcommand sh in Gitlab CI with Tanka

    I am using Tanka to template and deploy namespaces and network policies to Kubernetes. To do this in GitLab CI I am using the official Tanka image on Docker Hub, my .gitlab-ci.yml for it looked like this: Until recently it worked fine like this, but suddenly it stopped working and started to produce the following…

  • 15. #everyonecancontribute Cafe: Building a K3s Cluster on Hetzner Cloud – Part 2

    Today we continued where we left off last week. With our existing Terraform code we created a new cluster and then we built a few Ansible roles to deploy our k3s cluster. After an hour we reached the goal of the evening: kubectl get nodes showed us our three running nodes in Ready state. Next…

  • 14. #everyonecancontribute Cafe: Building a K3s Cluster on Hetzner Cloud – Part 1

    Last week during our weekly #everyonecancontribute call we started to build a k3s cluster on Hetzner Cloud. Based on my existing personal k3s cluster I gave an introduction to Terraform, Ansible and the related hcloud libraries, like the hcloud Terraform provider and the hcloud Ansible collection. In the next part we will actually start to…

  • Organize Python Imports on save in VS Code

    The “PEP 8 – Style Guide for Python Code” defines the following order for Python imports: Taking care of that manually is just tedious work! This is something the editor or IDE should take care of instead. VS Code has a feature called Organize Imports to do exactly that, but unfortunately by default we have…

Stay up-to-date or get in touch.


I am a Systems Engineer from Germany. In my personal time I like to tinker with all kinds of technologies, some of it is available here at my blog. In my professional life I work a lot with Kubernetes and monitoring systems. Occasionally I give workshops about Kubernetes and conference talks about my work.