@@ -626,6 +626,33 @@ write_config_file(Config, NodeConfig, _I) ->
626626 ConfigFile ++ " \" : " ++ file :format_error (Reason )}
627627 end .
628628
629+ -define (REQUIRED_FEATURE_FLAGS , [
630+ % % Required in 3.11:
631+ " virtual_host_metadata,"
632+ " quorum_queue,"
633+ " implicit_default_bindings,"
634+ " maintenance_mode_status,"
635+ " user_limits,"
636+ % % Required in 3.12:
637+ " stream_queue,"
638+ " classic_queue_type_delivery_support,"
639+ " tracking_records_in_ets,"
640+ " stream_single_active_consumer,"
641+ " listener_records_in_ets,"
642+ " feature_flags_v2,"
643+ " direct_exchange_routing_v2,"
644+ " classic_mirrored_queue_version," % % @todo Missing in FF docs!!
645+ % % Required in 3.12 in rabbitmq_management_agent:
646+ " drop_unroutable_metric,"
647+ " empty_basic_get_metric,"
648+ % % Required in 4.0:
649+ " stream_sac_coordinator_unblock_group,"
650+ " restart_streams,"
651+ " stream_update_config_command,"
652+ " stream_filtering,"
653+ " message_containers" % % @todo Update FF docs!! It *is* required.
654+ ]).
655+
629656do_start_rabbitmq_node (Config , NodeConfig , I ) ->
630657 WithPlugins0 = rabbit_ct_helpers :get_config (Config ,
631658 broker_with_plugins ), % % @todo This is probably not used.
@@ -749,7 +776,8 @@ do_start_rabbitmq_node(Config, NodeConfig, I) ->
749776 {" CLI_ESCRIPTS_DIR=~ts /escript" , [SecondaryDist ]},
750777 {" RABBITMQ_SCRIPTS_DIR=~ts /sbin" , [SecondaryDist ]},
751778 {" RABBITMQ_SERVER=~ts /sbin/rabbitmq-server" , [SecondaryDist ]},
752- {" RABBITMQ_ENABLED_PLUGINS=~ts " , [SecondaryEnabledPlugin ]}
779+ {" RABBITMQ_ENABLED_PLUGINS=~ts " , [SecondaryEnabledPlugin ]},
780+ {" RABBITMQ_FEATURE_FLAGS=~ts " , [? REQUIRED_FEATURE_FLAGS ]}
753781 | ExtraArgs4 ];
754782 false ->
755783 ExtraArgs4
0 commit comments