[ANSIBLE] Add 'k8s-persistent-volume' role 44/121744/1
authorBartek Grzybowski <b.grzybowski@partner.samsung.com>
Tue, 8 Jun 2021 13:29:41 +0000 (15:29 +0200)
committerBartek Grzybowski <b.grzybowski@partner.samsung.com>
Tue, 8 Jun 2021 13:29:41 +0000 (15:29 +0200)
This role will setup predefined k8s persistent volumes. It leverages
the community.kubernetes.k8s ansible module.

Change-Id: If71481b6b0da60872498063ff29c8da5a3830fc5
Issue-ID: INT-1926
Signed-off-by: Bartek Grzybowski <b.grzybowski@partner.samsung.com>
ansible/roles/k8s-persistent-volume/defaults/main.yml [new file with mode: 0644]
ansible/roles/k8s-persistent-volume/tasks/main.yml [new file with mode: 0644]
ansible/roles/k8s-persistent-volume/templates/pv.yaml.j2 [new file with mode: 0644]

diff --git a/ansible/roles/k8s-persistent-volume/defaults/main.yml b/ansible/roles/k8s-persistent-volume/defaults/main.yml
new file mode 100644 (file)
index 0000000..5260db1
--- /dev/null
@@ -0,0 +1,5 @@
+---
+k8s_volumes:
+  - name: kube-prometheus
+    capacity: "6Gi"
+    path_prefix: "{{ nfs_mount_path }}"
diff --git a/ansible/roles/k8s-persistent-volume/tasks/main.yml b/ansible/roles/k8s-persistent-volume/tasks/main.yml
new file mode 100644 (file)
index 0000000..94f4e0b
--- /dev/null
@@ -0,0 +1,11 @@
+---
+- name: Install OpenShift Python client library  # community.kubernetes.k8s module dependency
+  package:
+    name: 'python2-openshift'
+    state: present
+
+- name: Create k8s persistent volumes
+  community.kubernetes.k8s:
+    wait: True
+    template: pv.yaml.j2
+  loop: "{{ k8s_volumes }}"
diff --git a/ansible/roles/k8s-persistent-volume/templates/pv.yaml.j2 b/ansible/roles/k8s-persistent-volume/templates/pv.yaml.j2
new file mode 100644 (file)
index 0000000..979ef2c
--- /dev/null
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: {{ item.name }}
+spec:
+  capacity:
+    storage: {{ item.capacity }}
+  volumeMode: Filesystem
+  accessModes:
+    - ReadWriteOnce
+  persistentVolumeReclaimPolicy: Retain
+  storageClassName: {{ item.name }}
+  hostPath:
+    path: {{ item.path_prefix }}/{{ item.name }}
+    type: ""