summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrenton Leanhardt <bleanhar@redhat.com>2016-01-14 13:54:20 -0500
committerBrenton Leanhardt <bleanhar@redhat.com>2016-01-14 13:54:20 -0500
commitea0115c1078e60656857ce5d4a48e37335ce6037 (patch)
tree115c30641f7b58d98020bebe4abb41f6e8ffa66a
parentf9043f8bb7bf44eff48ea12dd6a4e6765d476056 (diff)
parente99eda725ba65eeb0d1c13ee1bd3e8737b9d3602 (diff)
downloadopenshift-ea0115c1078e60656857ce5d4a48e37335ce6037.tar.gz
openshift-ea0115c1078e60656857ce5d4a48e37335ce6037.tar.bz2
openshift-ea0115c1078e60656857ce5d4a48e37335ce6037.tar.xz
openshift-ea0115c1078e60656857ce5d4a48e37335ce6037.zip
Merge pull request #1185 from abutcher/node-wait-for-api
Check API prior to starting node
-rw-r--r--playbooks/common/openshift-node/config.yml4
-rw-r--r--roles/openshift_node/tasks/main.yml15
2 files changed, 15 insertions, 4 deletions
diff --git a/playbooks/common/openshift-node/config.yml b/playbooks/common/openshift-node/config.yml
index 336cbed5e..8d0c4945e 100644
--- a/playbooks/common/openshift-node/config.yml
+++ b/playbooks/common/openshift-node/config.yml
@@ -229,9 +229,5 @@
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_node/tasks/main.yml b/roles/openshift_node/tasks/main.yml
index 0828d8e2c..9035248f9 100644
--- a/roles/openshift_node/tasks/main.yml
+++ b/roles/openshift_node/tasks/main.yml
@@ -103,6 +103,21 @@
- name: Additional storage plugin configuration
include: storage_plugins/main.yml
+# 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 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_node_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
+
- name: Start and enable node
service: name={{ openshift.common.service_type }}-node enabled=yes state=started
register: start_result