From 4f74c8a2f0243bd11741aed67a8fd4157cc7766a Mon Sep 17 00:00:00 2001 From: Keith Jackson Date: Tue, 25 Aug 2026 08:45:12 -0500 Subject: [PATCH] chore(storage): Longhorn over-provisioning 100->200% + right-size plex config 20->8Gi The 39Gi/node Longhorn data disks at 1:1 over-provisioning can't fit the media stack (plex 20Gi replica failed: 'insufficient storage'). Volumes are thin-provisioned config-only, so 200% lets the full catalog fit without a disk resize; physical fill risk is low. Also right-sized plex config (20Gi was excessive for metadata). Prod-grade path: grow the data disks (WS-STORAGE follow-up). --- apps/plex.yaml | 2 +- catalog/plex.yaml | 2 +- platform/longhorn/helmrelease.yaml | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/plex.yaml b/apps/plex.yaml index 0eb3bff..ec1ef80 100644 --- a/apps/plex.yaml +++ b/apps/plex.yaml @@ -49,7 +49,7 @@ spec: storageClassName: longhorn resources: requests: - storage: 20Gi + storage: 8Gi --- # Deployment (R-PLAT-02) apiVersion: apps/v1 diff --git a/catalog/plex.yaml b/catalog/plex.yaml index fccbf17..f90cc20 100644 --- a/catalog/plex.yaml +++ b/catalog/plex.yaml @@ -27,7 +27,7 @@ exposure: public # edge port-forward + public DNS; clients + Seerr egress: internet # normal WAN egress (docs/03; R-NET-05) storage: - name: config - size: 20Gi + size: 8Gi class: longhorn # Plex DB/metadata: replicated app state on the 3-replica tier (docs/04; R-STATE-01/02) dependencies: [] # default-deny: reaches only DNS; clients/Seerr reach IT (docs/03; R-NET-01/02) ingressRoutes: diff --git a/platform/longhorn/helmrelease.yaml b/platform/longhorn/helmrelease.yaml index f6e8ebb..df7c409 100644 --- a/platform/longhorn/helmrelease.yaml +++ b/platform/longhorn/helmrelease.yaml @@ -62,8 +62,10 @@ spec: storageReservedPercentageForDefaultDisk: "20" # Stop scheduling new replicas onto a disk once free space drops below 25%. storageMinimalAvailablePercentage: "25" - # Dev: no thin over-provisioning — requested capacity must physically fit (1:1). - storageOverProvisioningPercentage: "100" + # Dev: 200% thin over-provisioning — config-only volumes use little actual space, so the small + # 39Gi data disks host the full app catalog. Physical fill risk is low (watch monitoring PVCs). + # Prod-grade alternative: grow the Longhorn data disks and return to 1:1 (WS-STORAGE). + storageOverProvisioningPercentage: "200" # --- misc dev-appropriate defaults --- # Keep replicas spread for durability rather than co-locating with the pod.