--- # 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 --silent --tlsv1.2 --cacert {{ openshift.common.config_base }}/master/ca-bundle.crt {{ openshift_node_master_api_url }}/healthz/ready args: # Disables the following warning: # Consider using get_url or uri module rather than running curl warn: no register: api_available_output until: api_available_output.stdout == 'ok' retries: 120 delay: 1 changed_when: false when: openshift.common.is_containerized | bool delegate_to: "{{ openshift_master_host }}" run_once: true - name: Wait for Node Registration oc_obj: name: "{{ openshift.node.nodename }}" kind: node state: list register: get_node until: "'metadata' in get_node.results.results[0]" retries: 50 delay: 5 when: "'nodename' in openshift.node" delegate_to: "{{ openshift_master_host }}" - name: Set node schedulability oc_adm_manage_node: node: "{{ openshift.node.nodename | lower }}" schedulable: "{{ 'true' if l_openshift_manage_schedulable | bool else 'false' }}" retries: 10 delay: 5 register: node_schedulable until: node_schedulable is succeeded when: "'nodename' in openshift.node" delegate_to: "{{ openshift_master_host }}" - name: Label nodes oc_label: name: "{{ openshift.node.nodename }}" kind: node state: add labels: "{{ openshift_node_labels | oo_dict_to_list_of_dict }}" namespace: default when: - "'nodename' in openshift.node" - openshift_node_labels | default({}) != {} delegate_to: "{{ openshift_master_host }}"