From 02e6124c28620240ec3c9af4834fe398572e334f Mon Sep 17 00:00:00 2001 From: Christian Schwede Date: Thu, 3 Sep 2020 11:26:45 +0200 Subject: [PATCH] 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 13cc41a23f376c61af8fe78df32abf3781e107b0) --- docker/services/swift-ringbuilder.yaml | 2 +- .../notes/swift-fix-ring-sync-7bf3ddbb1ea1e342.yaml | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/swift-fix-ring-sync-7bf3ddbb1ea1e342.yaml diff --git a/docker/services/swift-ringbuilder.yaml b/docker/services/swift-ringbuilder.yaml index 3968bd51ee..d986df2de6 100644 --- a/docker/services/swift-ringbuilder.yaml +++ b/docker/services/swift-ringbuilder.yaml @@ -90,7 +90,7 @@ outputs: config_settings: map_merge: - {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_groups: {get_attr: [SwiftRingbuilderBase, role_data, logging_groups]} service_config_settings: {get_attr: [SwiftRingbuilderBase, role_data, service_config_settings]} diff --git a/releasenotes/notes/swift-fix-ring-sync-7bf3ddbb1ea1e342.yaml b/releasenotes/notes/swift-fix-ring-sync-7bf3ddbb1ea1e342.yaml new file mode 100644 index 0000000000..32f08d8c16 --- /dev/null +++ b/releasenotes/notes/swift-fix-ring-sync-7bf3ddbb1ea1e342.yaml @@ -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.