My Kubernetes Secrets were made by hand with kubectl, and my Ansible repo carried passwords in plain text. Over two days they all moved into OpenBao. Git now says which secrets exist; OpenBao holds the values, audits every read, and nothing restarted on the way. This is the long version: the design, the four plans, the migration waves, and everything that bit me.
Everything public in my homelab goes through one door: BunkerWeb, a reverse proxy with a web application firewall, running in Kubernetes. Here is how it’s set up, how a new site goes from detect to block, and the outages that taught me the rest.
The Kubernetes cluster already ran kube-prometheus-stack. Two Checkmk VMs watched everything else. Over two days I moved hosts, websites and services into the one stack, in three slices, and then switched Checkmk off. Here is the plan, the tricks, and the list of things that went wrong.
A tour of koper.dev: Hugo turns Markdown into HTML, GitLab CI wraps it in a container, and Argo CD puts it on my Kubernetes cluster. No servers to log in to, no admin panel, no database.