Skip to content

xds: Add self config source type.#8201

Merged
mattklein123 merged 1 commit intoenvoyproxy:masterfrom
markdroth:xds_config_source_self
Sep 20, 2019
Merged

xds: Add self config source type.#8201
mattklein123 merged 1 commit intoenvoyproxy:masterfrom
markdroth:xds_config_source_self

Conversation

@markdroth
Copy link
Copy Markdown
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

Signed-off-by: Mark D. Roth <roth@google.com>
// 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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Signed-off-by: Mark D. Roth <roth@google.com>
danzh2010 pushed a commit to danzh2010/envoy that referenced this pull request Oct 4, 2019
Signed-off-by: Mark D. Roth <roth@google.com>
danzh2010 pushed a commit to danzh2010/envoy that referenced this pull request Oct 4, 2019
Signed-off-by: Mark D. Roth <roth@google.com>
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