{{/*
# Copyright © 2017 Amdocs, Bell Canada
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
*/}}
{{- $global := . }}
{{- if and $global.Values.persistence.enabled (not $global.Values.persistence.existingClaim) -}}
{{- range $i, $t := until (int $global.Values.replicaCount)}}
kind: PersistentVolume
apiVersion: v1
metadata:
  name: {{ include "common.fullname" $global }}-data{{$i}}
  namespace: {{ include "common.namespace" $global }}
  labels:
    app: {{ include "common.fullname" $global }}
    chart: "{{ $global.Chart.Name }}-{{ $global.Chart.Version | replace "+" "_" }}"
    release: "{{ $global.Release.Name }}"
    heritage: "{{ $global.Release.Service }}"
    name: {{ include "common.fullname" $global }}
spec:
  capacity:
    storage: {{ $global.Values.persistence.size}}
  accessModes:
    - {{ $global.Values.persistence.accessMode }}
  persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
  storageClassName: "{{ include "common.fullname" $global }}-data"
  hostPath:
    path: {{ $global.Values.global.persistence.mountPath | default $global.Values.persistence.mountPath }}/{{ $global.Release.Name }}/{{ $global.Values.persistence.mountSubPath }}{{$i}}
---
{{- end -}}
{{- end -}}
