diff --git a/common/templates/_persistentvolume.tpl b/common/templates/_persistentvolume.tpl new file mode 100644 index 0000000000000000000000000000000000000000..969e2d4d98d94ac6944159e6ae205a9cd4830220 --- /dev/null +++ b/common/templates/_persistentvolume.tpl @@ -0,0 +1,35 @@ +# Only use for static provisioning, dynamic provisioning will provision the pv upon request +{{- define "common.persistentvolume.persistentvolume" -}} +apiVersion: v1 +kind: PersistentVolume +metadata: + name: {{ .Values.name }} + {{- with .Values.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} + labels: + {{- include "common.labels" . | nindent 4 }} +spec: + capacity: + storage: {{ .Values.size }} + {{- with .Values.mountOptions }} + mountOptions: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.accessModes }} + accessModes: + {{- toYaml . | nindent 4 }} + {{- end }} + persistentVolumeReclaimPolicy: {{ .Values.reclaimPolicy | default "Retain" }} + storageClassName: {{ .Values.storageClassName | default "manual" }} + {{- with .Values.claimRefName }} + claimRef: + name: {{ quote . }} + namespace: {{ quote $.Release.Namespace }} + {{- end}} + {{- with .Values.mount }} + {{- toYaml . | nindent 2 }} + {{- end }} +--- +{{- end }} diff --git a/example/templates/persistentvolumes.yaml b/example/templates/persistentvolumes.yaml new file mode 100644 index 0000000000000000000000000000000000000000..bf4912ed6995514fd02442b2fb0fa545ebbd1b3e --- /dev/null +++ b/example/templates/persistentvolumes.yaml @@ -0,0 +1,3 @@ +{{- if .Values.volumes.persistentVolumes.example }} +{{ include "common.persistentvolume.persistentvolume" (dict "Values" .Values.volumes.persistentVolumes.example "Chart" .Chart "Release" .Release) }} +{{- end }} diff --git a/example/values.yaml b/example/values.yaml index d59c0e0820ac33a2bdeb5766af8313dc5dcde9c2..7a48e8e351c2580f6f76cdd2bdb3ee6ca637987e 100644 --- a/example/values.yaml +++ b/example/values.yaml @@ -30,3 +30,20 @@ secrets: data: username: example password: example + +volumes: + persistentVolumes: + example: + name: example + size: 5Gi + mountOptions: + - nfsvers=4.1 + accessModes: + - ReadWriteMany + reclaimPolicy: Delete + storageClassName: manual + claimRefName: example + mount: + nfs: + server: 192.168.1.196 + path: /example