Fix Swift ring file synchronization issue

Swift ring files are synchronized by up- and downloading them to the
undercloud, making sure every node on the overcloud has the same copy to
start with.

One (optional) step in the process is to ensure rings are in sync before
uploading them eventually. swift-recon is used to query all Swift object
storage nodes, get the md5sum of the ring files and compare them with
the local ring file md5sum.

However, in containerized deployments this will fail, because Swift
containers are not immediately restarted after rebalancing. The object
server will return the md5sum of the previous ring version, which does
not match with the rebalanced local file. TripleO is intended to skip
this check by setting skip_consistency_check to false.

However, the parameter was never set to false, and this patch fixes it.

Running an overcloud update immediately after an initial deployment was
not affected by this. Same for multiple overcloud updates - subsequent
updates did fix this issue automatically. In the first case the rings
were not rebalanced due to min_part_hours not passed, in the latter case
they were synchronized on the subsequent update.

Closes-Bug: 1892674
Change-Id: Ib56f59b7d2a981196eab334108d42ca4390c0566
(cherry picked from commit 13cc41a23f)
This commit is contained in:
Christian Schwede 2020-09-03 11:26:45 +02:00
parent 5f1640b352
commit 02e6124c28
2 changed files with 7 additions and 1 deletions

View File

@ -90,7 +90,7 @@ outputs:
config_settings: config_settings:
map_merge: map_merge:
- {get_attr: [SwiftRingbuilderBase, role_data, config_settings]} - {get_attr: [SwiftRingbuilderBase, role_data, config_settings]}
- tripleo::profile::base::swift::ringbuilder:skip_consistency_check: true - tripleo::profile::base::swift::ringbuilder::skip_consistency_check: true
logging_source: {get_attr: [SwiftRingbuilderBase, role_data, logging_source]} logging_source: {get_attr: [SwiftRingbuilderBase, role_data, logging_source]}
logging_groups: {get_attr: [SwiftRingbuilderBase, role_data, logging_groups]} logging_groups: {get_attr: [SwiftRingbuilderBase, role_data, logging_groups]}
service_config_settings: {get_attr: [SwiftRingbuilderBase, role_data, service_config_settings]} service_config_settings: {get_attr: [SwiftRingbuilderBase, role_data, service_config_settings]}

View File

@ -0,0 +1,6 @@
---
fixes:
- |
Fix Swift ring synchronization to ensure every node on the overcloud has
the same copy to start with. This is especially required when replacing
nodes or using manually modifed rings.