@@ -25,13 +25,15 @@ ifeq ($(PLATFORM),msys2)
25
25
RABBITMQ_PLUGINS ?= $(RABBITMQ_SCRIPTS_DIR ) /rabbitmq-plugins.bat
26
26
RABBITMQ_SERVER ?= $(RABBITMQ_SCRIPTS_DIR ) /rabbitmq-server.bat
27
27
RABBITMQCTL ?= $(RABBITMQ_SCRIPTS_DIR ) /rabbitmqctl.bat
28
+ RABBITMQ_UPGRADE ?= $(RABBITMQ_SCRIPTS_DIR ) /rabbitmq-upgrade.bat
28
29
else
29
30
RABBITMQ_PLUGINS ?= $(RABBITMQ_SCRIPTS_DIR ) /rabbitmq-plugins
30
31
RABBITMQ_SERVER ?= $(RABBITMQ_SCRIPTS_DIR ) /rabbitmq-server
31
32
RABBITMQCTL ?= $(RABBITMQ_SCRIPTS_DIR ) /rabbitmqctl
33
+ RABBITMQ_UPGRADE ?= $(RABBITMQ_SCRIPTS_DIR ) /rabbitmq-upgrade
32
34
endif
33
35
34
- export RABBITMQ_SCRIPTS_DIR RABBITMQCTL RABBITMQ_PLUGINS RABBITMQ_SERVER
36
+ export RABBITMQ_SCRIPTS_DIR RABBITMQCTL RABBITMQ_PLUGINS RABBITMQ_SERVER RABBITMQ_UPGRADE
35
37
36
38
# We export MAKE to be sure scripts and tests use the proper command.
37
39
export MAKE
@@ -416,6 +418,35 @@ stop-brokers stop-cluster:
416
418
done ; \
417
419
wait
418
420
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
+
419
450
# --------------------------------------------------------------------
420
451
# Code reloading.
421
452
#
0 commit comments