summaryrefslogtreecommitdiffstats
path: root/roles/ands_kaas/00-local-volumes.yml.j2
diff options
context:
space:
mode:
Diffstat (limited to 'roles/ands_kaas/00-local-volumes.yml.j2')
-rw-r--r--roles/ands_kaas/00-local-volumes.yml.j267
1 files changed, 67 insertions, 0 deletions
diff --git a/roles/ands_kaas/00-local-volumes.yml.j2 b/roles/ands_kaas/00-local-volumes.yml.j2
new file mode 100644
index 0000000..8d1a1c8
--- /dev/null
+++ b/roles/ands_kaas/00-local-volumes.yml.j2
@@ -0,0 +1,67 @@
+---
+apiVersion: v1
+kind: Template
+metadata:
+ name: {{ kaas_project }}-local-volumes
+ annotations:
+ descriptions: "{{ kaas_project }} local volumes"
+objects:
+{% for name, vol in kaas_project_local_volumes.iteritems() %}
+{% set voltypes = kaas_storage_domains | json_query("[*].volumes." + vol.volume + ".type") %}
+{% set voltype = voltypes[0] | default('host') %}
+{% set mntpaths = kaas_storage_domains | json_query("[*].volumes." + vol.volume + ".mount") %}
+{% set mntpath = mntpaths[0] | default('') %}
+{% 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 pvprefix = oc_name %}
+{% else %}
+{% set pvprefix = (kaas_project + "-" + oc_name) | regex_replace('_','-') %}
+{% endif %}
+{% set i = 0 %}
+{% for id in vol.nodes | default(hostvars[inventory_hostname]['ands_volume_' + vol.volume + '_server_ids']) %}
+{% set srvid = (id | string) %}
+{% set server_name = hostvars[inventory_hostname]['ands_host_' + srvid + '_public_hostname'] %}
+{% set openshift_name = hostvars[inventory_hostname]['ands_host_' + srvid + '_openshift_fqdn'] %}
+{% set pvname = pvprefix + '-' + server_name %}
+{% set pvcname = oc_name + '-' + (i|string) %}
+ - apiVersion: v1
+ kind: PersistentVolume
+ metadata:
+ name: {{ pvname }}
+ annotations:
+ "volume.alpha.kubernetes.io/node-affinity": '{
+ "requiredDuringSchedulingIgnoredDuringExecution": {
+ "nodeSelectorTerms": [
+ { "matchExpressions": [ { "key": "kubernetes.io/hostname", "operator": "In", "values": ["{{ openshift_name }}"] } ]}
+ ]
+ }
+ }'
+ spec:
+ storageClassName: kaas-local-storage
+ persistentVolumeReclaimPolicy: Retain
+ local:
+ path: "{{ mntpath }}{{ path }}"
+ readOnly: {{ not (vol.write | default(false)) }}
+ accessModes:
+ - ReadWriteOnce
+ capacity:
+ storage: {{ vol.capacity | default(kaas_default_volume_capacity) }}
+ claimRef:
+ name: {{ pvcname }}
+ namespace: {{ kaas_project }}
+ - apiVersion: v1
+ kind: PersistentVolumeClaim
+ metadata:
+ name: {{ pvcname }}
+ spec:
+ volumeName: {{ pvname }}
+ accessModes:
+ - ReadWriteOnce
+ resources:
+ requests:
+ storage: {{ vol.capacity | default(kaas_default_volume_capacity) }}
+{% set i = i + 1 %}
+{% endfor %}
+{% endfor %}