fix(storage): add longhorn-wffc WaitForFirstConsumer default SC, repoint portainer/forgejo-runner — Immediate binding placed PVCs on non-storage nodes (cp-2/cp-3), attach failed
This commit is contained in:
@@ -33,7 +33,7 @@ tls:
|
|||||||
# RWO block volume. 10Gi is generous for config data but cheap on Longhorn.
|
# RWO block volume. 10Gi is generous for config data but cheap on Longhorn.
|
||||||
persistence:
|
persistence:
|
||||||
enabled: true
|
enabled: true
|
||||||
storageClass: "longhorn"
|
storageClass: "longhorn-wffc"
|
||||||
size: 10Gi
|
size: 10Gi
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
namespace: longhorn-system
|
namespace: longhorn-system
|
||||||
resources: []
|
resources:
|
||||||
# Longhorn deployed via Helm chart (values in parent layer)
|
- longhorn-wffc-storageclass.yaml
|
||||||
|
# Longhorn deployed via Helm chart (values in parent layer). The WFFC
|
||||||
|
# StorageClass above is the new default; the chart's Immediate `longhorn` SC is
|
||||||
|
# demoted (default-class annotation removed on the live object at bootstrap).
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
# 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"
|
||||||
@@ -30,10 +30,10 @@ dind:
|
|||||||
|
|
||||||
persistence:
|
persistence:
|
||||||
reg:
|
reg:
|
||||||
storageClass: longhorn
|
storageClass: longhorn-wffc
|
||||||
size: 1Gi # .runner registration file + config — survives pod restarts
|
size: 1Gi # .runner registration file + config — survives pod restarts
|
||||||
dind:
|
dind:
|
||||||
storageClass: longhorn
|
storageClass: longhorn-wffc
|
||||||
size: 30Gi # docker layer cache — keeps rebuilds fast across restarts
|
size: 30Gi # docker layer cache — keeps rebuilds fast across restarts
|
||||||
|
|
||||||
tolerations:
|
tolerations:
|
||||||
|
|||||||
Reference in New Issue
Block a user