Browse Source

Add wait in between api and controllers start for native ha.

Andrew Butcher 9 years ago
parent
commit
2e3e0ebe0d

+ 1 - 0
playbooks/common/openshift-master/config.yml

@@ -313,6 +313,7 @@
 
 - name: Configure master instances
   hosts: oo_masters_to_config
+  any_errors_fatal: true
   serial: 1
   vars:
     sync_tmpdir: "{{ hostvars.localhost.g_master_mktemp.stdout }}"

+ 3 - 6
roles/openshift_master/tasks/main.yml

@@ -283,12 +283,13 @@
   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 }}"
   when: openshift_master_ha | bool and openshift.master.cluster_method == 'native'
 
+# A separate wait is required here for native HA since notifies will
+# be resolved after all tasks in the role.
 - name: Wait for API to become available
   # Using curl here since the uri module requires python-httplib2 and
   # wait_for port doesn't provide health information.
@@ -299,11 +300,7 @@
   retries: 120
   delay: 1
   changed_when: false
-
-- fail:
-    msg: >
-      Unable to contact master API at {{ openshift.master.api_url }}
-  when: api_available_output.stdout.find("200 OK") == -1
+  when: openshift_master_ha | bool and openshift.master.cluster_method == 'native' and master_api_service_status_changed | bool
 
 - name: Start and enable master controller
   service: name={{ openshift.common.service_type }}-master-controllers enabled=yes state=started