What this PR is
The final act of the zo-k8s slim-down (#22, #24, #25). Every workload the cluster ever hosted now lives on Vercel β glassbox, the 2ls.tech site, the static drop-and-share site, and finally everwhen prod (#26). Before anything was destroyed, all four hosts were checked live and answered with server: Vercel. The cluster was serving nothing.
The live half is already done: terraform apply destroyed the DOKS cluster and the ynab.mseeks.me record (the ingress load balancer's advertised hostname β pure LB plumbing). The cluster's destroy_all_associated_resources = true flag reaps the LB and node droplets with it. Afterward doctl shows no clusters or volumes and terraform plan reports no changes. That ends roughly $108/mo of spend (two nodes plus the LB).
This diff is the repo half: the cluster and LB Terraform files, the last infra/k8s/ stacks (ingress-nginx, cert-manager, the shared preflight lib), and every Kubernetes-flavored comment and instruction, removed.
dns.tf β records stay, the cluster subtext goes
One resource is gone: mseeks_me_ynab, whose only job was to give the ingress LB a stable hostname (originally for a long-retired app, kept because cert-manager's HTTP-01 self-checks routed through it). It referenced data.digitalocean_loadbalancer.ingress, so it had to die with the LB.
Every other record survives untouched in value. What changed is the commentary: the Vercel records no longer explain themselves by contrast ("hosted on Vercel, not the cluster", "no cert-manager", "unlike the LB IP this used to track"). They now just say what is.
The header without its LB aside, and the mseeks.me zone flowing from the mail records straight into the Vercel CNAMEs where the ynab record used to sit.
infra/dns.tf Β· 338 lines
β― 41 lines hidden (lines 19β59)
β― 258 lines hidden (lines 81β338)
The Terraform surface, after
kubernetes.tf (the DOKS cluster, its version data source, five outputs) and loadbalancer.tf (the read-only adoption of the CCM-owned LB) are deleted whole. What Terraform manages now: DNS zones and records, the Spaces bucket that holds its own state, and the adopted everwhen Supabase project. The README shrinks to match β layout, prerequisites (no more kubectl), the DNS import runbook, and remote state. supabase.tf loses a header analogy that compared its project/schema split to the cluster/workload split.
The README's new frame: DNS + state + Supabase, sites on Vercel.
infra/README.md Β· 79 lines
β― 53 lines hidden (lines 27β79)
CLAUDE.md β instructions describe only what exists
The Infrastructure section is rewritten from scratch: Terraform-owned DNS, state, and Supabase; the Vercel hosting model (push to main deploys); the Mac-side Ollama LaunchAgent; and the secrets rule. Gone are the cluster inventory, the headroom/request-budget guidance, and the retirement history paragraph β with the cluster gone, guidance about scheduling pods on it is noise a future session should never see. Two smaller mentions elsewhere ("static/k8s deploy" in the plumbing rule, "or k8s" in the read-thru bullet) are trimmed the same way. A full-repo sweep for k8s/kubectl/helm/DOKS/LB terms comes back empty.
The Infrastructure section, describing the post-cluster world only.