fix(storage): add longhorn-wffc SC + pin portainer/forgejo-runner to az-a — fixes PVC attach
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:
|
||||||
@@ -51,3 +51,8 @@ tolerations:
|
|||||||
- key: node-role.kubernetes.io/control-plane
|
- key: node-role.kubernetes.io/control-plane
|
||||||
operator: Exists
|
operator: Exists
|
||||||
effect: NoSchedule
|
effect: NoSchedule
|
||||||
|
|
||||||
|
# Pin to az-a (talos-cp-1) — sole Longhorn storage node. Its RWO PVC can only
|
||||||
|
# attach there; without this the pod may land on cp-2/cp-3 and fail to mount.
|
||||||
|
nodeSelector:
|
||||||
|
topology.kubernetes.io/zone: az-a
|
||||||
|
|||||||
@@ -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"
|
||||||
@@ -19,6 +19,10 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
tolerations:
|
tolerations:
|
||||||
{{- toYaml .Values.tolerations | nindent 8 }}
|
{{- toYaml .Values.tolerations | nindent 8 }}
|
||||||
|
{{- with .Values.nodeSelector }}
|
||||||
|
nodeSelector:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
initContainers:
|
initContainers:
|
||||||
- name: register
|
- name: register
|
||||||
|
|||||||
@@ -30,13 +30,18 @@ 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:
|
||||||
- key: node-role.kubernetes.io/control-plane
|
- key: node-role.kubernetes.io/control-plane
|
||||||
operator: Exists
|
operator: Exists
|
||||||
effect: NoSchedule
|
effect: NoSchedule
|
||||||
|
|
||||||
|
# Pin to az-a (talos-cp-1) — sole Longhorn node; RWO PVCs (reg/dind cache) only
|
||||||
|
# attach there.
|
||||||
|
nodeSelector:
|
||||||
|
topology.kubernetes.io/zone: az-a
|
||||||
|
|||||||
Reference in New Issue
Block a user