---
- include: pre_upgrade.yml
  tags: etcd-pre-upgrade

- include: check_certs.yml
  when: cert_management == "script"
  tags: [etcd-secrets, facts]

- include: gen_certs_script.yml
  when: cert_management == "script"
  tags: etcd-secrets

- include: sync_etcd_master_certs.yml
  when: cert_management == "vault" and inventory_hostname in groups.etcd
  tags: etcd-secrets

- include: sync_etcd_node_certs.yml
  when: cert_management == "vault" and inventory_hostname in etcd_node_cert_hosts 
  tags: etcd-secrets

- include: gen_certs_vault.yml
  when: cert_management == "vault" and (etcd_master_certs_needed|d() or etcd_node_certs_needed|d())
  tags: etcd-secrets

- include: "install_{{ etcd_deployment_type }}.yml"
  when: is_etcd_master
  tags: upgrade

- include: set_cluster_health.yml
  when: is_etcd_master

- include: configure.yml
  when: is_etcd_master

- include: refresh_config.yml
  when: is_etcd_master

- name: Restart etcd if binary or certs changed
  command: /bin/true
  notify: restart etcd
  when: etcd_deployment_type == "host" and etcd_copy.stdout_lines and is_etcd_master
    or etcd_secret_changed|default(false)

# reload-systemd
- meta: flush_handlers

- name: Ensure etcd is running
  service:
    name: etcd
    state: started
    enabled: yes
  when: is_etcd_master

# After etcd cluster is assembled, make sure that
# initial state of the cluster is in `existing`
# state insted of `new`.
- include: set_cluster_health.yml
  when: is_etcd_master

- include: refresh_config.yml
  when: is_etcd_master