From 90c39f8da81a0f2c7d6316b79f4316cec6668e75 Mon Sep 17 00:00:00 2001 From: Ben Hardill Date: Tue, 24 Feb 2026 12:03:17 +0000 Subject: [PATCH 1/4] Allow file-server PVC to be configured closes #817 Adds `forge.fileStorage.pvc` with `size`, `mode` and `storageClassName` --- helm/flowfuse/README.md | 3 +++ helm/flowfuse/templates/file-storage.yml | 7 +++++-- helm/flowfuse/values.schema.json | 14 ++++++++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/helm/flowfuse/README.md b/helm/flowfuse/README.md index 1ae36665..06290fef 100644 --- a/helm/flowfuse/README.md +++ b/helm/flowfuse/README.md @@ -219,6 +219,9 @@ Enables FlowFuse Telemetry - `forge.fileStore.serviceAccount.automountServiceAccountToken` defines automount API credentials for a Service Account - `forge.fileStore.automountServiceAccountToken` defines automount API credentials for a pod (default `false`) - `forge.fileStore.revisionHistoryLimit` number of old ReplicaSets to retain for the file storage Deployment. If not set, uses `forge.revisionHistoryLimit` (default `10`). +- `forge.fileStore.pvc.size` starting size for the PVC that backs the file-server (default `10Gi`) +- `forge.fileStore.pvc.mode` Access mode for the PVC that backs the file-server (default `ReadWriteOnce`) +- `forge.fileStore.pvc.storageClassName` Which StorageClass to use for the PVC that backs the file-server (default not set) ### Persistent Storage diff --git a/helm/flowfuse/templates/file-storage.yml b/helm/flowfuse/templates/file-storage.yml index 9ff3c65c..8c181a09 100644 --- a/helm/flowfuse/templates/file-storage.yml +++ b/helm/flowfuse/templates/file-storage.yml @@ -8,10 +8,13 @@ metadata: {{- include "forge.labels" . | nindent 4 }} spec: accessModes: - - ReadWriteOnce + - {{ .Values.forge.fileStore.pvc.mode | default "ReadWriteOnce" }} resources: requests: - storage: 10Gi + storage: {{ .Values.forge.fileStore.pvc.size | default "10Gi" }} + {{- if .Values.forge.fileStore.pvc.storageClassName }} + storageClassName: {{ .Values.forge.fileStore.pvc.storageClassName }} + {{- end }} {{- end }} --- apiVersion: apps/v1 diff --git a/helm/flowfuse/values.schema.json b/helm/flowfuse/values.schema.json index ae378006..19424baa 100644 --- a/helm/flowfuse/values.schema.json +++ b/helm/flowfuse/values.schema.json @@ -714,6 +714,20 @@ }, "automountServiceAccountToken" : { "type": "boolean" + }, + "pvc": { + "type": "object", + "properties": { + "size": { + "type": "string" + }, + "storageClassName": { + "type": "string" + }, + "mode": { + "type": "string" + } + } } }, "required": [ From 822d1d96350d2b8a50559ee7cc417b201b116805 Mon Sep 17 00:00:00 2001 From: Ben Hardill Date: Tue, 24 Feb 2026 12:10:49 +0000 Subject: [PATCH 2/4] Add empty forge.fileStore.pvc --- helm/flowfuse/values.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/helm/flowfuse/values.yaml b/helm/flowfuse/values.yaml index 329eae1e..eef0f328 100644 --- a/helm/flowfuse/values.yaml +++ b/helm/flowfuse/values.yaml @@ -99,6 +99,7 @@ forge: backend: prometheus: enabled: false + pvc: {} support: enabled: false From edd5eb353c65f9634e84421b41b070066a43ed90 Mon Sep 17 00:00:00 2001 From: Ben Hardill Date: Tue, 24 Feb 2026 13:17:59 +0000 Subject: [PATCH 3/4] Update accessModes --- helm/flowfuse/README.md | 2 +- helm/flowfuse/templates/file-storage.yml | 8 +++++++- helm/flowfuse/values.schema.json | 8 ++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/helm/flowfuse/README.md b/helm/flowfuse/README.md index 06290fef..5a574653 100644 --- a/helm/flowfuse/README.md +++ b/helm/flowfuse/README.md @@ -220,7 +220,7 @@ Enables FlowFuse Telemetry - `forge.fileStore.automountServiceAccountToken` defines automount API credentials for a pod (default `false`) - `forge.fileStore.revisionHistoryLimit` number of old ReplicaSets to retain for the file storage Deployment. If not set, uses `forge.revisionHistoryLimit` (default `10`). - `forge.fileStore.pvc.size` starting size for the PVC that backs the file-server (default `10Gi`) -- `forge.fileStore.pvc.mode` Access mode for the PVC that backs the file-server (default `ReadWriteOnce`) +- `forge.fileStore.pvc.accessModes` Array of AccessModes for the PVC that backs the file-server (default single entry of `ReadWriteOnce`) - `forge.fileStore.pvc.storageClassName` Which StorageClass to use for the PVC that backs the file-server (default not set) ### Persistent Storage diff --git a/helm/flowfuse/templates/file-storage.yml b/helm/flowfuse/templates/file-storage.yml index 8c181a09..c58bd124 100644 --- a/helm/flowfuse/templates/file-storage.yml +++ b/helm/flowfuse/templates/file-storage.yml @@ -8,7 +8,13 @@ metadata: {{- include "forge.labels" . | nindent 4 }} spec: accessModes: - - {{ .Values.forge.fileStore.pvc.mode | default "ReadWriteOnce" }} + {{- if .Values.forge.pvc.accessModes}} + {{- range .Values.forge.pvc.accessModes }} + - {{ . | quote }} + {{- end }} + {{- else }} + - {{ .Values.forge.fileStore.pvc.accessModes | default "ReadWriteOnce" }} + {{- end }} resources: requests: storage: {{ .Values.forge.fileStore.pvc.size | default "10Gi" }} diff --git a/helm/flowfuse/values.schema.json b/helm/flowfuse/values.schema.json index 19424baa..0b71348a 100644 --- a/helm/flowfuse/values.schema.json +++ b/helm/flowfuse/values.schema.json @@ -724,8 +724,12 @@ "storageClassName": { "type": "string" }, - "mode": { - "type": "string" + "accessModes": { + "type": "array", + "items": { + "type": "string", + "enum": ["ReadWriteOnce", "ReadWriteMany", "ReadOnlyMany", "ReadWriteOncePod"] + } } } } From 1e6968ebbdcee2f705039f58b94bc83cbbe64440 Mon Sep 17 00:00:00 2001 From: Ben Hardill Date: Tue, 24 Feb 2026 13:22:38 +0000 Subject: [PATCH 4/4] fix option name --- helm/flowfuse/templates/file-storage.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/helm/flowfuse/templates/file-storage.yml b/helm/flowfuse/templates/file-storage.yml index c58bd124..b1e1681a 100644 --- a/helm/flowfuse/templates/file-storage.yml +++ b/helm/flowfuse/templates/file-storage.yml @@ -8,8 +8,8 @@ metadata: {{- include "forge.labels" . | nindent 4 }} spec: accessModes: - {{- if .Values.forge.pvc.accessModes}} - {{- range .Values.forge.pvc.accessModes }} + {{- if .Values.forge.fileStore.pvc.accessModes }} + {{- range .Values.forge.fileStore.pvc.accessModes }} - {{ . | quote }} {{- end }} {{- else }}