--- apiVersion: v1 kind: Template metadata: name: {{ kaas_project }}-gfs-volumes annotations: descriptions: "{{ kaas_project }} glusterfs volumes" objects: {% for name, vol in kaas_project_volumes.iteritems() %} {% set oc_name = vol.name | default(name) | regex_replace('_','-') %} {% set cfgpath = vol.path | default("") %} {% set path = cfgpath if cfgpath[:1] == "/" else "/" + kaas_project + "/" + cfgpath %} {% if oc_name | regex_search("^" + kaas_project) %} {% set pvname = oc_name %} {% else %} {% set pvname = (kaas_project + "-" + oc_name) | regex_replace('_','-') %} {% endif %} - apiVersion: v1 kind: PersistentVolume metadata: name: {{ pvname }} spec: persistentVolumeReclaimPolicy: Retain glusterfs: endpoints: {{ kaas_glusterfs_endpoints }} path: "{{ vol.volume }}{{path}}" readOnly: {{ not (vol.write | default(false)) }} accessModes: - {{ vol.access | default(vol.write | default(false) | ternary('ReadWriteMany', 'ReadOnlyMany')) }} capacity: storage: {{ vol.capacity | default(kaas_default_volume_capacity) }} claimRef: name: {{ oc_name }} namespace: {{ kaas_project }} - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: {{ oc_name }} spec: volumeName: {{ pvname }} accessModes: - {{ vol.access | default('ReadWriteMany') }} resources: requests: storage: {{ vol.capacity | default(kaas_default_volume_capacity) }} {% endfor %}