+
+{{/*
+ Generate a PVC
+
+ The function takes up to two arguments (inside a dictionary):
+ - .dot : environment (.)
+ - .suffix: suffix to name. if not set, default to "data".
+ - .persistenceInfos: the persitence values to use, default to
+ `.Values.persistence`.
+ Need to be the dict key from `.Values` in string
+ format.
+ let's say you have:
+
+ persistence:
+ logs:
+ enabled: true
+ size: 100Mi
+ accessMode: ReadWriteOnce
+ ...
+
+ then you have to put `.Values.persitence.logs` in
+ order to use it.
+
+ Example calls:
+ {{ include "common.PVC" . }}
+ {{ include "common.PVC" (dict "dot" . "suffix" "my-awesome-suffix" "persistenceInfos" .Values.persistenceLog) }}
+ {{ include "common.PVC" (dict dot" . "subPath" "persistenceInfos" .Values.persistence.log) }}
+*/}}
+{{- define "common.PVC" -}}
+{{- $dot := default . .dot -}}
+{{- $persistenceInfos := default $dot.Values.persistence .persistenceInfos -}}
+{{- $suffix := default "data" .suffix -}}
+{{- $metadata_suffix := ternary "" $suffix (eq $suffix "data") -}}
+{{- if and $persistenceInfos.enabled (not $persistenceInfos.existingClaim) -}}
+kind: PersistentVolumeClaim
+apiVersion: v1
+{{ include "common.PVCTemplate" (dict "dot" $dot "suffix" $suffix "persistenceInfos" $persistenceInfos) }}
+{{- end -}}
+{{- end -}}
+
+{{/*
+ Generate a PVC template for a statefulset
+
+ The function takes up to two arguments (inside a dictionary):
+ - .dot : environment (.)
+ - .suffix: suffix to name. if not set, default to "data".
+ - .persistenceInfos: the persitence values to use, default to
+ `.Values.persistence`.
+ Need to be the dict key from `.Values` in string
+ format.
+ let's say you have:
+
+ persistence:
+ logs:
+ enabled: true
+ size: 100Mi
+ accessMode: ReadWriteOnce
+ ...
+
+ then you have to put `.Values.persitence.logs` in
+ order to use it.
+
+ Example calls:
+ {{ include "common.PVCTemplate" . }}
+ {{ include "common.PVCTemplate" (dict "dot" . "suffix" "my-awesome-suffix" "persistenceInfos" .Values.persistenceLog) }}
+ {{ include "common.PVCTemplate" (dict dot" . "subPath" "persistenceInfos" .Values.persistence.log) }}
+*/}}
+{{- define "common.PVCTemplate" -}}
+{{- $dot := default . .dot -}}
+{{- $persistenceInfos := default $dot.Values.persistence .persistenceInfos -}}
+{{- $suffix := default "data" .suffix -}}
+{{- $metadata_suffix := ternary "" $suffix (eq $suffix "data") -}}
+metadata: {{- include "common.resourceMetadata" (dict "dot" $dot "suffix" $metadata_suffix "annotations" $persistenceInfos.annotations "ignoreHelmChart" .ignoreHelmChart) | nindent 2 }}
+spec:
+ accessModes:
+ - {{ $persistenceInfos.accessMode }}
+ storageClassName: {{ include "common.storageClass" (dict "dot" $dot "suffix" $suffix "persistenceInfos" $persistenceInfos ) }}
+ resources:
+ requests:
+ storage: {{ $persistenceInfos.size }}