From 9a022f62ef33f01ef76b3986aae13f702b450a21 Mon Sep 17 00:00:00 2001 From: Michael Klishin Date: Mon, 24 Nov 2025 19:45:55 -0800 Subject: [PATCH] Expose Osiris replica IP address family to rabbitmq.conf References #15005 --- deps/rabbit/priv/schema/rabbit.schema | 17 +++++++++ .../config_schema_SUITE_data/rabbit.snippets | 36 ++++++++++++++++--- 2 files changed, 49 insertions(+), 4 deletions(-) diff --git a/deps/rabbit/priv/schema/rabbit.schema b/deps/rabbit/priv/schema/rabbit.schema index d1862de2132..2f17c0e1583 100644 --- a/deps/rabbit/priv/schema/rabbit.schema +++ b/deps/rabbit/priv/schema/rabbit.schema @@ -2756,6 +2756,23 @@ end}. end }. +{mapping, "stream.replication.address_family", "osiris.replica_ip_address_family", [ + {datatype, [{enum, [inet6, inet, ipv6, ipv4]}]} +]}. + +{translation, "osiris.replica_ip_address_family", + fun(Conf) -> + case cuttlefish:conf_get("stream.replication.address_family", Conf, undefined) of + undefined -> cuttlefish:unset(); + inet -> inet; + inet6 -> inet6; + ipv4 -> inet; + ipv6 -> inet6; + Other -> cuttlefish:invalid(io_lib:format("~p is not a supported address family", [Other])) + end + end +}. + {mapping, "stream.replication.port_range.min", "osiris.port_range", [ {datatype, [integer]}, {validators, ["non_zero_positive_integer"]} diff --git a/deps/rabbit/test/config_schema_SUITE_data/rabbit.snippets b/deps/rabbit/test/config_schema_SUITE_data/rabbit.snippets index 9cd8d7cad90..bef6d71cb74 100644 --- a/deps/rabbit/test/config_schema_SUITE_data/rabbit.snippets +++ b/deps/rabbit/test/config_schema_SUITE_data/rabbit.snippets @@ -1198,10 +1198,38 @@ credential_validator.regexp = ^abc\\d+", []}, %% - %% Stream replication port range + %% Stream replication %% - {stream_replication_port_range, + {stream_replication_address_family_ipv4_case1, + "stream.replication.address_family = inet", + [{osiris, [ + {replica_ip_address_family, inet} + ]}], + []}, + + {stream_replication_address_family_ipv4_case2, + "stream.replication.address_family = ipv4", + [{osiris, [ + {replica_ip_address_family, inet} + ]}], + []}, + + {stream_replication_address_family_ipv6_case1, + "stream.replication.address_family = inet6", + [{osiris, [ + {replica_ip_address_family, inet6} + ]}], + []}, + + {stream_replication_address_family_ipv6_case2, + "stream.replication.address_family = ipv6", + [{osiris, [ + {replica_ip_address_family, inet6} + ]}], + []}, + + {stream_replication_port_range_min_max, " stream.replication.port_range.min = 4000 stream.replication.port_range.max = 4600 @@ -1211,7 +1239,7 @@ credential_validator.regexp = ^abc\\d+", ]}], []}, - {stream_replication_port_range, + {stream_replication_port_range_min_only, " stream.replication.port_range.min = 4000 ", @@ -1220,7 +1248,7 @@ credential_validator.regexp = ^abc\\d+", ]}], []}, - {stream_replication_port_range, + {stream_replication_port_range_max, " stream.replication.port_range.max = 4600 ",