|
@@ -0,0 +1,89 @@
|
|
|
+---
|
|
|
+- name: Ensure openshift-console project exists
|
|
|
+ oc_project:
|
|
|
+ name: openshift-console
|
|
|
+ state: present
|
|
|
+ node_selector:
|
|
|
+ - ""
|
|
|
+
|
|
|
+- name: Make temp directory for console templates
|
|
|
+ command: mktemp -d /tmp/console-ansible-XXXXXX
|
|
|
+ register: mktemp
|
|
|
+ changed_when: False
|
|
|
+
|
|
|
+- name: Copy admin client config
|
|
|
+ command: >
|
|
|
+ cp {{ openshift.common.config_base }}/master/admin.kubeconfig {{ mktemp.stdout }}/admin.kubeconfig
|
|
|
+ changed_when: false
|
|
|
+
|
|
|
+- name: Copy console templates to temp directory
|
|
|
+ copy:
|
|
|
+ src: "{{ item }}"
|
|
|
+ dest: "{{ mktemp.stdout }}/{{ item }}"
|
|
|
+ with_items:
|
|
|
+ - "{{ __console_template_file }}"
|
|
|
+ - "{{ __console_config_file }}"
|
|
|
+
|
|
|
+# Check if an existing console-config config map exists. If so, use those
|
|
|
+# contents so we don't overwrite changes.
|
|
|
+- name: Read the existing console config map
|
|
|
+ oc_configmap:
|
|
|
+ namespace: openshift-console
|
|
|
+ name: console-config
|
|
|
+ state: list
|
|
|
+ register: console_config_map
|
|
|
+
|
|
|
+- set_fact:
|
|
|
+ existing_config_map_data: "{{ console_config_map.results.results[0].data | default({}) }}"
|
|
|
+
|
|
|
+- name: Copy the existing web console config to temp directory
|
|
|
+ copy:
|
|
|
+ content: "{{ existing_config_map_data['console-config.yaml'] }}"
|
|
|
+ dest: "{{ mktemp.stdout }}/{{ __console_config_file }}"
|
|
|
+ when: existing_config_map_data['console-config.yaml'] is defined
|
|
|
+
|
|
|
+# Generate a new config when a config map is not defined.
|
|
|
+- name: Set web console config properties from inventory variables
|
|
|
+ yedit:
|
|
|
+ src: "{{ mktemp.stdout }}/{{ __console_config_file }}"
|
|
|
+ edits:
|
|
|
+ - key: clusterInfo#consoleBaseAddress
|
|
|
+ value: "https://{{ openshift_console_hostname }}"
|
|
|
+ - key: clusterInfo#consoleBasePath
|
|
|
+ value: "{{ openshift_console_base_path | default('') }}"
|
|
|
+ - key: clusterInfo#masterPublicURL
|
|
|
+ value: "{{ openshift.master.public_api_url }}"
|
|
|
+ - key: auth#oauthEndpointCAFile
|
|
|
+ value: "{{ openshift_console_auth_ca_file }}"
|
|
|
+ - key: auth#logoutRedirect
|
|
|
+ value: "{{ openshift.master.logout_url | default('') }}"
|
|
|
+ - key: customization#logoImageName
|
|
|
+ value: "{{ openshift_console_logo_image_name }}"
|
|
|
+ - key: customization#documentationBaseURL
|
|
|
+ value: "{{ openshift_console_documentation_base_url }}"
|
|
|
+ separator: '#'
|
|
|
+ state: present
|
|
|
+ when: existing_config_map_data['console-config.yaml'] is not defined
|
|
|
+
|
|
|
+- slurp:
|
|
|
+ src: "{{ mktemp.stdout }}/{{ __console_config_file }}"
|
|
|
+ register: updated_console_config
|
|
|
+
|
|
|
+- name: Apply the console template file
|
|
|
+ shell: >
|
|
|
+ {{ openshift_client_binary }} process -f "{{ mktemp.stdout }}/{{ __console_template_file }}"
|
|
|
+ --param IMAGE="{{ openshift_console_image_name }}"
|
|
|
+ --param NODE_SELECTOR={{ openshift_console_nodeselector | to_json | quote }}
|
|
|
+ --param SERVER_CONFIG="{{ updated_console_config['content'] | b64decode }}"
|
|
|
+ --param REPLICA_COUNT="{{ openshift_console_replica_count }}"
|
|
|
+ --param CONSOLE_HOSTNAME="{{ openshift_console_hostname }}"
|
|
|
+ --config={{ mktemp.stdout }}/admin.kubeconfig
|
|
|
+ | {{ openshift_client_binary }} apply --config={{ mktemp.stdout }}/admin.kubeconfig -f -
|
|
|
+
|
|
|
+- name: Remove temp directory
|
|
|
+ file:
|
|
|
+ state: absent
|
|
|
+ name: "{{ mktemp.stdout }}"
|
|
|
+ changed_when: False
|
|
|
+
|
|
|
+- include_tasks: start.yml
|