Skip to content
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

xds/clusterresolver: set ServerName to an address for LogicalDNS #5793

Closed
wants to merge 9 commits into from

xds/clusterresolver: set a ServerName to an address for LogicalDNS

8429bb7
Select commit
Failed to load commit list.
Closed

xds/clusterresolver: set ServerName to an address for LogicalDNS #5793

xds/clusterresolver: set a ServerName to an address for LogicalDNS
8429bb7
Select commit
Failed to load commit list.
Mergeable / Mergeable failed May 28, 2023 in 0s

3/3 Fail(s): LABEL, DESCRIPTION, MILESTONE

Status: FAIL

    Here are some stats of the run:
    3 validations were ran.
    0 PASSED
    3 FAILED

Details

❌ Validator: LABEL

  • label does not include "^Type:"
    Input :
    Settings : {"must_include":{"regex":"^Type:"}}

❌ Validator: DESCRIPTION

  • description does not include "^RELEASE NOTES:\s([Nn][Oo][Nn][Ee]|[Nn]/[Aa]|\n(*|-)\s.+)$"**
    Input : ### ⚠️ The branch of this PR is based on #5748

because this change needs #5748 for setting :authority header.


What

  • xds/clusterresolver: Set ServerName to an address for LogicalDNS

Motivation

With the current xds/clusterresolver implementation, when we use LogicalDNS, the :authority header of a request gets to the xds target name (e.g. if we use xds:///xds-target as a URI, the :authority header will be xds-target).
This causes a problem if we use some proxies that use :authority header meaningfully.
One such proxy is Google Cloud Run, a managed container platform. Google Cloud Run creates a dedicated domain for each deployment like my-service-xxx.run.app. Even though we use this domain for a request URI, Google Cloud Run does not route the traffic as expected if the :authority header of the request does not match this dedicated domain. Therefore, when we distribute the target URI for Google Cloud Run deployment via xds (CDS) with LogicalDNS to a gRPC client, the gRPC client can not reach out to the desired deployment.
I know my use case (not for Service Mesh) might be a edge case for the gRPC xds feature, but I'd like it use proper :authority header as I'm using Google Cloud Run.
Settings : {"must_include":{"regex":"^RELEASE NOTES:\\s*([Nn][Oo][Nn][Ee]|[Nn]/[Aa]|\\n(\\*|-)\\s*.+)$","regex_flag":"m"}}

❌ Validator: MILESTONE

  • milestone does not include "Release$"
    Input :
    Settings : {"must_include":{"regex":"Release$"}}