* Adds StatefulSet support # Conflicts: # helm/opengist/templates/pvc.yaml * Adds statefulset support for replicaCount gt 1 * Improves the setup of multiple replicas in a stateful set * Adds config wrangling logic to the secret template * Adds shared PV functionality * Adds missing pvc-shared template * Adds stateful set and documentation --------- Co-authored-by: Guillem Riera <guillem@rieragalm.es>
49 lines
2.0 KiB
YAML
49 lines
2.0 KiB
YAML
{{- /*
|
|
This template creates a standalone PersistentVolumeClaim for shared persistence mode.
|
|
|
|
Rendering conditions:
|
|
- statefulSet.enabled=true
|
|
- persistence.enabled=true
|
|
- persistence.mode=shared
|
|
- persistence.existingClaim is empty/unset
|
|
- persistence.create.enabled=true
|
|
|
|
When rendered, this PVC is mounted by ALL replicas in the StatefulSet (typically with ReadWriteMany
|
|
access mode for multi-replica deployments). This avoids per-replica volumeClaimTemplates and enables
|
|
horizontal scaling with a single shared storage backend.
|
|
|
|
If persistence.existingClaim is set, this template does NOT render; the StatefulSet instead references
|
|
the existing claim name directly.
|
|
*/}}
|
|
{{- if and .Values.statefulSet.enabled .Values.persistence.enabled (eq (default "perReplica" .Values.persistence.mode) "shared") (ne (default "" .Values.persistence.existingClaim) "") | not }}{{- end }}
|
|
{{- if and .Values.statefulSet.enabled .Values.persistence.enabled (eq (default "perReplica" .Values.persistence.mode) "shared") (eq (default "" .Values.persistence.existingClaim) "") .Values.persistence.create.enabled }}
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: {{ include "opengist.fullname" . }}-{{ default "shared" .Values.persistence.create.nameSuffix }}
|
|
labels:
|
|
{{- include "opengist.labels" . | nindent 4 }}
|
|
{{- with .Values.persistence.create.labels }}
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
{{- with .Values.persistence.create.annotations }}
|
|
annotations:
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
spec:
|
|
accessModes:
|
|
{{- if .Values.persistence.create.accessModes }}
|
|
{{- toYaml .Values.persistence.create.accessModes | nindent 4 }}
|
|
{{- else }}
|
|
- ReadWriteMany
|
|
{{- end }}
|
|
resources:
|
|
requests:
|
|
storage: {{ default .Values.persistence.size .Values.persistence.create.size }}
|
|
volumeMode: Filesystem
|
|
{{- $sc := default .Values.persistence.storageClass .Values.persistence.create.storageClass }}
|
|
{{- if $sc }}
|
|
storageClassName: {{ $sc | quote }}
|
|
{{- end }}
|
|
{{- end }}
|