Adds minAvailable:1 PDBs for the data-bearing single-replica StatefulSets
that had no eviction protection: gitea, woodpecker-server, and paperless's
protonmail-bridge + syncthing sidecars. On a 1-replica workload this makes
the eviction API refuse *voluntary* evictions, so a node drain blocks and
surfaces the pod instead of yanking a live SQLite DB / RWO-PVC pod mid-write.
Involuntary disruptions (node crash, OOM) are unaffected.
Deliberately excluded, with rationale:
- CNPG clusters im-pg and gf-pg (instances:1): CloudNativePG intentionally
omits a primary PDB for single-instance clusters (no failover target), and
handles graceful primary shutdown itself. A manual maxUnavailable:0 would
only wedge node drains with no HA benefit.
- Ceph mons: the Rook operator self-manages quorum-preserving mon/OSD PDBs
(disruptionManagement.managePodBudgets default). A hand-written PDB would
be redundant or fight the operator on each reconcile.
- Stateless single-replica Deployments (redis/tika/gotenberg caches, etc.):
a blocking PDB gives no recoverability benefit, only blocks drains.
Refs #201
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>