Debugging Kubernetes Ingress on a Bare-Metal Cluster

This draft captures a real ingress debugging flow on a bare-metal cluster: verify the service IP, inspect the ingress objects, deal with a Helm ownership conflict, reinstall the controller cleanly, and confirm that the new ingress class is actually serving the expected backend.

Installing Terraform on Ubuntu 24.04 LTS

This draft captures the exact repository and package commands I used to install a pinned Terraform version on Ubuntu 24.04 LTS.

Testing and Fixing a GitLab Container Registry Endpoint

This is a carefully sanitized first-pass draft from a sensitive note. The useful pattern is still there: test the registry with curl against /v2/, vary the host and scheme deliberately, confirm the image naming path, and validate that the backup and retention tasks around the same service are in place.

Connecting an External Ceph Cluster to Kubernetes with Rook

This draft walks through the practical flow for connecting an existing Ceph cluster to Kubernetes with Rook: collect the monitor data and FSID, generate external-cluster resources, import them into the target cluster, install the Rook operator, and verify that the external Ceph connection is healthy.

Certbot Renewal with a Docker Compose Nginx Reload Hook

This draft captures a small but useful operational pattern: run certbot renew from cron and reload the Nginx container afterward so the renewed certificates are actually picked up.

Exposing a TCP Service Through Cloudflare Tunnel on Kubernetes

This draft turns a noisy environment-specific note into a cleaner pattern: create the Cloudflare Tunnel credentials, store them as Kubernetes secrets, define a cloudflared config map, run the deployment, and validate that the tunnel actually maps the hostname to the intended TCP service.

Proxying Proxmox Through Cloudflared with Valid SSL

This draft turns a sparse work log into a short operations note on taking a Proxmox interface that originally lived on a direct host-and-port URL and exposing it through a Kubernetes-based Cloudflare Tunnel with a cleaner HTTPS hostname.

Upgrading GitLab from 16.10 to 17.0 Without Skipping the Required Step

This draft turns a real GitLab upgrade note into a cleaner walkthrough focused on the upgrade path, the intermediate required version, and the service checks I used after each step.

Working Around a Payment API CORS Problem with a Server-Side Proxy

This draft turns a raw CORS debugging note into a cleaner explanation of the real issue: browser-based cross-origin restrictions and the practical workaround of routing requests through a server-side proxy.

Wiping or Formatting a USB Disk from WSL 2

This draft shows how I used WSL 2 to attach a physical Windows disk, inspect it from Linux, wipe it with shred, and cleanly unmount it afterward.