Skip to content

Commit

Permalink
Update console config for API changes
Browse files Browse the repository at this point in the history
  • Loading branch information
spadgett committed Jan 15, 2018
1 parent 8de2b99 commit b8a9261
Show file tree
Hide file tree
Showing 5 changed files with 85 additions and 23 deletions.
41 changes: 31 additions & 10 deletions files/origin-components/console-config.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,34 @@
kind: WebConsoleConfiguration
apiVersion: webconsole.config.openshift.io/v1
kind: WebConsoleConfiguration
clusterInfo:
consolePublicURL: https://127.0.0.1:8443/console/
loggingPublicURL: ""
logoutPublicURL: ""
masterPublicURL: https://127.0.0.1:8443
metricsPublicURL: ""
# TODO: The new extensions properties cannot be set until
# origin-web-console-server has been updated with the API changes since
# `extensions` in the old asset config was an array.
#extensions:
# scriptURLs: []
# stylesheetURLs: []
# properties: null
features:
inactivityTimeoutMinutes: 0
servingInfo:
bindAddress: 0.0.0.0:8443
bindNetwork: tcp4
certFile: /var/serving-cert/tls.crt
clientCA: ""
keyFile: /var/serving-cert/tls.key
maxRequestsInFlight: 0
namedCertificates: null
requestTimeoutSeconds: 0

# START deprecated properties
# These properties have been renamed and will be removed from the install
# in a future pull. Keep both the old and new properties for now so that
# the install is not broken while the origin-web-console image is updated.
extensionDevelopment: false
extensionProperties: null
extensionScripts: null
Expand All @@ -10,12 +39,4 @@ logoutURL: ""
masterPublicURL: https://127.0.0.1:8443
metricsPublicURL: ""
publicURL: https://127.0.0.1:8443/console/
servingInfo:
bindAddress: 0.0.0.0:8443
bindNetwork: tcp4
certFile: /var/serving-cert/tls.crt
clientCA: ""
keyFile: /var/serving-cert/tls.key
maxRequestsInFlight: 0
namedCertificates: null
requestTimeoutSeconds: 0
# END deprecated properties
9 changes: 7 additions & 2 deletions roles/openshift_logging/tasks/install_logging.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -321,9 +321,14 @@
- name: Add Kibana route information to web console asset config
include_role:
name: openshift_web_console
tasks_from: update_asset_config.yml
tasks_from: update_console_config.yml
vars:
asset_config_edits:
console_config_edits:
- key: clusterInfo#loggingPublicURL
value: "https://{{ openshift_logging_kibana_hostname }}"
# Continue to set the old deprecated property until the
# origin-web-console image is updated for the new name.
# This will be removed in a future pull.
- key: loggingPublicURL
value: "https://{{ openshift_logging_kibana_hostname }}"
when: openshift_web_console_install | default(true) | bool
9 changes: 7 additions & 2 deletions roles/openshift_metrics/tasks/install_metrics.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,14 @@
- name: Add metrics route information to web console asset config
include_role:
name: openshift_web_console
tasks_from: update_asset_config.yml
tasks_from: update_console_config.yml
vars:
asset_config_edits:
console_config_edits:
- key: clusterInfo#metricsPublicURL
value: "https://{{ openshift_metrics_hawkular_hostname}}/hawkular/metrics"
# Continue to set the old deprecated property until the
# origin-web-console image is updated for the new name.
# This will be removed in a future pull.
- key: metricsPublicURL
value: "https://{{ openshift_metrics_hawkular_hostname}}/hawkular/metrics"
when: openshift_web_console_install | default(true) | bool
Expand Down
30 changes: 29 additions & 1 deletion roles/openshift_web_console/tasks/install.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,41 @@
yedit:
src: "{{ mktemp.stdout }}/{{ __console_config_file }}"
edits:
- key: logoutURL
- key: clusterInfo#consolePublicURL
# Must have a trailing slash
value: "{{ openshift.master.public_console_url }}/"
- key: clusterInfo#masterPublicURL
value: "{{ openshift.master.public_api_url }}"
- key: clusterInfo#logoutPublicURL
value: "{{ openshift.master.logout_url | default('') }}"
- key: features#inactivityTimeoutMinutes
value: "{{ openshift_web_console_inactivity_timeout_minutes | default(0) }}"

# TODO: The new extensions properties cannot be set until
# origin-web-console-server has been updated with the API changes since
# `extensions` in the old asset config was an array.

# - key: extensions#scriptURLs
# value: "{{ openshift_web_console_extension_script_urls | default([]) }}"
# - key: extensions#stylesheetURLs
# value: "{{ openshift_web_console_extension_stylesheet_urls | default([]) }}"
# - key: extensions#properties
# value: "{{ openshift_web_console_extension_properties | default({}) }}"

# START deprecated properties
# These properties have been renamed and will be removed from the install
# in a future pull. Keep both the old and new properties for now so that
# the install is not broken while the origin-web-console image is updated.
- key: publicURL
# Must have a trailing slash
value: "{{ openshift.master.public_console_url }}/"
- key: logoutURL
value: "{{ openshift.master.logout_url | default('') }}"
- key: masterPublicURL
value: "{{ openshift.master.public_api_url }}"
# END deprecated properties
separator: '#'
state: present

- slurp:
src: "{{ mktemp.stdout }}/{{ __console_config_file }}"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
# 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
# variable `console_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.
# properties passed are updated. The separator for nested properties is `#`.
#
# Note that this triggers a redeployment on the console and a brief downtime
# since it uses a `Recreate` strategy.
Expand All @@ -12,10 +12,10 @@
#
# - include_role:
# name: openshift_web_console
# tasks_from: update_asset_config.yml
# tasks_from: update_console_config.yml
# vars:
# asset_config_edits:
# - key: loggingPublicURL
# console_config_edits:
# - key: clusterInfo#loggingPublicURL
# value: "https://{{ openshift_logging_kibana_hostname }}"
# when: openshift_web_console_install | default(true) | bool

Expand All @@ -31,15 +31,17 @@
register: mktemp
changed_when: False

- name: Copy asset config to temp file
- name: Copy web console 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
- name: Change web console config properties
yedit:
src: "{{ mktemp.stdout }}/webconsole-config.yaml"
edits: "{{asset_config_edits}}"
edits: "{{console_config_edits}}"
separator: '#'
state: present

- name: Update web console config map
oc_configmap:
Expand All @@ -55,6 +57,7 @@
name: "{{ mktemp.stdout }}"
changed_when: False

# TODO: Only rollout if config has changed.
# 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.
Expand Down

0 comments on commit b8a9261

Please sign in to comment.