blob: 0b0d0d39bb052c8b151ac07134aa8b2484f95eb5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
---
- name: Ensure heketi configuration directory exists
file: path="{{ heketi_template_path }}" state="directory" mode=0600 owner=root group=root
- name: Check if secret exists
command: oc -n "{{ openshift_namespace }}" get secret/heketi
register: result
failed_when: false
changed_when: (result | failed)
- name: Create secret for dynamic volume provisioning
command: "kubectl create secret generic heketi --type=kubernetes.io/glusterfs --from-literal=key={{ ands_secrets.heketi.admin | quote }} --from-literal=user={{ ands_secrets.heketi.user | quote }} --namespace={{ openshift_namespace }}"
when: (result | changed)
- name: Copy Heketi configuration
copy: src="heketi/heketi.json" dest="{{ heketi_template_path }}/heketi.json" owner=root group=root mode="0644"
register: result1
- name: Check if configMap exists
command: oc -n "{{ openshift_namespace }}" get cm/heketi
register: result2
failed_when: false
changed_when: (result2 | failed)
- name: Desotry existing Heketi configuration
command: oc -n "{{ openshift_namespace }}" delete cm/heketi
when: ( result1 | changed ) and (not (result2 | changed))
- name: Create heketiConfigmap
command: oc -n "{{ openshift_namespace }}" create cm heketi --from-file="{{ heketi_template_path }}/heketi.json"
when: (result1 | changed) or (result2 | changed)
- name: Check if Heketi POD is running
command: oc -n "{{ openshift_namespace }}" get dc/heketi --template "{{ '{{.status.availableReplicas}}' }}"
register: result
failed_when: false
changed_when: (result | failed) or ((result.stdout | int) < 1)
- name: Fix GlusterFS volume permissions
include_tasks: heketi_perms.yml
args:
apply:
run_once: true
delegate_to: "{{ groups.masters[0] }}"
when: (result | changed)
- name: Copy Heketi Template
template: src="heketi/heketi_template.json.j2" dest="{{ heketi_template_path }}/heketi_template.json" owner=root group=root mode="0644"
register: result
- name: Create Heketi Pod
include_role: name="openshift_resource"
vars:
template: heketi_template.json
template_path: "{{ heketi_template_path }}"
project: "{{ openshift_namespace }}"
recreate: "{{ result | changed | ternary (true, false) }}"
- name: Wait until heketi service is running
wait_for: host="heketi.{{ openshift_master_default_subdomain }}" port=80 state=present
- name: Copy Heketi topology
template: src="heketi/topology.json.j2" dest="{{ heketi_template_path }}/topology.json" owner=root group=root mode="0644"
notify: heketi_topology
- name: Copy Heketi storage class
template: src="heketi/heketi-sc.yml.j2" dest="{{ heketi_template_path }}/heketi-sc.yml" owner=root group=root mode="0644"
register: result
- name: Setup Heketi-based dynamic volume provisioning
include_role: name="openshift_resource"
vars:
template: heketi-sc.yml
template_path: "{{ heketi_template_path }}"
project: "{{ openshift_namespace }}"
recreate: "{{ result | changed | ternary (true, false) }}"
|