summaryrefslogtreecommitdiffstats
path: root/roles/openshift_storage_glusterfs/tasks/glusterblock_deploy.yml
blob: e5dcdcab74fec38fd2c257468b50c74f8534f0dd (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
---
- name: Delete pre-existing glusterblock provisioner resources
  oc_obj:
    namespace: "{{ glusterfs_namespace }}"
    kind: "{{ item.kind }}"
    name: "{{ item.name | default(omit) }}"
    selector: "{{ item.selector | default(omit) }}"
    state: absent
  with_items:
  - kind: "all,deploy,sa,clusterrole,clusterrolebinding"
    selector: "glusterblock"
  failed_when: False
  when: glusterfs_wipe

- name: Wait for glusterblock provisioner pods to terminate
  oc_obj:
    namespace: "{{ glusterfs_namespace }}"
    kind: pod
    state: list
    selector: "glusterfs=block-{{ glusterfs_name }}-provisioner-pod"
  register: glusterblock_pod
  until: "glusterblock_pod.results.results[0]['items'] | count == 0"
  delay: 10
  retries: "{{ (glusterfs_timeout | int / 10) | int }}"
  when: glusterfs_wipe

- name: Copy initial glusterblock provisioner resource file
  copy:
    src: "{{ openshift.common.examples_content_version }}/{{ item }}"
    dest: "{{ mktemp.stdout }}/{{ item }}"
  with_items:
  - "glusterblock-provisioner.yml"

- name: Create glusterblock provisioner template
  oc_obj:
    namespace: "{{ glusterfs_namespace }}"
    kind: template
    name: "glusterblock-provisioner"
    state: present
    files:
    - "{{ mktemp.stdout }}/glusterblock-provisioner.yml"

- name: Deploy glusterblock provisioner
  oc_process:
    namespace: "{{ glusterfs_namespace }}"
    template_name: "glusterblock-provisioner"
    create: True
    params:
      IMAGE_NAME: "{{ glusterfs_block_image }}"
      IMAGE_VERSION: "{{ glusterfs_block_version }}"
      NAMESPACE: "{{ glusterfs_namespace }}"
      CLUSTER_NAME: "{{ glusterfs_name }}"

- name: Wait for glusterblock provisioner pod
  oc_obj:
    namespace: "{{ glusterfs_namespace }}"
    kind: pod
    state: list
    selector: "glusterfs=block-{{ glusterfs_name }}-provisioner-pod"
  register: glusterblock_pod
  until:
  - "glusterblock_pod.results.results[0]['items'] | count > 0"
  # Pod's 'Ready' status must be True
  - "glusterblock_pod.results.results[0]['items'] | lib_utils_oo_collect(attribute='status.conditions') | lib_utils_oo_collect(attribute='status', filters={'type': 'Ready'}) | map('bool') | select | list | count == 1"
  delay: 10
  retries: "{{ (glusterfs_timeout | int / 10) | int }}"