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

api/faq: add initial API versioning FAQ entries. #10829

Merged
merged 4 commits into from
Apr 21, 2020

Conversation

htuch
Copy link
Member

@htuch htuch commented Apr 17, 2020

This patch seeds the FAQ with some initial Q+As around the API that have
come up.

Signed-off-by: Harvey Tuch htuch@google.com

This patch seeds the FAQ with some initial Q+As around the API that have
come up.

Signed-off-by: Harvey Tuch <htuch@google.com>
@htuch
Copy link
Member Author

htuch commented Apr 17, 2020

CC @fuqianggao (you might want to review some of this for your current efforts)

Copy link
Contributor

@mpuncel mpuncel left a comment

Choose a reason for hiding this comment

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

Thanks for adding this, as an end user this clears up a lot of my confusion about the migration path!

docs/root/faq/api/envoy_upgrade_v3.rst Outdated Show resolved Hide resolved
Signed-off-by: Harvey Tuch <htuch@google.com>
1. Independent v2/v3 configuration generation pipelines. This is simple to understand but
involves significant duplication of code and can be expensive engineering wise. This may
work well if the API surface in use is small.
2. Have the control plane use v2 canonically and mechanically transform v2 messages to their
Copy link
Contributor

@jyotimahapatra jyotimahapatra Apr 17, 2020

Choose a reason for hiding this comment

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

From an experiment here it looks like we need some fixes in envoy to accept mixed responses in xds grpc responses.

Copy link
Contributor

@jyotimahapatra jyotimahapatra Apr 17, 2020

Choose a reason for hiding this comment

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

i might be wrong. Taking a closer look again to debug.

Copy link
Contributor

Choose a reason for hiding this comment

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

Couldn't get it working yet.
Error after some more fixes to control plane code:

[2020-04-17 19:18:00.722][1209][debug][config] [source/common/config/grpc_mux_impl.cc:136] Received gRPC message for type.googleapis.com/envoy.config.cluster.v3.Cluster at version v0
[2020-04-17 19:18:00.722][1209][warning][config] [source/common/config/grpc_mux_impl.cc:139] Ignoring the message for type URL type.googleapis.com/envoy.config.cluster.v3.Cluster as it has no current subscribers.

Copy link
Contributor

@ramaraochavali ramaraochavali left a comment

Choose a reason for hiding this comment

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

Great FAQ. Thanks for putting this together

docs/root/faq/api/control_plane.rst Outdated Show resolved Hide resolved
docs/root/faq/api/control_plane.rst Outdated Show resolved Hide resolved
docs/root/faq/api/why_versioning.rst Outdated Show resolved Hide resolved
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.

Thanks for doing this. This is a great start. I would suggest we ship and iterate. I do think that having some more guidance on how to actually perform the upgrade would be useful based on conversations that have been occurring in Slack, but we can add that later.

@@ -0,0 +1,27 @@
How do I support multiple xDS API major versions in my control plane?
Copy link
Member

Choose a reason for hiding this comment

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

In a follow up should we actually have a FAQ entry around a control plane doing an upgrade, even if they want to support a single version? There have been tons of questions about this and I wonder if we should provide some ideas/guidance/specifics especially when using go-control-plane? Thoughts? cc @kyessenov @jyotimahapatra @envoyproxy/maintainers @envoyproxy/api-shepherds

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah, I think this has been quite thoroughly explored in istio/istio#19885. I will make a note to work on a followup; some of the advice will be conditional on items such as #10776 and #8421.

Copy link
Contributor

@jyotimahapatra jyotimahapatra Apr 21, 2020

Choose a reason for hiding this comment

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

Im not sure if istio/istio#19885 captures the scenario where the control plane is migrated to v3 and serves v3 responses to v2 requests by just changing the typeurl.
Since the lds/cds resource versions will be in bootstrap config, it will be very difficult to move our whole fleet to v3 without this solution.
I think go-control-plane integration tests can easily demonstrate such canonical migration scenarios.

@htuch htuch merged commit 1ae6ba5 into envoyproxy:master Apr 21, 2020
@htuch htuch deleted the version-faq branch April 21, 2020 00:13
penguingao pushed a commit to penguingao/envoy that referenced this pull request Apr 22, 2020
This patch seeds the FAQ with some initial Q+As around the API that have
come up.

Signed-off-by: Harvey Tuch <htuch@google.com>
Signed-off-by: pengg <pengg@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.

6 participants