diff options
Diffstat (limited to 'roles/openshift_web_console')
| -rw-r--r-- | roles/openshift_web_console/tasks/update_console_config.yml | 77 | 
1 files changed, 41 insertions, 36 deletions
diff --git a/roles/openshift_web_console/tasks/update_console_config.yml b/roles/openshift_web_console/tasks/update_console_config.yml index 4d2957977..41da2c16a 100644 --- a/roles/openshift_web_console/tasks/update_console_config.yml +++ b/roles/openshift_web_console/tasks/update_console_config.yml @@ -19,43 +19,48 @@  #         value: "https://{{ openshift_logging_kibana_hostname }}"  #   when: openshift_web_console_install | default(true) | bool -- name: Read web console config map +- name: Read the existing web console config map    oc_configmap:      namespace: openshift-web-console      name: webconsole-config      state: list -  register: webconsole_config - -- name: Make temp directory -  command: mktemp -d /tmp/console-ansible-XXXXXX -  register: mktemp_console -  changed_when: False - -- name: Copy web console config to temp file -  copy: -    content: "{{webconsole_config.results.results[0].data['webconsole-config.yaml']}}" -    dest: "{{ mktemp_console.stdout }}/webconsole-config.yaml" - -- name: Change web console config properties -  yedit: -    src: "{{ mktemp_console.stdout }}/webconsole-config.yaml" -    edits: "{{console_config_edits}}" -    separator: '#' -    state: present - -- name: Update web console config map -  oc_configmap: -    namespace: openshift-web-console -    name: webconsole-config -    state: present -    from_file: -      webconsole-config.yaml: "{{ mktemp_console.stdout }}/webconsole-config.yaml" - -- name: Remove temp directory -  file: -    state: absent -    name: "{{ mktemp_console.stdout }}" -  changed_when: False - -# TODO: Only rollout if config has changed. -- include_tasks: rollout_console.yml +  register: webconsole_config_map + +- set_fact: +    existing_config_map_data: "{{ webconsole_config_map.results.results[0].data | default({}) }}" + +- when: existing_config_map_data['webconsole-config.yaml'] is defined +  block: +  - name: Make temp directory +    command: mktemp -d /tmp/console-ansible-XXXXXX +    register: mktemp_console +    changed_when: False + +  - name: Copy the existing web console config to temp directory +    copy: +      content: "{{ existing_config_map_data['webconsole-config.yaml'] }}" +      dest: "{{ mktemp_console.stdout }}/webconsole-config.yaml" + +  - name: Change web console config properties +    yedit: +      src: "{{ mktemp_console.stdout }}/webconsole-config.yaml" +      edits: "{{console_config_edits}}" +      separator: '#' +      state: present + +  - name: Update web console config map +    oc_configmap: +      namespace: openshift-web-console +      name: webconsole-config +      state: present +      from_file: +        webconsole-config.yaml: "{{ mktemp_console.stdout }}/webconsole-config.yaml" + +  - name: Remove temp directory +    file: +      state: absent +      name: "{{ mktemp_console.stdout }}" +    changed_when: False + +  # TODO: Only rollout if config has changed. +  - include_tasks: rollout_console.yml  | 
