Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
1.5 KiB
1.5 KiB
platform/longhorn
Longhorn — distributed replicated block storage across the 3 nodes.
- Governing ADR: ADR-0003 — Distributed storage: Longhorn (+ bulk tier + Velero)
- Spec: docs/04 — Storage & State
- Serves: R-STATE-01..04
- Owner: WS-STORAGE
What this stub is
Flux HelmRelease + two StorageClasses:
longhorn— the default, 3-replica replicated class (replica count is the${LONGHORN_DEFAULT_REPLICA_COUNT}overlay knob). Durable home for app/config state and KubeVirt VM disks (via CDI).bulk— non-replicated tier for large media (Plex library, download staging). STUB: its backing store is OQ-2 (unresolved) — escalate before finalizing. Plex's metadata DB stays on the 3-replica class regardless (ADR-0003).
Contract (consumed by everyone with state)
Per roadmap/workstreams.md, WS-STORAGE exposes the longhorn (replicated) and bulk (media)
StorageClasses; WS-APPS/WS-VM/WS-OBS reference them from ServiceDefinitions. Do not place bulk media
on the replicated tier or app DBs on the bulk tier.
TODO (later phases)
- OQ-2 (human): decide the bulk-tier backing (NAS/NFS vs dedicated disk). Blocks
bulkfinalize. - Phase 2 (WS-STORAGE): dedicated Longhorn data disk path (docs/02); prove a PVC survives pod destroy/rebuild (R-STATE-01, Phase-2 exit gate).
- Phase 4 (WS-STORAGE): wire off-cluster backup target with Velero (R-STATE-03).