distribute_bootstrap.yml 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. ---
  2. - name: Gather node information
  3. openshift_facts:
  4. role: node
  5. local_facts:
  6. bootstrapped: true
  7. - name: Copy master bootstrap config locally
  8. slurp:
  9. src: "/etc/origin/master/bootstrap.kubeconfig"
  10. register: bootstrap_credentials
  11. delegate_to: "{{ groups.oo_first_master.0 }}"
  12. run_once: true
  13. no_log: true
  14. - name: Distribute bootstrap kubeconfig if one does not exist
  15. copy:
  16. content: "{{ bootstrap_credentials.content | b64decode }}"
  17. dest: "/etc/origin/node/bootstrap.kubeconfig"
  18. mode: 0700
  19. owner: root
  20. group: root
  21. force: no
  22. no_log: true
  23. - name: Start and enable node for bootstrapping
  24. systemd:
  25. name: "{{ openshift_service_type }}-node"
  26. state: restarted
  27. enabled: yes
  28. no_block: yes
  29. register: node_start
  30. - when: node_start is failed
  31. block:
  32. - name: Get node logs
  33. command: journalctl --no-pager -n 300 -u {{ openshift_service_type }}-node
  34. register: logs_node
  35. ignore_errors: true
  36. - debug:
  37. msg: "{{ logs_node.stdout_lines }}"
  38. - fail:
  39. msg: Node start failed.
  40. # The restart above triggers previously approved nodes to go NotReady
  41. # We should wait for previously approved nodes to go Ready again
  42. - name: Wait for node to be ready
  43. oc_obj:
  44. state: list
  45. kind: node
  46. name: "{{ openshift.node.nodename | lower }}"
  47. register: node_output
  48. delegate_to: "{{ groups.oo_first_master.0 }}"
  49. when: inventory_hostname in groups.oo_nodes_to_config
  50. until:
  51. - node_output.results is defined
  52. - node_output.results.returncode is defined
  53. - node_output.results.results is defined
  54. - node_output.results.returncode == 0
  55. - node_output.results.results[0].status is defined
  56. - node_output.results.results[0].status.conditions | selectattr('type', 'match', '^Ready$') | map(attribute='status') | join | bool == True
  57. # Give the node three minutes to come back online.
  58. retries: 36
  59. delay: 5
  60. failed_when: False