{{- if not (empty .Values.persistence.volumeClaims) }}
{{- $apiVersions := (include "k8s.apiVersions" .) | fromJson }}
{{- $fullname := (include "k8s.serviceFullname" .) }}
{{- $labels := (include "k8s.labels" .) | fromJson }}
{{- range $pvc := .Values.persistence.volumeClaims }}
---
apiVersion: {{ get $apiVersions "PersistentVolumeClaim" }}
kind: PersistentVolumeClaim
metadata:
  name: pvc.{{ $fullname }}-{{ $pvc.name | required "PersistentVolumeClaim name required!" }}
  labels:
  {{- range $key, $value := $labels }}
    {{ $key }}: {{ $value }}
  {{- end }}
  annotations:
  {{- with $pvc.annotations }}
    {{- toYaml . | nindent 4 }}
  {{- end }}
spec:
  {{- if $pvc.volumeName }}
  volumeName: {{ $pvc.volumeName }}
  {{- else }}
  storageClassName: {{ $pvc.storageClassName }}
  {{- end }}
  accessModes:
  {{- if $pvc.accessModes }}
    {{- toYaml $pvc.accessModes | nindent 4 }}
  {{- else }}
    - ReadWriteOnce
  {{- end }}
  selector:
  {{- if $pvc.matchLabels }}
    matchLabels:
      {{- toYaml $pvc.matchLabels | nindent 6 }}
  {{- end }}
  {{- if $pvc.matchExpressions }}
    matchExpressions:
      {{- toYaml $pvc.matchExpressions | nindent 6 }}
  {{- end }}
  resources:
    requests:
      storage: {{ $pvc.storageRequest | quote | default "2Gi" }}
{{- end }}
{{- end }}
