diff options
| author | ewolinetz <ewolinet@redhat.com> | 2017-08-04 10:45:44 -0500 | 
|---|---|---|
| committer | ewolinetz <ewolinet@redhat.com> | 2017-08-04 11:47:46 -0500 | 
| commit | ec35b31a6d2fa4cebb000aa2baf24827a6698109 (patch) | |
| tree | 666b0cba934e2de80e98dd8f673e89c4a152e789 /roles | |
| parent | f964fae7e6a59a80567608f8bad3763b4b10eb32 (diff) | |
| download | openshift-ec35b31a6d2fa4cebb000aa2baf24827a6698109.tar.gz openshift-ec35b31a6d2fa4cebb000aa2baf24827a6698109.tar.bz2 openshift-ec35b31a6d2fa4cebb000aa2baf24827a6698109.tar.xz openshift-ec35b31a6d2fa4cebb000aa2baf24827a6698109.zip | |
Updating PVC generation to only be done if the pvc does not already exist to avoid idempotent issues
Diffstat (limited to 'roles')
| -rw-r--r-- | roles/openshift_logging_elasticsearch/tasks/main.yaml | 83 | 
1 files changed, 47 insertions, 36 deletions
| diff --git a/roles/openshift_logging_elasticsearch/tasks/main.yaml b/roles/openshift_logging_elasticsearch/tasks/main.yaml index 0548e3c40..aae23668a 100644 --- a/roles/openshift_logging_elasticsearch/tasks/main.yaml +++ b/roles/openshift_logging_elasticsearch/tasks/main.yaml @@ -192,47 +192,58 @@      - port: 9200        targetPort: "restapi" -# storageclasses are used by default but if static then disable -# storageclasses with the storageClassName set to "" in pvc.j2 -- name: Creating ES storage template - static -  template: -    src: pvc.j2 -    dest: "{{ tempdir }}/templates/logging-es-pvc.yml" -  vars: -    obj_name: "{{ openshift_logging_elasticsearch_pvc_name }}" -    size: "{{ openshift_logging_elasticsearch_pvc_size }}" -    access_modes: "{{ openshift_logging_elasticsearch_pvc_access_modes | list }}" -    pv_selector: "{{ openshift_logging_elasticsearch_pvc_pv_selector }}" -    storage_class_name: "{{ openshift_logging_elasticsearch_pvc_storage_class_name | default('', true) }}" -  when: -  - openshift_logging_elasticsearch_storage_type == "pvc" -  - not openshift_logging_elasticsearch_pvc_dynamic | bool - -# Storageclasses are used by default if configured -- name: Creating ES storage template - dynamic -  template: -    src: pvc.j2 -    dest: "{{ tempdir }}/templates/logging-es-pvc.yml" -  vars: -    obj_name: "{{ openshift_logging_elasticsearch_pvc_name }}" -    size: "{{ openshift_logging_elasticsearch_pvc_size }}" -    access_modes: "{{ openshift_logging_elasticsearch_pvc_access_modes | list }}" -    pv_selector: "{{ openshift_logging_elasticsearch_pvc_pv_selector }}" -  when: -  - openshift_logging_elasticsearch_storage_type == "pvc" -  - openshift_logging_elasticsearch_pvc_dynamic | bool - -- name: Set ES storage +- name: Check to see if PVC already exists    oc_obj: -    state: present +    state: list      kind: pvc      name: "{{ openshift_logging_elasticsearch_pvc_name }}"      namespace: "{{ openshift_logging_elasticsearch_namespace }}" -    files: -    - "{{ tempdir }}/templates/logging-es-pvc.yml" -    delete_after: true -  when: +  register: logging_elasticsearch_pvc + +# logging_elasticsearch_pvc.results.results | length > 0 returns a false positive +# so we check for the presence of 'stderr' to determine if the obj exists or not +# the RC for existing and not existing is both 0 +- when: +  - logging_elasticsearch_pvc.results.stderr is defined    - openshift_logging_elasticsearch_storage_type == "pvc" +  block: +  # storageclasses are used by default but if static then disable +  # storageclasses with the storageClassName set to "" in pvc.j2 +  - name: Creating ES storage template - static +    template: +      src: pvc.j2 +      dest: "{{ tempdir }}/templates/logging-es-pvc.yml" +    vars: +      obj_name: "{{ openshift_logging_elasticsearch_pvc_name }}" +      size: "{{ openshift_logging_elasticsearch_pvc_size }}" +      access_modes: "{{ openshift_logging_elasticsearch_pvc_access_modes | list }}" +      pv_selector: "{{ openshift_logging_elasticsearch_pvc_pv_selector }}" +      storage_class_name: "{{ openshift_logging_elasticsearch_pvc_storage_class_name | default('', true) }}" +    when: +    - not openshift_logging_elasticsearch_pvc_dynamic | bool + +  # Storageclasses are used by default if configured +  - name: Creating ES storage template - dynamic +    template: +      src: pvc.j2 +      dest: "{{ tempdir }}/templates/logging-es-pvc.yml" +    vars: +      obj_name: "{{ openshift_logging_elasticsearch_pvc_name }}" +      size: "{{ openshift_logging_elasticsearch_pvc_size }}" +      access_modes: "{{ openshift_logging_elasticsearch_pvc_access_modes | list }}" +      pv_selector: "{{ openshift_logging_elasticsearch_pvc_pv_selector }}" +    when: +    - openshift_logging_elasticsearch_pvc_dynamic | bool + +  - name: Set ES storage +    oc_obj: +      state: present +      kind: pvc +      name: "{{ openshift_logging_elasticsearch_pvc_name }}" +      namespace: "{{ openshift_logging_elasticsearch_namespace }}" +      files: +      - "{{ tempdir }}/templates/logging-es-pvc.yml" +      delete_after: true  - set_fact:      es_deploy_name: "logging-{{ es_component }}-{{ openshift_logging_elasticsearch_deployment_type }}-{{ 'abcdefghijklmnopqrstuvwxyz0123456789' | random_word(8) }}" | 
