Browse Source

Merge pull request #3625 from jcantrill/bz1430661_update_metrics_url

Merged by openshift-bot
OpenShift Bot 8 years ago
parent
commit
608b6debb2

+ 8 - 0
playbooks/common/openshift-cluster/openshift_hosted.yml

@@ -53,6 +53,8 @@
   pre_tasks:
   - set_fact:
       openshift_logging_kibana_hostname: "{{ openshift_hosted_logging_hostname | default('kibana.' ~ (openshift_master_default_subdomain | default('router.default.svc.cluster.local', true))) }}"
+  - set_fact:
+      openshift_metrics_hawkular_hostname: "{{ g_metrics_hostname | default('hawkular-metrics.' ~ (openshift_master_default_subdomain | default('router.default.svc.cluster.local', true))) }}"
   tasks:
 
   - block:
@@ -60,3 +62,9 @@
         name: openshift_logging
         tasks_from: update_master_config
     when: openshift_hosted_logging_deploy | default(false) | bool
+
+  - block:
+    - include_role:
+        name: openshift_metrics
+        tasks_from: update_master_config
+    when: openshift_hosted_metrics_deploy | default(false) | bool

+ 26 - 0
roles/openshift_metrics/handlers/main.yml

@@ -0,0 +1,26 @@
+---
+- name: restart master
+  systemd: name={{ openshift.common.service_type }}-master state=restarted
+  when: (openshift.master.ha is not defined or not openshift.master.ha | bool) and (not (master_service_status_changed | default(false) | bool))
+  notify: Verify API Server
+
+- name: Verify API Server
+  # Using curl here since the uri module requires python-httplib2 and
+  # wait_for port doesn't provide health information.
+  command: >
+    curl --silent --tlsv1.2
+    {% if openshift.common.version_gte_3_2_or_1_2 | bool %}
+    --cacert {{ openshift.common.config_base }}/master/ca-bundle.crt
+    {% else %}
+    --cacert {{ openshift.common.config_base }}/master/ca.crt
+    {% endif %}
+    {{ openshift.master.api_url }}/healthz/ready
+  args:
+    # Disables the following warning:
+    # Consider using get_url or uri module rather than running curl
+    warn: no
+  register: api_available_output
+  until: api_available_output.stdout == 'ok'
+  retries: 120
+  delay: 1
+  changed_when: false

+ 2 - 0
roles/openshift_metrics/tasks/install_metrics.yaml

@@ -34,6 +34,8 @@
     file_content: "{{ item.content | b64decode | from_yaml }}"
   with_items: "{{ object_defs.results }}"
 
+- include: update_master_config.yaml
+
 - command: >
     {{openshift.common.client_binary}}
     --config={{mktemp.stdout}}/admin.kubeconfig

+ 9 - 0
roles/openshift_metrics/tasks/update_master_config.yaml

@@ -0,0 +1,9 @@
+---
+- name: Adding metrics route information to metricsPublicURL
+  modify_yaml:
+    dest: "{{ openshift.common.config_base }}/master/master-config.yaml"
+    yaml_key: assetConfig.metricsPublicURL
+    yaml_value: "https://{{ openshift_metrics_hawkular_hostname}}/hawkular/metrics"
+  notify: restart master
+  tags:
+    - update_master_config