summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Dodson <sdodson@redhat.com>2016-01-07 21:59:46 -0500
committerAndrew Butcher <abutcher@redhat.com>2016-01-13 09:48:21 -0500
commit25e213f79ba5e25bf51d584971064e26d3537b49 (patch)
tree16af07920f4c78ef300536d18506253ea0db4094
parent8774f4995654715629be47a8cd5814bdb1962ec9 (diff)
downloadopenshift-25e213f79ba5e25bf51d584971064e26d3537b49.tar.gz
openshift-25e213f79ba5e25bf51d584971064e26d3537b49.tar.bz2
openshift-25e213f79ba5e25bf51d584971064e26d3537b49.tar.xz
openshift-25e213f79ba5e25bf51d584971064e26d3537b49.zip
Add a Verify API Server handler that waits for the API server to become
available
-rw-r--r--playbooks/common/openshift-node/config.yml11
-rw-r--r--roles/openshift_master/handlers/main.yml9
-rw-r--r--roles/openshift_master/tasks/main.yml2
3 files changed, 21 insertions, 1 deletions
diff --git a/playbooks/common/openshift-node/config.yml b/playbooks/common/openshift-node/config.yml
index 483a7768c..fbaf64300 100644
--- a/playbooks/common/openshift-node/config.yml
+++ b/playbooks/common/openshift-node/config.yml
@@ -215,6 +215,15 @@
| oo_collect('openshift.common.hostname') }}"
openshift_node_vars: "{{ hostvars | oo_select_keys(groups['oo_nodes_to_config']) }}"
pre_tasks:
-
+ # 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
+ when: openshift.common.is_containerized | bool
roles:
- openshift_manage_node
diff --git a/roles/openshift_master/handlers/main.yml b/roles/openshift_master/handlers/main.yml
index e1b95eda4..523ba8ee4 100644
--- a/roles/openshift_master/handlers/main.yml
+++ b/roles/openshift_master/handlers/main.yml
@@ -2,11 +2,20 @@
- name: restart master
service: name={{ openshift.common.service_type }}-master state=restarted
when: (not openshift_master_ha | bool) and (not (master_service_status_changed | default(false) | bool))
+ notify: Verify API Server
- name: restart master api
service: name={{ openshift.common.service_type }}-master-api state=restarted
when: (openshift_master_ha | bool) and (not (master_api_service_status_changed | default(false) | bool)) and openshift.master.cluster_method == 'native'
+ notify: Verify API Server
- name: restart master controllers
service: name={{ openshift.common.service_type }}-master-controllers state=restarted
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
diff --git a/roles/openshift_master/tasks/main.yml b/roles/openshift_master/tasks/main.yml
index fbbcd2a8f..b43e9177e 100644
--- a/roles/openshift_master/tasks/main.yml
+++ b/roles/openshift_master/tasks/main.yml
@@ -269,6 +269,7 @@
service: name={{ openshift.common.service_type }}-master enabled=yes state=started
when: not openshift_master_ha | bool
register: start_result
+ notify: Verify API Server
- name: Stop and disable non HA master when running HA
service: name={{ openshift.common.service_type }}-master enabled=no state=stopped
@@ -282,6 +283,7 @@
service: name={{ openshift.common.service_type }}-master-api enabled=yes state=started
when: openshift_master_ha | bool and openshift.master.cluster_method == 'native'
register: start_result
+ notify: Verify API Server
- set_fact:
master_api_service_status_changed: "{{ start_result | changed }}"