|
|
||
|---|---|---|
| .. | ||
| config | ||
| scripts | ||
| .gitignore | ||
| Makefile | ||
| README.md | ||
README.md
Testing RabbitMQ upgrades.
This tool can be used to test upgrade of RabbitMQ to a branch version.
rabbitmq-server dependency should be checked out to the tested branch.
How it works:
This tool use GNU Make to run following steps:
- install generic unix release for specified version to
rabbitmq_r_<version> - start a server with configuration from
configdirectory and data directory inrabbitmq_server_upgrade_data - set up vhost, user, policies, exchange (fanout), queues (transient and durable)
- publish messages to queues (persistent to queue index, persistent to storage, not persistent)
- stop the server
- start local branch server using
run-background-broker - verify everything is in place (transient queues and messages are expected to be lost)
- stop local server
By default it will also clean up the test data.
Custom targets and configuration
Make targets:
run-release-for-upgrade- download release and run it inrabbitmq_r_<version>with data inrabbitmq_server_upgrade_datasetup-release-for-upgrade- run previous step and set up test dataprepare-release-for-upgrade- run previous step and stop the server (can be used to build "pre upgrade" state)run-broker-upgrade- run previous step and run a current branch server (can be used to observe "after upgrade" state for manual verification)verify-upgrade- run previous step and verification script (that will consume published messages and delete some vhosts)verify-and-stop- run previous stap and stop the serververify-and-cleanup- run previous step and delete test data this is the default step
Additional targets:
clean- stop server (if running) and delete temporary datadistclean- same asclean, but also removes downloaded release package
Environment:
Following environment parameters can be used to configure upgrade validation:
| parameter | default | description |
|---|---|---|
| UPGRADE_FROM | 3.6.5 | Release version to upgrade from |
| QUEUES_COUNT_TRANSIENT | 1 | Number of transient queues |
| QUEUES_COUNT_DURABLE | 1 | Number of durable queues |
| MSGS_COUNT_NON_PERSISTENT | 10 | Number of transient messages to publish |
| MSGS_COUNT_PERSISTENT_INDEX | 10 | Number of persistent messages to publish to queue index |
| MSGS_COUNT_PERSISTENT_STORE | 10 | Number of persistent messages to publish to message store |
| INDEX_MSG_SIZE | 50 | Message size to fit queue index (depends on configuration) |
| STORE_MSG_SIZE | 150 | Message size to not fit queue index (depends on configuration) |
INDEX_MSG_SIZE and STORE_MSG_SIZE should be set to be more and less than queue_index_embed_msgs_below setting in config/rabbitmq.config file respectively.
Unsafe. Do not change without need:
| parameter | default | description |
|---|---|---|
| UPGRADE_FROM_SCRIPT | 3.5 | Script to use for data setup. It's only 3.5 now used for both 3.5.x and 3.6.x releases |
| UPGRADE_TO_SCRIPT | 3.6 | Script to use for verification. Should correspond with branch version |
| RELEASE_ARCHIVE | rabbitmq-server-generic-unix-$(UPGRADE_FROM).tar.xz | Filename for release archive |
| RELEASE_FOR_UPGRADE_URL | http://www.rabbitmq.com/releases/rabbitmq-server/v$(UPGRADE_FROM)/$(RELEASE_ARCHIVE) | URL to load $RELEASE_ARCHIVE from. Should point to directly accessible (via wget) generic unix archive |