blob: 287d8973d8505a2b24cdf2f4418e2be5d06d60fd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
---
# Fact setting
- name: Set default image variables based on deployment type
include_vars: "{{ item }}"
with_first_found:
- "{{ openshift_deployment_type | default(deployment_type) }}.yml"
- "default_images.yml"
- name: Set openshift_web_console facts
set_fact:
openshift_web_console_prefix: "{{ openshift_web_console_prefix | default(__openshift_web_console_prefix) }}"
openshift_web_console_version: "{{ openshift_web_console_version | default(__openshift_web_console_version) }}"
openshift_web_console_image_name: "{{ openshift_web_console_image_name | default(__openshift_web_console_image_name) }}"
# Default the replica count to the number of masters.
openshift_web_console_replica_count: "{{ openshift_web_console_replica_count | default(groups.oo_masters_to_config | length) }}"
- name: Ensure openshift-web-console project exists
oc_project:
name: openshift-web-console
state: present
node_selector:
- ""
- name: Make temp directory for the web console config files
command: mktemp -d /tmp/console-ansible-XXXXXX
register: mktemp
changed_when: False
- name: Copy the web console config template to temp directory
copy:
src: "{{ __console_files_location }}/{{ item }}"
dest: "{{ mktemp.stdout }}/{{ item }}"
with_items:
- "{{ __console_template_file }}"
- "{{ __console_rbac_file }}"
- "{{ __console_config_file }}"
- name: Update the web console config properties
yedit:
src: "{{ mktemp.stdout }}/{{ __console_config_file }}"
edits:
- key: logoutURL
value: "{{ openshift.master.logout_url | default('') }}"
- key: publicURL
# Must have a trailing slash
value: "{{ openshift.master.public_console_url }}/"
- key: masterPublicURL
value: "{{ openshift.master.public_api_url }}"
- slurp:
src: "{{ mktemp.stdout }}/{{ __console_config_file }}"
register: config
- name: Reconcile with the web console RBAC file
shell: >
{{ openshift_client_binary }} process -f "{{ mktemp.stdout }}/{{ __console_rbac_file }}" | {{ openshift_client_binary }} auth reconcile -f -
- name: Apply the web console template file
shell: >
{{ openshift_client_binary }} process -f "{{ mktemp.stdout }}/{{ __console_template_file }}"
--param API_SERVER_CONFIG="{{ config['content'] | b64decode }}"
--param IMAGE="{{ openshift_web_console_prefix }}{{ openshift_web_console_image_name }}:{{ openshift_web_console_version }}"
--param NODE_SELECTOR={{ openshift_web_console_nodeselector | to_json | quote }}
--param REPLICA_COUNT="{{ openshift_web_console_replica_count }}"
| {{ openshift_client_binary }} apply -f -
- name: Verify that the web console is running
command: >
curl -k https://webconsole.openshift-web-console.svc/healthz
args:
# Disables the following warning:
# Consider using get_url or uri module rather than running curl
warn: no
register: console_health
until: console_health.stdout == 'ok'
retries: 120
delay: 1
changed_when: false
- name: Remove temp directory
file:
state: absent
name: "{{ mktemp.stdout }}"
changed_when: False
|