-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Happy Eyeballs for EDS clusters #27881
Conversation
Signed-off-by: pcrao <[email protected]>
Signed-off-by: pcrao <[email protected]>
Signed-off-by: pcrao <[email protected]>
CC @envoyproxy/api-shepherds: Your approval is needed for changes made to |
Signed-off-by: pcrao <[email protected]>
Signed-off-by: pcrao <[email protected]>
/assign @RyanTheOptimist |
Signed-off-by: pcrao <[email protected]>
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.
Nice! Though I find the idea of Happy Eyeballs without DNS to be a bit mind blowing :)
Thank you so much for the review @RyanTheOptimist ! |
/retest |
/assign-from @envoyproxy/senior-maintainers |
@envoyproxy/senior-maintainers assignee is @mattklein123 |
/review @adisuissa @markdroth |
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.
Neat!
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.
Changes LGTM!
Can you please add a comment next to the address_list_
data member, stating the underlying assumption that the first entry in the list must be the same host as address_
(better yet, add this as an assertion somewhere if possible).
Signed-off-by: pcrao <[email protected]>
e95821e
The following
|
Never mind, I should be dereferencing the shared_ptrs for comparison because of how these are constructed |
Signed-off-by: pcrao <[email protected]>
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, LGTM!
/restest |
Signed-off-by: pcrao <[email protected]>
Signed-off-by: pcrao <[email protected]> Signed-off-by: asheryer <[email protected]>
Signed-off-by: pcrao <[email protected]> Signed-off-by: Ryan Eskin <[email protected]>
* Allow custom local address resolvers. #27881 introduces the concept of EDS clusters with hosts that have multiple (potentially > 2) IP addresses. The current implementation of UpstreamLocalAddressSelector limits the number of source addresses in BindConfig artificially to 2, and further requires that the addresses be of different address families. The workaround for this (if we need to specify more than 2 source addresses or have multiple addresses from the same family) is to use a custom address resolver that resolves the bind config address to nullptr (and therefore ignore it) and call bind in a customised SocketInterfaceImpl to a local source address determined by the SocketInterfaceImpl specialisation. This PR makes it possible to define a custom local address selector, that makes it easy to work with a custom address resolver to pick the right source address based on the upstream address selected by HappyEyeballsConnectionImpl Signed-off-by: pcrao <[email protected]>
Commit Message:
Additional Description:
This change adds the ability to associate multiple IP addresses with one host for an EDS cluster. The connection to the upstream will be made using Happy Eyeballs if the Endpoint has more than one address.
The primary use case for this is to allow dual-stack (i.e. with both IPv4 and IPv6 addresses) endpoints as a means to migrate from IPv4 to IPv6 backends. See https://docs.google.com/document/d/1AjmTcMWwb7nia4rAgqE-iqIbSbfiXCI4h1vk-FONFdM/edit#heading=h.xzptrog8pyxf for a more detailed description.
Risk Level: Low
Testing: Added test
Docs Changes: Added Doc
Release Notes: Added release note
Platform Specific Features: N/A