-
Notifications
You must be signed in to change notification settings - Fork 4k
AWS peer discovery: add multi-hostname path support #14705
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AWS peer discovery: add multi-hostname path support #14705
Conversation
deps/rabbitmq_peer_discovery_aws/src/rabbit_peer_discovery_aws.erl
Outdated
Show resolved
Hide resolved
deps/rabbitmq_peer_discovery_aws/src/rabbit_peer_discovery_aws.erl
Outdated
Show resolved
Hide resolved
deps/rabbitmq_peer_discovery_aws/src/rabbit_peer_discovery_aws.erl
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please be aware that the genie is extremely lazy with whitespace and will gladly add space characters on blank lines, at the end of lines, etc.
deps/rabbitmq_peer_discovery_aws/src/rabbit_peer_discovery_aws.erl
Outdated
Show resolved
Hide resolved
deps/rabbitmq_peer_discovery_aws/src/rabbit_peer_discovery_aws.erl
Outdated
Show resolved
Hide resolved
deps/rabbitmq_peer_discovery_aws/src/rabbit_peer_discovery_aws.erl
Outdated
Show resolved
Hide resolved
ca6b404 to
175a956
Compare
deps/rabbitmq_peer_discovery_aws/priv/schema/rabbitmq_peer_discovery_aws.schema
Outdated
Show resolved
Hide resolved
deps/rabbitmq_peer_discovery_aws/src/rabbit_peer_discovery_aws.erl
Outdated
Show resolved
Hide resolved
deps/rabbitmq_peer_discovery_aws/src/rabbit_peer_discovery_aws.erl
Outdated
Show resolved
Hide resolved
deps/rabbitmq_peer_discovery_aws/src/rabbit_peer_discovery_aws.erl
Outdated
Show resolved
Hide resolved
b75758a to
7cdb505
Compare
7cdb505 to
a384336
Compare
Adds support for multiple hostname paths in the AWS peer discovery plugin to enable zero-downtime rolling upgrades during hostname migration scenarios. The implementation allows RabbitMQ nodes to discover peers using multiple hostname paths, ensuring cluster formation succeeds even when nodes are configured with different hostname paths during rolling upgrades. Example usage: cluster_formation.aws.hostname_path.1 = privateDnsName cluster_formation.aws.hostname_path.2 = privateIpAddress Move tests that need per-test init and end to dedicated file.
b67ffb1 to
c0c79bf
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me, I just have a minor suggestion about being more assertive in the schema for this config
deps/rabbitmq_peer_discovery_aws/priv/schema/rabbitmq_peer_discovery_aws.schema
Outdated
Show resolved
Hide resolved
...covery_aws.schema Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
Uh oh!
There was an error while loading. Please reload this page.
Proposed Changes
This PR adds support for multiple hostname paths in the AWS peer discovery plugin to enable zero-downtime rolling upgrades during hostname migration scenarios. The implementation allows RabbitMQ nodes to discover peers using multiple hostname paths, ensuring cluster formation succeeds even when nodes are configured with different hostname paths during rolling upgrades.
Backward Compatibility
Existing single
hostname_pathconfiguration continues to work (unchanged).We fallback to single path behavior when no numbered paths are configured.
Configuration Examples
Multiple paths for zero-downtime migration
Note: This follows the existing pattern we have for
classic_config:Single path (backward compatible)
Types of Changes
What types of changes does your code introduce to this project?
Put an
xin the boxes that applyChecklist
Put an
xin the boxes that apply.You can also fill these out after creating the PR.
This is simply a reminder of what we are going to look for before merging your code.
CONTRIBUTING.mddocument