---
- name: Get info about Nomad cluster
  hosts: nomad_servers
  any_errors_fatal: true
  vars:
    nomad_version: "{{ lookup('env','NOMAD_VERSION') }}"
    env_name: "{{ lookup('env','ENV_NAME') }}"
    domain_name: "{{ lookup('env','DOMAIN_NAME') }}"
    nomad_token: "{{ lookup('env','NOMAD_TOKEN') }}"
  environment:
    NOMAD_ADDR: "https://{{ ansible_hostname }}.p81zero.{{ env_name }}.{{ domain_name }}:4646"
    NOMAD_SKIP_VERIFY: true
    NOMAD_TOKEN: "{{ nomad_token }}"
  tasks:
    - name: Create dynamic inventory from cluster peers
      include_role:
        name: nomad-op
        tasks_from: "create_inventory_from_peers.yaml"

# run on followers, one at a time
- name: Upgrade cluster followers
  hosts: followers
  any_errors_fatal: true
  serial: 1
  vars:
    nomad_version: "{{ lookup('env','NOMAD_VERSION') }}"
    env_name: "{{ lookup('env','ENV_NAME') }}"
    domain_name: "{{ lookup('env','DOMAIN_NAME') }}"
    nomad_token: "{{ lookup('env','NOMAD_TOKEN') }}"
  tasks:
    - name: "Upgrade peer follower {{ inventory_hostname }}"
      include_role:
        name: nomad-op
        tasks_from: "upgrade_peer.yaml"
    
    - name: Check cluster status
      include_role:
        name: nomad-op
        tasks_from: "check_cluster_status.yaml"

# run on current active node
- name: Upgrade cluster leaders
  hosts: leaders
  vars:
    nomad_version: "{{ lookup('env','NOMAD_VERSION') }}"
    env_name: "{{ lookup('env','ENV_NAME') }}"
    domain_name: "{{ lookup('env','DOMAIN_NAME') }}"
    nomad_token: "{{ lookup('env','NOMAD_TOKEN') }}"
  tasks:
    - name: "Upgrade leader {{ inventory_hostname }}"
      include_role:
        name: nomad-op
        tasks_from: "upgrade_peer.yaml"
    
    - name: Check cluster status
      include_role:
        name: nomad-op
        tasks_from: "check_cluster_status.yaml"