summaryrefslogtreecommitdiffstats
path: root/roles/ands_openshift/tasks/heketi_resources.yml
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) }}"