|
| 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