nova: use any_errors_fatal for once-per-cell tasks

We run some nova tasks once per cell, using a condition to match a
single host in the cell. In other similar tasks, we use run_once, which
will fail all hosts if the task fails. Typically these tasks are
critical, and that is desirable. However, with the approach used in
nova-cell to support multiple cells, if a once-per-cell task fails, then
other hosts will continue to execute, which could lead to unexpected
results.

This change adds any_errors_fatal to the plays or blocks that run these
tasks.

Closes-Bug: #1948694

Change-Id: I2a5871ccd4e8198171ef3239ce95f475f3e4b051
This commit is contained in:
Mark Goddard 2021-10-25 16:40:20 +01:00 committed by Radosław Piliszek
parent 1de1e0f36c
commit 832989d0a6
2 changed files with 6 additions and 0 deletions

View File

@ -71,6 +71,8 @@
- nova-cell
- nova-cell-bootstrap
serial: '{{ kolla_serial|default("0") }}'
# Fail all hosts if any of these once-per-cell tasks fails.
any_errors_fatal: true
tasks:
# * Create nova cell DBs & users
# * Create RabbitMQ vhost & user
@ -259,6 +261,8 @@
- nova-online-data-migrations
- nova-cell-online-data-migrations
serial: '{{ kolla_serial|default("0") }}'
# Fail all hosts if any of these once-per-cell tasks fails.
any_errors_fatal: true
tasks:
- import_role:
name: nova-cell

View File

@ -19,3 +19,5 @@
# Delegate to a cell conductor.
delegate_to: "{{ groups[nova_cell_conductor_group][0] }}"
# Fail all hosts if any of these once-per-cell tasks fail.
any_errors_fatal: true