@fuze this repo has PersistentVolumeClaims on the local-path StorageClass, which is unsafe on this cluster.
Affected PVCs: fuzekeys-data, fuzekeys-logs (namespace fuzekeys)
fuzekeys-data is already bound to a node that no longer exists (fuzeinfra-elastic-918c8556). That data is gone, and it is why fuzekeys-backend has been unschedulable — its PV points at a deleted machine. Separately, fuzekeys-backend declares replicas: 2 with strategy: RollingUpdate against two ReadWriteOnce claims, which can never reach ready state even with a healthy volume: only one pod can mount an RWO PVC, and RollingUpdate deadlocks against it. Both need fixing.
Why this is urgent
local-path provisions node-local disk and pins the PV to that node by nodeAffinity. This cluster's elastic nodes are created and reaped by an autoscaler, so a volume on local-path dies with its node. Its reclaimPolicy is also Delete, not Retain.
This is not hypothetical. Measured on 2026-09-01, two PVs are already bound to nodes that no longer exist:
fuzekeys/fuzekeys-data -> fuzeinfra-elastic-918c8556 (node gone)
fuzeinfra/data-fuzeinfra-postgres-0 -> fuzeinfra-elastic-57543f68 (node gone)
It is the same failure as the 2026-07-24 incident, in which local-path volumes were destroyed by node reinstalls and Neo4j was lost.
Why it happened — it was not your mistake
local-path was the cluster default StorageClass. Any chart that did not explicitly set storageClassName got ephemeral disk silently. global.storageClass: longhorn only governs FuzeInfra's own umbrella chart; consuming repos deploy their own Helm releases and never inherited it.
FuzeInfra has now made longhorn the default (FuzeInfra#814), verified by probe: a PVC with no storageClassName binds to longhorn, replicated across 3 durable nodes with reclaimPolicy: Retain. So newly created PVCs are safe from here.
What is still needed from this repo
Existing PVCs do not migrate automatically — storageClassName is immutable on a bound claim. Please:
- Set
storageClassName: longhorn explicitly in this repo's Helm chart for the PVCs listed above, so it is declared rather than inherited.
- Plan the migration of the existing volume(s): back up, delete the PVC, let it be recreated on
longhorn, restore. Sequence it per-service; do not do it blind.
- If any of these hold data you cannot lose, treat it as at risk right now until migrated — it is on a disk that disappears if that node is replaced.
Not urgent for stateless/scratch volumes; state clearly which of yours are which.
@fuze this repo has PersistentVolumeClaims on the
local-pathStorageClass, which is unsafe on this cluster.Affected PVCs:
fuzekeys-data,fuzekeys-logs(namespacefuzekeys)fuzekeys-datais already bound to a node that no longer exists (fuzeinfra-elastic-918c8556). That data is gone, and it is whyfuzekeys-backendhas been unschedulable — its PV points at a deleted machine. Separately,fuzekeys-backenddeclaresreplicas: 2withstrategy: RollingUpdateagainst two ReadWriteOnce claims, which can never reach ready state even with a healthy volume: only one pod can mount an RWO PVC, and RollingUpdate deadlocks against it. Both need fixing.Why this is urgent
local-pathprovisions node-local disk and pins the PV to that node bynodeAffinity. This cluster's elastic nodes are created and reaped by an autoscaler, so a volume onlocal-pathdies with its node. Its reclaimPolicy is alsoDelete, notRetain.This is not hypothetical. Measured on 2026-09-01, two PVs are already bound to nodes that no longer exist:
It is the same failure as the 2026-07-24 incident, in which local-path volumes were destroyed by node reinstalls and Neo4j was lost.
Why it happened — it was not your mistake
local-pathwas the cluster default StorageClass. Any chart that did not explicitly setstorageClassNamegot ephemeral disk silently.global.storageClass: longhornonly governs FuzeInfra's own umbrella chart; consuming repos deploy their own Helm releases and never inherited it.FuzeInfra has now made
longhornthe default (FuzeInfra#814), verified by probe: a PVC with nostorageClassNamebinds tolonghorn, replicated across 3 durable nodes withreclaimPolicy: Retain. So newly created PVCs are safe from here.What is still needed from this repo
Existing PVCs do not migrate automatically —
storageClassNameis immutable on a bound claim. Please:storageClassName: longhornexplicitly in this repo's Helm chart for the PVCs listed above, so it is declared rather than inherited.longhorn, restore. Sequence it per-service; do not do it blind.Not urgent for stateless/scratch volumes; state clearly which of yours are which.