You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.7 KiB

  1. ---
  2. - name: Backup etcd
  3. import_tasks: backup.yml
  4. - name: Restart etcd
  5. systemd_service:
  6. name: etcd
  7. state: restarted
  8. daemon_reload: true
  9. when: ('etcd' in group_names)
  10. throttle: "{{ groups['etcd'] | length // 2 }}"
  11. # Etcd cluster MUST have an odd number of members
  12. # Truncated integer division by 2 will always return (majority - 1) which
  13. # means the cluster will keep quorum and stay available
  14. - name: Restart etcd-events
  15. systemd_service:
  16. name: etcd-events
  17. state: restarted
  18. daemon_reload: true
  19. # TODO: this seems odd. etcd-events should be a different group possibly ?
  20. when: ('etcd' in group_names)
  21. throttle: "{{ groups['etcd'] | length // 2 }}"
  22. - name: Wait for etcd up
  23. uri:
  24. url: "https://{% if 'etcd' in group_names %}{{ etcd_address }}{% else %}127.0.0.1{% endif %}:2379/health"
  25. validate_certs: false
  26. client_cert: "{{ etcd_cert_dir }}/member-{{ inventory_hostname }}.pem"
  27. client_key: "{{ etcd_cert_dir }}/member-{{ inventory_hostname }}-key.pem"
  28. register: result
  29. until: result.status is defined and result.status == 200
  30. retries: 60
  31. delay: 1
  32. listen: Restart etcd
  33. - name: Cleanup etcd backups
  34. import_tasks: backup_cleanup.yml
  35. - name: Wait for etcd-events up
  36. uri:
  37. url: "https://{% if 'etcd' in group_names %}{{ etcd_address }}{% else %}127.0.0.1{% endif %}:2383/health"
  38. validate_certs: false
  39. client_cert: "{{ etcd_cert_dir }}/member-{{ inventory_hostname }}.pem"
  40. client_key: "{{ etcd_cert_dir }}/member-{{ inventory_hostname }}-key.pem"
  41. register: result
  42. until: result.status is defined and result.status == 200
  43. retries: 60
  44. delay: 1
  45. listen: Restart etcd-events
  46. - name: Set etcd_secret_changed
  47. set_fact:
  48. etcd_secret_changed: true