# longhorn-wffc — Longhorn StorageClass with WaitForFirstConsumer binding. # # The chart's default `longhorn` SC uses Immediate binding: the PV binds before # the pod is scheduled, so on this single-storage-node topology (only talos-cp-1 # runs Longhorn) the scheduler often places the pod on cp-2/cp-3 where the volume # can't attach ("CSINode does not contain driver driver.longhorn.io"). # # WaitForFirstConsumer defers binding until the pod is scheduled, so the volume # is provisioned on the node the pod lands on — and with a single Longhorn node # that co-locates pod + volume on cp-1 automatically. This is the new default; # the chart's `longhorn` SC is demoted (see longhorn-values default-class=false). # # volumeBindingMode is immutable, so this is a distinct SC (not an edit of the # chart's). Existing volumes stay on `longhorn`; new PVCs use this. apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: longhorn-wffc annotations: storageclass.kubernetes.io/is-default-class: "true" provisioner: driver.longhorn.io allowVolumeExpansion: true reclaimPolicy: Delete volumeBindingMode: WaitForFirstConsumer parameters: numberOfReplicas: "1" staleReplicaTimeout: "30" fromBackup: "" dataLocality: "best-effort"