Skip to content

AWS peer discovery: add multi-hostname path support (backport #14705)#15395

Merged
michaelklishin merged 2 commits intov4.2.xfrom
mergify/bp/v4.2.x/pr-14705
Feb 4, 2026
Merged

AWS peer discovery: add multi-hostname path support (backport #14705)#15395
michaelklishin merged 2 commits intov4.2.xfrom
mergify/bp/v4.2.x/pr-14705

Conversation

@mergify
Copy link
Copy Markdown

@mergify mergify bot commented Feb 4, 2026

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_path configuration continues to work (unchanged).
We fallback to single path behavior when no numbered paths are configured.

Configuration Examples

Multiple paths for zero-downtime migration
cluster_formation.aws.hostname_path.1 = networkInterfaceSet,2,privateIpAddressesSet,1,privateDnsName
cluster_formation.aws.hostname_path.2 = privateDnsName
cluster_formation.aws.hostname_path.3 = networkInterfaceSet,1,privateIpAddressesSet,2,privateIpAddress

Note: This follows the existing pattern we have for classic_config:

cluster_formation.classic_config.nodes.1 = rabbit@<hostnameA>
cluster_formation.classic_config.nodes.2 = rabbit@<hostnameB>
cluster_formation.classic_config.nodes.3 = rabbit@<hostnameC>
Single path (backward compatible)
cluster_formation.aws.hostname_path = privateDnsName

Types of Changes

What types of changes does your code introduce to this project?
Put an x in the boxes that apply

  • Bug fix (non-breaking change which fixes issue #NNNN)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause an observable behavior change in existing systems)
  • Documentation improvements (corrections, new content, etc)
  • Cosmetic change (whitespace, formatting, etc)
  • Build system and/or CI

Checklist

Put an x in 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.

  • Mandatory: I (or my employer/client) have have signed the CA (see https://github.com/rabbitmq/cla)
  • I have read the CONTRIBUTING.md document
  • I have added tests that prove my fix is effective or that my feature works
  • All tests pass locally with my changes
  • If relevant, I have added necessary documentation to https://github.com/rabbitmq/rabbitmq-website
  • If relevant, I have added this change to the first version(s) in release-notes that I expect to introduce it

This is an automatic backport of pull request #14705 done by [Mergify](https://mergify.com).

BenAtAmazon and others added 2 commits February 4, 2026 19:40
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.

(cherry picked from commit 8809b6e)
…covery_aws.schema

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
(cherry picked from commit 51981e2)
@michaelklishin michaelklishin added this to the 4.2.4 milestone Feb 4, 2026
@michaelklishin michaelklishin merged commit 83c258f into v4.2.x Feb 4, 2026
287 of 289 checks passed
@michaelklishin michaelklishin deleted the mergify/bp/v4.2.x/pr-14705 branch February 4, 2026 19:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants