@@ -25,13 +25,15 @@ ifeq ($(PLATFORM),msys2)
2525RABBITMQ_PLUGINS ?= $(RABBITMQ_SCRIPTS_DIR ) /rabbitmq-plugins.bat
2626RABBITMQ_SERVER ?= $(RABBITMQ_SCRIPTS_DIR ) /rabbitmq-server.bat
2727RABBITMQCTL ?= $(RABBITMQ_SCRIPTS_DIR ) /rabbitmqctl.bat
28+ RABBITMQ_UPGRADE ?= $(RABBITMQ_SCRIPTS_DIR ) /rabbitmq-upgrade.bat
2829else
2930RABBITMQ_PLUGINS ?= $(RABBITMQ_SCRIPTS_DIR ) /rabbitmq-plugins
3031RABBITMQ_SERVER ?= $(RABBITMQ_SCRIPTS_DIR ) /rabbitmq-server
3132RABBITMQCTL ?= $(RABBITMQ_SCRIPTS_DIR ) /rabbitmqctl
33+ RABBITMQ_UPGRADE ?= $(RABBITMQ_SCRIPTS_DIR ) /rabbitmq-upgrade
3234endif
3335
34- export RABBITMQ_SCRIPTS_DIR RABBITMQCTL RABBITMQ_PLUGINS RABBITMQ_SERVER
36+ export RABBITMQ_SCRIPTS_DIR RABBITMQCTL RABBITMQ_PLUGINS RABBITMQ_SERVER RABBITMQ_UPGRADE
3537
3638# We export MAKE to be sure scripts and tests use the proper command.
3739export MAKE
@@ -416,6 +418,35 @@ stop-brokers stop-cluster:
416418 done ; \
417419 wait
418420
421+ NODES ?= 3
422+
423+ # Rolling restart similar to what the Kubernetes Operator does
424+ restart-cluster :
425+ @for n in $$(seq $(NODES ) -1 1 ) ; do \
426+ nodename=" rabbit-$$ n@$( HOSTNAME) " ; \
427+ $(RABBITMQ_UPGRADE ) -n " $$ nodename" await_online_quorum_plus_one -t 604800 && \
428+ $(RABBITMQ_UPGRADE ) -n " $$ nodename" drain; \
429+ $(MAKE ) stop-node \
430+ RABBITMQ_NODENAME=" $$ nodename" ; \
431+ $(MAKE ) start-background-broker \
432+ NOBUILD=1 \
433+ RABBITMQ_NODENAME=" $$ nodename" \
434+ RABBITMQ_NODE_PORT=" $$ ((5672 + $$ n - 1))" \
435+ RABBITMQ_SERVER_START_ARGS=" \
436+ -rabbit loopback_users [] \
437+ -rabbitmq_management listener [{port,$$ (( 15672 + $$ n - 1 )) }] \
438+ -rabbitmq_mqtt tcp_listeners [$$ (( 1883 + $$ n - 1 )) ] \
439+ -rabbitmq_web_mqtt tcp_config [{port,$$ (( 1893 + $$ n - 1 )) }] \
440+ -rabbitmq_web_mqtt_examples listener [{port,$$ (( 1903 + $$ n - 1 )) }] \
441+ -rabbitmq_stomp tcp_listeners [$$ (( 61613 + $$ n - 1 )) ] \
442+ -rabbitmq_web_stomp tcp_config [{port,$$ (( 61623 + $$ n - 1 )) }] \
443+ -rabbitmq_web_stomp_examples listener [{port,$$ (( 61633 + $$ n - 1 )) }] \
444+ -rabbitmq_prometheus tcp_config [{port,$$ (( 15692 + $$ n - 1 )) }] \
445+ -rabbitmq_stream tcp_listeners [$$ (( 5552 + $$ n - 1 )) ] \
446+ " & \
447+ done ; \
448+ wait
449+
419450# --------------------------------------------------------------------
420451# Code reloading.
421452#
0 commit comments