diff options
| author | Eric Wolinetz <ewolinet@redhat.com> | 2018-01-31 15:56:13 -0600 | 
|---|---|---|
| committer | Eric Wolinetz <ewolinet@redhat.com> | 2018-01-31 16:50:18 -0600 | 
| commit | 5341e36899a03bf48f0e2c2be7eb5ccb5548bda2 (patch) | |
| tree | a4ca994698e6db376647a2c82b41a59f5b53101a | |
| parent | b684f992a6a147097d44722aadedd99e4d6a6867 (diff) | |
| download | openshift-5341e36899a03bf48f0e2c2be7eb5ccb5548bda2.tar.gz openshift-5341e36899a03bf48f0e2c2be7eb5ccb5548bda2.tar.bz2 openshift-5341e36899a03bf48f0e2c2be7eb5ccb5548bda2.tar.xz openshift-5341e36899a03bf48f0e2c2be7eb5ccb5548bda2.zip | |
Conditionally create pvcs for metrics depending on whether or not it already exists
| -rw-r--r-- | roles/openshift_metrics/tasks/generate_cassandra_pvcs.yaml | 46 | ||||
| -rw-r--r-- | roles/openshift_metrics/tasks/install_cassandra.yaml | 35 | 
2 files changed, 49 insertions, 32 deletions
| diff --git a/roles/openshift_metrics/tasks/generate_cassandra_pvcs.yaml b/roles/openshift_metrics/tasks/generate_cassandra_pvcs.yaml new file mode 100644 index 000000000..6aa48f9c3 --- /dev/null +++ b/roles/openshift_metrics/tasks/generate_cassandra_pvcs.yaml @@ -0,0 +1,46 @@ +--- +- name: Check to see if PVC already exists +  oc_obj: +    state: list +    kind: pvc +    name: "{{ openshift_metrics_cassandra_pvc_prefix }}-{{ metrics_pvc_index }}" +    namespace: "{{ openshift_metrics_project }}" +  register: _metrics_pvc + +# _metrics_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: +    - _metrics_pvc.results.stderr is defined +  block: +    - name: generate hawkular-cassandra persistent volume claims +      template: +        src: pvc.j2 +        dest: "{{ mktemp.stdout }}/templates/hawkular-cassandra-pvc{{ metrics_pvc_index }}.yaml" +      vars: +        obj_name: "{{ openshift_metrics_cassandra_pvc_prefix }}-{{ metrics_pvc_index }}" +        labels: +          metrics-infra: hawkular-cassandra +        access_modes: "{{ openshift_metrics_cassandra_pvc_access | list }}" +        size: "{{ openshift_metrics_cassandra_pvc_size }}" +        pv_selector: "{{ openshift_metrics_cassandra_pv_selector }}" +        storage_class_name: "{{ openshift_metrics_cassanda_pvc_storage_class_name | default('', true) }}" +      when: +        - openshift_metrics_cassandra_storage_type != 'emptydir' +        - openshift_metrics_cassandra_storage_type != 'dynamic' +      changed_when: false + +    - name: generate hawkular-cassandra persistent volume claims (dynamic) +      template: +        src: pvc.j2 +        dest: "{{ mktemp.stdout }}/templates/hawkular-cassandra-pvc{{ metrics_pvc_index }}.yaml" +      vars: +        obj_name: "{{ openshift_metrics_cassandra_pvc_prefix }}-{{ metrics_pvc_index }}" +        labels: +          metrics-infra: hawkular-cassandra +        access_modes: "{{ openshift_metrics_cassandra_pvc_access | list }}" +        size: "{{ openshift_metrics_cassandra_pvc_size }}" +        pv_selector: "{{ openshift_metrics_cassandra_pv_selector }}" +        storage_class_name: "{{ openshift_metrics_cassanda_pvc_storage_class_name | default('', true) }}" +      when: openshift_metrics_cassandra_storage_type == 'dynamic' +      changed_when: false diff --git a/roles/openshift_metrics/tasks/install_cassandra.yaml b/roles/openshift_metrics/tasks/install_cassandra.yaml index 9026cc897..158e596ec 100644 --- a/roles/openshift_metrics/tasks/install_cassandra.yaml +++ b/roles/openshift_metrics/tasks/install_cassandra.yaml @@ -25,36 +25,7 @@  - set_fact: openshift_metrics_cassandra_pvc_prefix="hawkular-metrics"    when: "not openshift_metrics_cassandra_pvc_prefix or openshift_metrics_cassandra_pvc_prefix == ''" -- name: generate hawkular-cassandra persistent volume claims -  template: -    src: pvc.j2 -    dest: "{{ mktemp.stdout }}/templates/hawkular-cassandra-pvc{{ item }}.yaml" -  vars: -    obj_name: "{{ openshift_metrics_cassandra_pvc_prefix }}-{{ item }}" -    labels: -      metrics-infra: hawkular-cassandra -    access_modes: "{{ openshift_metrics_cassandra_pvc_access | list }}" -    size: "{{ openshift_metrics_cassandra_pvc_size }}" -    pv_selector: "{{ openshift_metrics_cassandra_pv_selector }}" -    storage_class_name: "{{ openshift_metrics_cassanda_pvc_storage_class_name | default('', true) }}" -  with_sequence: count={{ openshift_metrics_cassandra_replicas }} -  when: -  - openshift_metrics_cassandra_storage_type != 'emptydir' -  - openshift_metrics_cassandra_storage_type != 'dynamic' -  changed_when: false - -- name: generate hawkular-cassandra persistent volume claims (dynamic) -  template: -    src: pvc.j2 -    dest: "{{ mktemp.stdout }}/templates/hawkular-cassandra-pvc{{ item }}.yaml" -  vars: -    obj_name: "{{ openshift_metrics_cassandra_pvc_prefix }}-{{ item }}" -    labels: -      metrics-infra: hawkular-cassandra -    access_modes: "{{ openshift_metrics_cassandra_pvc_access | list }}" -    size: "{{ openshift_metrics_cassandra_pvc_size }}" -    pv_selector: "{{ openshift_metrics_cassandra_pv_selector }}" -    storage_class_name: "{{ openshift_metrics_cassanda_pvc_storage_class_name | default('', true) }}" +- include_tasks: generate_cassandra_pvcs.yaml    with_sequence: count={{ openshift_metrics_cassandra_replicas }} -  when: openshift_metrics_cassandra_storage_type == 'dynamic' -  changed_when: false +  loop_control: +    loop_var: metrics_pvc_index | 
