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: Add self config source type. #8201

Merged
merged 1 commit into from
Sep 20, 2019

Conversation

markdroth
Copy link
Contributor

Description: Add self config source type to xDS.
Risk Level: Low
Testing: None
Docs Changes: Inline with API protos
Release Notes: N/A

Based on discussion in #7953.

cc @mattklein123 @htuch @vishalpowar

@@ -113,6 +121,18 @@ message ConfigSource {
// When set, ADS will be used to fetch resources. The ADS API configuration
// source in the bootstrap configuration is used.
AggregatedConfigSource ads = 3;
// [#not-implemented-hide:]
// When set, the client will access the resources from the same server it got the
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need to have some more discussion on this approach. Specifically, if the idea is really to make things like LRS sticky, it's arguably not the most practical approach, since it provides little guarantee. After speaking to Vishal about this, I think a better approach might be credential indirection, so let's discuss this next week.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What kind of guarantee are you concerned about not having here?

I think that even if we decide on a different approach for LRS, this would still be useful for cases where a management server is not using ADS but wants to redirect clients to itself when linking from LDS to RDS or from CDS to EDS. But I don't have a concrete use-case that needs that right now, so that is a bit speculative.

In any case, I'm happy to discuss this further when you get back.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's just discuss in the meeting we already have scheduled for next week? While I don't have any inherent objection to the feature I am a bit concerned about implementation complexity.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, let's talk about this when we meet next week. I had originally scheduled the meeting about the LRS-in-CDS issue, but we now have enough open discussions that I figure we can just use that meeting to talk about all of them (or at least as many as we can fit into the available time).

@markdroth
Copy link
Contributor Author

Just to record the current state of this: I discussed this with @htuch and @mattklein123 yesterday, and Harvey said he'd look into how much work it would be to implement this in Envoy.

Copy link
Member

@htuch htuch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is reasonable I think. I had a look at the Envoy implementation and have the following observations:

  • The resources we need to think about that feature ConfigSource are the bootstrap, cluster, HTTP connection manager, SDS, TAP and VHDS/SRDS.
  • Bootstrap needs to treat this as effectively invalid as a setting.
  • When the parent ConfigSource is path, this also should be invalid.
  • We probably need to thread around the parent ConfigSource in factory contexts, latch it in various places such as the Listener. It's not going to be too hard, but it is some non-zero work that needs someone to own if Envoy is going to support this. @markdroth I'd ask that we schedule this internally as per previous conversations and not take for granted that this support will appear once it is in the API.

With these caveats, I'm supportive of the PR; @mattklein123 for final comment and merge.

Copy link
Member

@mattklein123 mattklein123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks.

@mattklein123 mattklein123 merged commit 72fc360 into envoyproxy:master Sep 20, 2019
@markdroth markdroth deleted the xds_config_source_self branch September 20, 2019 21:13
danzh2010 pushed a commit to danzh2010/envoy that referenced this pull request Sep 24, 2019
danzh2010 pushed a commit to danzh2010/envoy that referenced this pull request Oct 4, 2019
danzh2010 pushed a commit to danzh2010/envoy that referenced this pull request Oct 4, 2019
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