Storage — migrate PVCs from local-path to NFS StorageClass #8

Open
opened 2026-06-13 20:40:47 +00:00 by znibb · 1 comment
Owner

Goal

Replace local-path-provisioner with NFS-backed StorageClass using
TrueNAS dataset deadpool/k8s-nfs.

Dependencies

  • TrueNAS NFS dataset configured and accessible

Tasks

  • Install NFS CSI driver or configure democratic-csi for NFS
  • Create NFS StorageClass
  • Migrate existing PVCs service by service (pg_dump + restore for Postgres)
  • Remove nodeSelector constraints from stateful workloads
  • Set NFS as default StorageClass, remove local-path-provisioner
## Goal Replace local-path-provisioner with NFS-backed StorageClass using TrueNAS dataset deadpool/k8s-nfs. ## Dependencies - TrueNAS NFS dataset configured and accessible ## Tasks - [ ] Install NFS CSI driver or configure democratic-csi for NFS - [ ] Create NFS StorageClass - [ ] Migrate existing PVCs service by service (pg_dump + restore for Postgres) - [ ] Remove nodeSelector constraints from stateful workloads - [ ] Set NFS as default StorageClass, remove local-path-provisioner
Author
Owner

Uppdatering: central Postgres är borta

Ett par saker har ändrats sedan jag skrev ursprungsuppgiften ovan, vilket gör att uppgiften "Migrera existing PVCs service by service (pg_dump + restore for Postgres)" inte längre stämmer som den står:

  • Den centrala Postgres-servern är borttagen. Den krånglade med migreringar vid varje push till main via Flux.
  • AppFlowy fick egna återkommande krascher vid varje ny version när den delade en central Postgres — löst genom att sätta upp en faktisk dedikerad AppFlowy-stack med egen Supabase-baserad Postgres istället.
  • Det innebär att lagringsbilden nu är mer fragmenterad: flera separata datalager per app snarare än en central databas att migrera i ett svep.

Ny TrueNAS-share på plats

NFS-share finns nu uppe på TrueNAS: 192.168.10.80:/mnt/deadpool/k8s-nfs (uid/gid-owner: 3000). Detta blir sannolikt målet för NFS StorageClass enligt ursprungsplanen, men innan vi kör på behöver följande klargöras:

  • Hur Immich's nuvarande NFS-mount för foton faktiskt är konfigurerad — via CSI-driver/StorageClass, eller statisk PV/mount rakt mot en annan NFS-export?
  • Om någon NFS CSI-driver (csi-driver-nfs, democratic-csi etc.) redan är installerad i klustret, eller om allt fortfarande kör local-path-provisioner som ursprungsplanen antog.
  • Vad AppFlowy's nya dedikerade Supabase-Postgres använder för lagring just nu (local-path eller NFS).

Nästa steg

Kör kubectl get pvc -A och kubectl get storageclass för att få en faktisk bild av nuläget innan tasklistan i toppen av denna issue uppdateras. Tasken om pg_dump/restore för en central Postgres kan strykas — ersätts troligen med en per-app-genomgång av befintliga PVCs.

**Uppdatering: central Postgres är borta** Ett par saker har ändrats sedan jag skrev ursprungsuppgiften ovan, vilket gör att uppgiften "Migrera existing PVCs service by service (pg_dump + restore for Postgres)" inte längre stämmer som den står: - Den centrala Postgres-servern är borttagen. Den krånglade med migreringar vid varje push till `main` via Flux. - AppFlowy fick egna återkommande krascher vid varje ny version när den delade en central Postgres — löst genom att sätta upp en faktisk dedikerad AppFlowy-stack med egen Supabase-baserad Postgres istället. - Det innebär att lagringsbilden nu är mer fragmenterad: flera separata datalager per app snarare än en central databas att migrera i ett svep. **Ny TrueNAS-share på plats** NFS-share finns nu uppe på TrueNAS: `192.168.10.80:/mnt/deadpool/k8s-nfs` (uid/gid-owner: 3000). Detta blir sannolikt målet för NFS StorageClass enligt ursprungsplanen, men innan vi kör på behöver följande klargöras: - Hur Immich's nuvarande NFS-mount för foton faktiskt är konfigurerad — via CSI-driver/StorageClass, eller statisk PV/mount rakt mot en annan NFS-export? - Om någon NFS CSI-driver (`csi-driver-nfs`, democratic-csi etc.) redan är installerad i klustret, eller om allt fortfarande kör local-path-provisioner som ursprungsplanen antog. - Vad AppFlowy's nya dedikerade Supabase-Postgres använder för lagring just nu (local-path eller NFS). **Nästa steg** Kör `kubectl get pvc -A` och `kubectl get storageclass` för att få en faktisk bild av nuläget innan tasklistan i toppen av denna issue uppdateras. Tasken om pg_dump/restore för en central Postgres kan strykas — ersätts troligen med en per-app-genomgång av befintliga PVCs.
Sign in to join this conversation.
No labels
gitops-rework
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
znibb/kobbo-homelab#8
No description provided.