Taming Kubernetes Complexity: Reusable Manifests with Kustomize

This was originally going to be a heading in my previous post, however I realized that app deployment and configuration deserved its own post. Deploying containers into Kubernetes is quite straightforward. Almost every self-hosted app has instructions on how to deploy either to Kubernetes (be it directly via yaml files or a tool like Helm) or using a Docker Compose file. If there aren’t instructions for Kubernetes the container definitions in docker-compose.yml can be rewritten as a Pod specification and then wrapped in Deployments, StatefulSets or left purely as a pod. Deploying multiple containers in a consistent and coherent manner adds a layer of complexity since you want to ensure all your containers use the right annotations, keep their persistent data in the right StorageClass and define their services and load balancing rules in the same manner. ...

July 28, 2025 · 9 min · 1848 words · Jonathan

My Dotfile Workflow: Stow, Git Filters, and Encryption

There are dozens of ways to manage your dotfiles. From manually copying files from one machine to another, to putting them in a git repository and manually linking the files to their targets, to using tools that copy files into place and keep them in sync. Managing dotfiles can become a constant challenge, especially when you regularly use more than one machine. For my part I primarily work on 2 machines, my desktop and my laptop. I have various VPSes and Servers in my homelab that need some of my configuration, but only the parts that deal with shell interaction. I also have my .emacs configuration that I do at times use elsewhere (such as on a work machine if it is permitted) so it belongs in a separate repo for ease of access. ...

May 26, 2025 · 8 min · 1682 words · Jonathan

How I Build my Blog: Hugo and Git Hooks

A bit over a week ago my friend Sam restarted his blog with a post about How [he] built this site. I’d been planning to write my own version of that post in the future, however I decided to do so sooner since our approaches have noticeable differences. I’m using Hugo as a static site generator for the content so that rebuilding the blog is as easy as deleting the public/ folder then recreating it using the hugo command. I’m not going to go into the full details of my blogging workflow at this time beyond saying I write the posts in Emacs Org-Mode and use ox-hugo to generate the appropriate markdown files for the posts themselves. My Techdocs site uses the exact same process just with a different theme that is better designed to handle documentation. ...

May 4, 2025 · 4 min · 690 words · Jonathan