A locked Terraform state file in an S3 bucket, reachable from several machines while a dead laptop is crossed out

Terraform on Proxmox: Declaring My Homelab VMs

How Terraform provisions my Proxmox VMs for Talos: what IaC brings, provider gotchas, k8s-friendly VM settings, and my tfstate’s move to self-hosted S3.

July 8, 2026 · Jonathan Lupica
A YAML file with readable keys and padlocked values being committed to a git repository

SOPS + Age: Committing Secrets to Git, Safely

How SOPS and age let me commit Talos and Kubernetes secrets to git: envelope encryption explained, .sops.yaml rules, alternatives, and gotchas.

July 3, 2026 · Jonathan Lupica
A PostgreSQL elephant pod hopping from the last pending node to an already-upgraded node during a rolling upgrade

Talos Rolling Upgrades: When a PDB Blocks the Drain

A single-instance PostgreSQL and its PodDisruptionBudget deadlocked my Talos rolling upgrade. How drains fail, and how to sequence around it.

July 3, 2026 · Jonathan Lupica
A crossed-out SSH terminal next to a machine config file driving three Talos nodes

Talos Linux: Kubernetes Without SSH in My Homelab

Why my homelab Kubernetes nodes run Talos Linux: an immutable, API-driven OS with no SSH, no shell, and machine configs versioned in git.

July 3, 2026 · Jonathan Lupica