--- # This task updates asset config values in the webconsole-config config map in # the openshift-web-console namespace. The values to set are pased in the # variable `asset_config_edits`, which is an array of objects with `key` and # `value` properties in the same format as `yedit` module `edits`. Only # properties passed are updated. # # Note that this triggers a redeployment on the console and a brief downtime # since it uses a `Recreate` strategy. # # Example usage: # # - include_role: # name: openshift_web_console # tasks_from: update_asset_config.yml # vars: # asset_config_edits: # - key: loggingPublicURL # value: "https://{{ openshift_logging_kibana_hostname }}" # when: openshift_web_console_install | default(true) | bool - name: Read 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 changed_when: False - name: Copy asset config to temp file copy: content: "{{webconsole_config.results.results[0].data['webconsole-config.yaml']}}" dest: "{{ mktemp.stdout }}/webconsole-config.yaml" - name: Change asset config properties yedit: src: "{{ mktemp.stdout }}/webconsole-config.yaml" edits: "{{asset_config_edits}}" - name: Update web console config map oc_configmap: namespace: openshift-web-console name: webconsole-config state: present from_file: webconsole-config.yaml: "{{ mktemp.stdout }}/webconsole-config.yaml" - name: Remove temp directory file: state: absent name: "{{ mktemp.stdout }}" changed_when: False # There's currently no command to trigger a rollout for a k8s deployment # without changing the pod spec. Add an annotation to force a rollout after # the config map has been edited. - name: Rollout updated web console deployment oc_edit: kind: deployments name: webconsole namespace: openshift-web-console separator: '#' content: spec#template#metadata#annotations#installer-triggered-rollout: "{{ ansible_date_time.iso8601_micro }}"