envoy
envoy copied to clipboard
upstream: support multiple upstream binding source addresses
Commit Message: upstream: support multiple upstream binding source addresses Additional Description: Currently, the upstream binding config only supports specified one source address https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/address.proto#config-core-v3-bindconfig
When using the dual-stack, people have to create two cluster configs, then each cluster binds to a different source address, but most of the parts of those two cluster configs are the same except the upstream binding config.
This PR enables to specify multiple source addresses. The source address selection is based on the target host's address's version. Then the user needn't create duplicated cluster config anymore.
Risk Level: low Testing: unittest added Docs Changes: API doc updated Release Notes: new feature Platform Specific Features: n/a Fixes #9811 and part of #21640
CC @envoyproxy/api-shepherds: Your approval is needed for changes made to (api/envoy/|docs/root/api-docs/).
envoyproxy/api-shepherds assignee is @mattklein123
CC @envoyproxy/api-watchers: FYI only for changes made to (api/envoy/|docs/root/api-docs/).
/wait
emm... failed on gcc, needs investigation.
/retest
Retrying Azure Pipelines: Retried failed jobs in: envoy-presubmit
This is ready for review.
Macos CI seems unrelated failure.
Thanks can you actually add validation logic to make sure that only a single additional address is provided, it has a different IP version, etc.? As well as tests?
/wait
Yea, I will add the validation and tests, thanks
/retest
Retrying Azure Pipelines: Retried failed jobs in: envoy-presubmit