diff options
author | Brenton Leanhardt <bleanhar@redhat.com> | 2016-01-14 13:54:20 -0500 |
---|---|---|
committer | Brenton Leanhardt <bleanhar@redhat.com> | 2016-01-14 13:54:20 -0500 |
commit | ea0115c1078e60656857ce5d4a48e37335ce6037 (patch) | |
tree | 115c30641f7b58d98020bebe4abb41f6e8ffa66a | |
parent | f9043f8bb7bf44eff48ea12dd6a4e6765d476056 (diff) | |
parent | e99eda725ba65eeb0d1c13ee1bd3e8737b9d3602 (diff) | |
download | openshift-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.yml | 4 | ||||
-rw-r--r-- | roles/openshift_node/tasks/main.yml | 15 |
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 |