diff --git a/ansible/roles/dashd/tasks/main.yml b/ansible/roles/dashd/tasks/main.yml index 27f73116..77d0765f 100644 --- a/ansible/roles/dashd/tasks/main.yml +++ b/ansible/roles/dashd/tasks/main.yml @@ -112,6 +112,19 @@ pull: true timeout: 30 + +- name: Determine node-specific start day + set_fact: + node_start_day: "{{ (play_hosts.index(inventory_hostname) % nightly_masternodes) + 1 }}" + when: 'inventory_hostname in groups[nightly_masternodes]' + +- name: Schedule restart for hosts running nightly core + ansible.builtin.cron: + name: "Update nightly core container" + day: "{{ node_start_day }}/{{ groups['nightly_masternodes'] | length }}" + job: "cd {{ dashd_compose_path }} && docker-compose pull && docker compose up -d" + when: 'inventory_hostname in groups[nightly_masternodes]' + - name: Wait for rpc to be available ansible.builtin.command: dash-cli getgovernanceinfo register: task_result diff --git a/ansible/roles/dashd/templates/docker-compose.yml.j2 b/ansible/roles/dashd/templates/docker-compose.yml.j2 index 0e2bffec..a9dd3411 100644 --- a/ansible/roles/dashd/templates/docker-compose.yml.j2 +++ b/ansible/roles/dashd/templates/docker-compose.yml.j2 @@ -2,7 +2,7 @@ version: '3' services: dashcore: - image: {{ dashd_image }} + image: "{{ dashd_nightly_image if 'nightly_masternodes' in group_names else dashd_image }}" user: {{ dash_user.uid }}:{{ dash_user.group }} container_name: dashd restart: always diff --git a/ansible/roles/dashmate/tasks/main.yml b/ansible/roles/dashmate/tasks/main.yml index 351d4e85..aaae7947 100644 --- a/ansible/roles/dashmate/tasks/main.yml +++ b/ansible/roles/dashmate/tasks/main.yml @@ -283,6 +283,19 @@ - not dashmate_restart_all.changed changed_when: dashmate_force_start.rc == 0 +- name: Determine node-specific start day for hosts running nightly core + set_fact: + node_start_day: "{{ (play_hosts.index(inventory_hostname) % nightly_masternodes) + 1 }}" + when: 'inventory_hostname in groups[nightly_masternodes]' + +- name: Schedule restart for hosts running nightly core + ansible.builtin.cron: + name: "Update nightly core container" + day: "{{ node_start_day }}/{{ groups['nightly_masternodes'] | length }}" + job: "cd {{ dashmate_cwd }} && {{ dashmate_cmd }} update && {{ dashmate_cmd }} start --force --verbose" + user: "{{ dashmate_user }}" + when: 'inventory_hostname in groups[nightly_masternodes]' + - name: Disable dashmate helper build ansible.builtin.command: "{{ dashmate_cmd }} config set dashmate.helper.docker.build.enabled false" become: true diff --git a/ansible/roles/dashmate/templates/dashmate.json.j2 b/ansible/roles/dashmate/templates/dashmate.json.j2 index abbeda05..67f83d2a 100644 --- a/ansible/roles/dashmate/templates/dashmate.json.j2 +++ b/ansible/roles/dashmate/templates/dashmate.json.j2 @@ -35,7 +35,7 @@ "port": 3001 }, "docker": { - "image": "{{ dashd_image }}", + "image": "{{ dashd_nightly_image if 'nightly_masternodes' in group_names else dashd_image }}", "commandArgs": [] }, "p2p": {