Temporary — both replica counts go back to 1 once k8s-1 has rejoined. The manifests carry that instruction inline.
With one of three nodes out for the bare-metal conversion, the remaining pair cannot hold the workload. Two independent constraints:
CPU — cluster requests exceed two nodes' capacity by ~200m, once k8s-1's DaemonSets (which die with the node) and mon-c/osd-2 (node-bound, stay unplaced) are correctly discounted.
Disk — k8s-3 has 11.8 GiB free of 59.9 GiB and the kubelet evicts below ~6.0 GiB. It already tripped DiskPressure once today during a three-minute partial drain. Image GC cannot help: talos/patches/cluster.yaml already sets the thresholds to 70/60 and records that dropping high to 60 moved free space by 0.02 percentage points, because ~20 GB is overlayfs snapshots held by running containers.
immich is the right thing to stop rather than squeeze. immich-machine-learning reserves 500m against a measured 2m idle draw — but inference bursts hard, so trimming its request would misrepresent what it actually needs the moment someone uploads photos. Stopping it removes the reservation honestly, and takes its pods and image pulls off k8s-3 for the duration.
Frees 1,000m against a 200m shortfall, so there is real margin rather than a squeeze.
The CNPG Postgres cluster is deliberately left running — no hibernation dance, and recovery is just these two replica counts.
**Temporary — both replica counts go back to 1 once k8s-1 has rejoined.** The manifests carry that instruction inline.
With one of three nodes out for the bare-metal conversion, the remaining pair cannot hold the workload. Two independent constraints:
- **CPU** — cluster requests exceed two nodes' capacity by ~200m, once k8s-1's DaemonSets (which die with the node) and `mon-c`/`osd-2` (node-bound, stay unplaced) are correctly discounted.
- **Disk** — k8s-3 has 11.8 GiB free of 59.9 GiB and the kubelet evicts below ~6.0 GiB. It already tripped `DiskPressure` once today during a three-minute partial drain. Image GC cannot help: `talos/patches/cluster.yaml` already sets the thresholds to 70/60 and records that dropping high to 60 moved free space by 0.02 percentage points, because ~20 GB is overlayfs snapshots held by running containers.
immich is the right thing to **stop** rather than squeeze. `immich-machine-learning` reserves 500m against a measured 2m idle draw — but inference bursts hard, so trimming its request would misrepresent what it actually needs the moment someone uploads photos. Stopping it removes the reservation honestly, and takes its pods and image pulls off k8s-3 for the duration.
Frees 1,000m against a 200m shortfall, so there is real margin rather than a squeeze.
The CNPG Postgres cluster is deliberately left running — no hibernation dance, and recovery is just these two replica counts.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
With one of three nodes out for the bare-metal conversion, the remaining pair
cannot hold the workload: cluster CPU requests exceed two nodes' capacity by
roughly 200m once DaemonSets and unplaceable Ceph pods are discounted, and
k8s-3 sits ~5.8 GiB above the kubelet's eviction threshold with image GC
already at its floor.
immich is the right thing to stop rather than squeeze. machine-learning
reserves 500m against a 2m idle draw, but inference bursts hard, so cutting
its request would misrepresent what it needs the moment someone uploads
photos. Stopping it removes the reservation honestly, and takes its pods and
image pulls off k8s-3 for the duration.
The Postgres cluster stays up, so recovery is these two replica counts and
nothing else.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Temporary — both replica counts go back to 1 once k8s-1 has rejoined. The manifests carry that instruction inline.
With one of three nodes out for the bare-metal conversion, the remaining pair cannot hold the workload. Two independent constraints:
mon-c/osd-2(node-bound, stay unplaced) are correctly discounted.DiskPressureonce today during a three-minute partial drain. Image GC cannot help:talos/patches/cluster.yamlalready sets the thresholds to 70/60 and records that dropping high to 60 moved free space by 0.02 percentage points, because ~20 GB is overlayfs snapshots held by running containers.immich is the right thing to stop rather than squeeze.
immich-machine-learningreserves 500m against a measured 2m idle draw — but inference bursts hard, so trimming its request would misrepresent what it actually needs the moment someone uploads photos. Stopping it removes the reservation honestly, and takes its pods and image pulls off k8s-3 for the duration.Frees 1,000m against a 200m shortfall, so there is real margin rather than a squeeze.
The CNPG Postgres cluster is deliberately left running — no hibernation dance, and recovery is just these two replica counts.
🤖 Generated with Claude Code