summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--playbooks/common/openshift-node/config.yml20
-rw-r--r--roles/openshift_master/handlers/main.yml14
2 files changed, 23 insertions, 11 deletions
diff --git a/playbooks/common/openshift-node/config.yml b/playbooks/common/openshift-node/config.yml
index fbaf64300..336cbed5e 100644
--- a/playbooks/common/openshift-node/config.yml
+++ b/playbooks/common/openshift-node/config.yml
@@ -218,12 +218,20 @@
# Necessary because when you're on a node that's also a master the master will be
# restarted after the node restarts docker and it will take up to 60 seconds for
# systemd to start the master again
- - name: Wait for master to become available before proceeding
- wait_for:
- host: "{{ hostvars[groups.oo_first_master.0].openshift.common.ip }}"
- port: "{{ hostvars[groups.oo_first_master.0].openshift.master.api_port }}"
- state: started
- timeout: 180
+ - name: Wait for master API to become available before proceeding
+ # Using curl here since the uri module requires python-httplib2 and
+ # wait_for port doesn't provide health information.
+ command: >
+ curl -k --head --silent {{ openshift.master.api_url }}
+ register: api_available_output
+ until: api_available_output.stdout.find("200 OK") != -1
+ retries: 120
+ delay: 1
+ changed_when: false
when: openshift.common.is_containerized | bool
+ - fail:
+ msg: >
+ Unable to contact master API at {{ openshift.master.api_url }}
+ when: openshift.common.is_containerized | bool and api_available_output.stdout.find("200 OK") == -1
roles:
- openshift_manage_node
diff --git a/roles/openshift_master/handlers/main.yml b/roles/openshift_master/handlers/main.yml
index 523ba8ee4..6b9992eea 100644
--- a/roles/openshift_master/handlers/main.yml
+++ b/roles/openshift_master/handlers/main.yml
@@ -14,8 +14,12 @@
when: (openshift_master_ha | bool) and (not (master_controllers_service_status_changed | default(false) | bool)) and openshift.master.cluster_method == 'native'
- name: Verify API Server
- wait_for:
- host: "{{ openshift.common.ip }}"
- port: "{{ openshift.master.api_port }}"
- state: started
- timeout: 180
+ # Using curl here since the uri module requires python-httplib2 and
+ # wait_for port doesn't provide health information.
+ command: >
+ curl -k --head --silent {{ openshift.master.api_url }}
+ register: api_available_output
+ until: api_available_output.stdout.find("200 OK") != -1
+ retries: 120
+ delay: 1
+ changed_when: false