Update: Run all roles update at once

Previously we ran role by role which is not necessary and not
intended way of production update. In case of proper testing on
preprod customers should run update as fast as possible which
means leveraging ability to run all roles at once and even all
nodes of selected roles at once. With this patch the Pacemaker
enabled roles will still update in serial but the roles will be
done in parallel. In case of 3 controller 3 database 3 messaging
setup it will look roughly like this:

Update of controller[0] database[0] messaging[0]
Update of controller[0] database[1] messaging[1]
Update of controller[1] database[2] messaging[2]
Update of controller[2]

This is due to not blocking between roles and each role taking
different amount of time to apply the update. At any moment the
pacemaker quorum is not broken.

Change-Id: Ib119210139886382726bc0ccddfdb4f7f6803015
This commit is contained in:
Lukas Bezdicka 2019-11-27 12:17:47 +01:00
parent 2044957694
commit a2b433133d

View File

@ -3,6 +3,8 @@
import_tasks: ../common/l3_agent_connectivity_check_start_script.yml import_tasks: ../common/l3_agent_connectivity_check_start_script.yml
- name: run overcloud minor update in each of the roles/hostgroups - name: run overcloud minor update in each of the roles/hostgroups
async: 25200
poll: 0
shell: | shell: |
set -o pipefail set -o pipefail
bash {{ overcloud_update_run_script_base }}-{{ item }}.sh 2>&1 {{ timestamper_cmd }} > \ bash {{ overcloud_update_run_script_base }}-{{ item }}.sh 2>&1 {{ timestamper_cmd }} > \
@ -11,10 +13,15 @@
register: overcloud_update_nodes register: overcloud_update_nodes
ignore_errors: true ignore_errors: true
- name: was the overcloud minor update successful. - name: was the overcloud minor update successful?
fail: msg="Overcloud minor update execution step failed..." async_status:
jid: "{{ async_result_item.ansible_job_id }}"
loop: "{{ overcloud_update_nodes.results }}" loop: "{{ overcloud_update_nodes.results }}"
when: item.rc != 0 loop_control:
loop_var: "async_result_item"
register: async_poll_results
until: async_poll_results.finished
retries: 25200
- name: import tasks from l3_agent_connectivity_check_stop_script - name: import tasks from l3_agent_connectivity_check_stop_script
import_tasks: ../common/l3_agent_connectivity_check_stop_script.yml import_tasks: ../common/l3_agent_connectivity_check_stop_script.yml