Skip to content

Commit c74aad8

Browse files
Alex-WelshMoteHue
andauthored
Add upgrade-prerequisites script for CI (#1308)
* Add upgrade-prerequisites script for CI * Apply suggestions from code review Co-authored-by: Matt Crees <[email protected]> --------- Co-authored-by: Matt Crees <[email protected]>
1 parent fb25947 commit c74aad8

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

tools/upgrade-prerequisites.sh

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#! /usr/bin/bash
2+
3+
# This script is intended to be run in CI to test upgrades.
4+
# It executes any preparation steps that must be perfomed before upgrading
5+
# OpenStack services.
6+
7+
# NOTE(upgrade): This script is unique to each release. It may not be required
8+
# for some releases.
9+
10+
set -ex
11+
12+
function prechecks() {
13+
if [[ ! $KAYOBE_CONFIG_PATH ]]; then
14+
echo "Environment variable \$KAYOBE_CONFIG_PATH is not defined"
15+
echo "Ensure your environment is set up to run kayobe commands"
16+
exit 2
17+
fi
18+
}
19+
20+
function rabbit_upgrade() {
21+
# Ensure RabbitMQ is upgraded to 3.13
22+
if kayobe overcloud host command run -l controllers -b --command "docker exec rabbitmq rabbitmqctl --version | grep -F 3.11." --show-output; then
23+
kayobe kolla ansible run "rabbitmq-upgrade 3.12"
24+
fi
25+
sleep 200
26+
if kayobe overcloud host command run -l controllers -b --command "docker exec rabbitmq rabbitmqctl --version | grep -F 3.12." --show-output; then
27+
kayobe kolla ansible run "rabbitmq-upgrade 3.13"
28+
fi
29+
}
30+
31+
function rabbit_migration() {
32+
if ! kayobe overcloud host command run -l controllers -b --command "docker exec $RABBITMQ_CONTAINER_NAME rabbitmqctl list_queues type | grep quorum"; then
33+
# Set quorum flag, execute RabbitMQ queue migration script, unset quorum flag (to avoid git conflicts)
34+
sed -i -e 's/om_enable_rabbitmq_high_availability: true/om_enable_rabbitmq_high_availability: false/' \
35+
-e 's/om_enable_rabbitmq_quorum_queues: false/om_enable_rabbitmq_quorum_queues: true/' \
36+
$KAYOBE_CONFIG_PATH/environments/$KAYOBE_ENVIRONMENT/kolla/globals.yml
37+
38+
$KAYOBE_CONFIG_ROOT/tools/rabbitmq-quorum-migration.sh
39+
40+
sed -i -e 's/om_enable_rabbitmq_high_availability: false/om_enable_rabbitmq_high_availability: true/' \
41+
-e 's/om_enable_rabbitmq_quorum_queues: true/om_enable_rabbitmq_quorum_queues: false/' \
42+
$KAYOBE_CONFIG_PATH/environments/$KAYOBE_ENVIRONMENT/kolla/globals.yml
43+
fi
44+
}
45+
46+
prechecks
47+
rabbit_upgrade
48+
rabbit_migration

0 commit comments

Comments
 (0)