El día en que el pipeline tenía la razón y yo no
Un automerge de Renovate, una regla de pnpm que no cedía, cinco repos con links rotos en las alertas y una actualización de Gitea antes del almuerzo.
Homelab, Kubernetes, CI/CD y las cosas que se rompieron en el camino
Un automerge de Renovate, una regla de pnpm que no cedía, cinco repos con links rotos en las alertas y una actualización de Gitea antes del almuerzo.
Un ImagePullBackOff un lunes, un error de containerd que era exactamente 2x, y una combinación de flags de buildx que yo mismo había copiado en diez repos.
Cómo pasé mi clúster Talos de 7 nodos de la 1.11 a la 1.14 y Kubernetes de 1.34 a 1.37 en un día, y las cinco cosas que se rompieron en el camino.
Arreglé NFS, después qcow2, después el host. La alerta seguía sonando porque debajo de todo había un SSD sin marca que se quedaba pegado.
Un default de Gitea dejó que un usuario bot restringido hiciera fork, y un fork trae sus propios workflows a mis runners de CI. Una línea lo arregló.
Cómo separé el Wi-Fi de la casa de la VLAN del homelab con un firewall Sophos: ocho días de logs, luego reglas de allow, el drop de último, y lo que todavía se fuga.
Se fue la luz dos veces en seis semanas y el cluster se quedó abajo las dos. El arreglo del que tanto me enorgullecí en junio no sirvió de nada en agosto.
Cómo xjohnyx.me pasó de un contenedor Nginx de 40 MB desplegado con Flux a un bucket S3 detrás de CloudFront, y por qué esa era la decisión honesta.
A Renovate automerge, a pnpm supply-chain gate that would not budge, five repos with broken alert links, and a Gitea upgrade before lunch.
A Monday ImagePullBackOff, a containerd size error that was exactly 2x, and a buildx flag combination I had copied into ten repos.
How I took my 7-node Talos cluster from 1.11 to 1.14 and Kubernetes from 1.34 to 1.37 in a day, and the five things that broke on the way.
I fixed NFS, then qcow2, then host tuning. The alert kept firing because a no-name SSD was stalling underneath all of it.
A Gitea default let a restricted bot user fork a repo, and a fork can bring its own workflows onto my CI runners. One line fixed it.
How I split the house Wi-Fi from the homelab VLAN with a Sophos firewall: eight days of logs first, allow rules second, the drop last, and what still leaked.
The power went out twice in six weeks and my cluster stayed down both times. The fix I was so proud of in June did nothing in August.
How xjohnyx.me went from a 40 MB Nginx container deployed through Flux to an S3 bucket behind CloudFront, and why that was the honest choice.
Cilium eBPF vs Flannel iptables, Cloudflare Tunnels, and Gateway API — a side-by-side comparison of homelab and cloud cluster networking.
One Git repo, two Kubernetes clusters. How I manage my homelab and OCI cluster with Flux CD, kustomize overlays, and a shared base.
How I set up a fully functional Kubernetes cluster on Oracle Cloud's Always Free Tier using Terraform — ARM nodes, networking, and all the gotchas.
How Envoy's default 15-second timeout silently kills requests before your ALB even responds — and the simple fix.
Every Kubernetes problem you solve creates two more. Here's how I learned to stop fighting the hydra and start working with it.
Input validation, release branching, and automated tagging — a practical GitHub Actions workflow for managing beta releases.
Lessons from tearing down an AWS project — Route53 gotchas, S3 cleanup tricks, and why you should always snapshot first.
Three AWS networking lessons I learned at work — Transit Gateways vs VPC Peering, Shared VPCs with RAM, and why OIDC providers break canary deployments.
A practical guide to migrating Terraform state between backends, cleaning up stale resources, and the commands you'll actually need.
The kubectl commands that actually save me time — from context switching to secret decoding, manifest generation, and more.
Master Terraform with battle-tested patterns for managing cloud infrastructure at scale. Learn state management, module design, and security practices.
Reduce Docker image sizes by up to 90% and improve security using multi-stage builds. Learn the patterns and best practices.
Learn how to implement GitOps practices in Kubernetes using Flux CD for automated deployments and configuration management.