scaleup.yml 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. ---
  2. - name: Gather facts
  3. hosts: oo_etcd_to_config:oo_new_etcd_to_config
  4. roles:
  5. - openshift_etcd_facts
  6. post_tasks:
  7. - set_fact:
  8. etcd_hostname: "{{ etcd_hostname }}"
  9. etcd_ip: "{{ etcd_ip }}"
  10. - name: Configure etcd
  11. hosts: oo_new_etcd_to_config
  12. serial: 1
  13. any_errors_fatal: true
  14. pre_tasks:
  15. - name: Add new etcd members to cluster
  16. command: >
  17. /usr/bin/etcdctl --cert-file {{ etcd_peer_cert_file }}
  18. --key-file {{ etcd_peer_key_file }}
  19. --ca-file {{ etcd_peer_ca_file }}
  20. -C {{ etcd_peer_url_scheme }}://{{ hostvars[etcd_ca_host].etcd_ip }}:{{ etcd_client_port }}
  21. member add {{ etcd_hostname }} {{ etcd_peer_url_scheme }}://{{ etcd_ip }}:{{ etcd_peer_port }}
  22. delegate_to: "{{ etcd_ca_host }}"
  23. failed_when:
  24. - etcd_add_check.rc == 1
  25. - ("peerURL exists" not in etcd_add_check.stderr)
  26. register: etcd_add_check
  27. retries: 3
  28. delay: 10
  29. until: etcd_add_check.rc == 0
  30. - import_role:
  31. name: etcd
  32. tasks_from: server_certificates.yml
  33. vars:
  34. etcd_peers: "{{ groups.oo_new_etcd_to_config | default([], true) }}"
  35. etcd_certificates_etcd_hosts: "{{ groups.oo_new_etcd_to_config | default([], true) }}"
  36. roles:
  37. - role: os_firewall
  38. when: etcd_add_check.rc == 0
  39. - role: openshift_etcd
  40. when: etcd_add_check.rc == 0
  41. etcd_peers: "{{ groups.oo_etcd_to_config | union(groups.oo_new_etcd_to_config)| default([], true) }}"
  42. etcd_certificates_etcd_hosts: "{{ groups.oo_etcd_to_config | default([], true) }}"
  43. etcd_initial_cluster_state: "existing"
  44. etcd_initial_cluster: "{{ etcd_add_check.stdout_lines[3] | regex_replace('ETCD_INITIAL_CLUSTER=','') | regex_replace('\"','') }}"
  45. etcd_ca_setup: False
  46. - role: nickhammond.logrotate
  47. when: etcd_add_check.rc == 0
  48. post_tasks:
  49. - name: Verify cluster is stable
  50. command: >
  51. /usr/bin/etcdctl --cert-file {{ etcd_peer_cert_file }}
  52. --key-file {{ etcd_peer_key_file }}
  53. --ca-file {{ etcd_peer_ca_file }}
  54. -C {{ etcd_peer_url_scheme }}://{{ hostvars[etcd_ca_host].etcd_hostname }}:{{ etcd_client_port }}
  55. cluster-health
  56. register: scaleup_health
  57. retries: 3
  58. delay: 30
  59. until: scaleup_health.rc == 0
  60. - name: Update master etcd client urls
  61. hosts: oo_masters_to_config
  62. serial: 1
  63. vars:
  64. openshift_master_etcd_hosts: "{{ hostvars
  65. | lib_utils_oo_select_keys(groups['oo_etcd_to_config'] | union(groups['oo_new_etcd_to_config'] | default([]) ))
  66. | lib_utils_oo_collect('openshift.common.hostname')
  67. | default(none, true) }}"
  68. openshift_master_etcd_port: "{{ (etcd_client_port | default('2379')) if (groups.oo_etcd_to_config is defined and groups.oo_etcd_to_config) else none }}"
  69. roles:
  70. - role: openshift_master_facts
  71. post_tasks:
  72. - import_role:
  73. name: openshift_master
  74. tasks_from: update_etcd_client_urls.yml