-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Implement incremental xDS in Envoy #4991
Comments
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or other activity occurs. Thank you for your contributions. |
ongoing |
Looking forward to this. |
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or other activity occurs. Thank you for your contributions. |
A list of subtasks to be done in the course of "fully implement incremental xDS", starting with what I am currently working on:
|
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or other activity occurs. Thank you for your contributions. |
Description: Code for Envoy to speak delta CDS with a management server. DELTA_GRPC added to config_source.proto's ApiTypes, to allow bootstrap configs to ask for incremental xDS. Part of #4991. Was #5466; giving up on broken DCO craziness. Risk Level: medium Testing: new integration test Signed-off-by: Fred Douglas <fredlas@google.com>
…otocol spec (#6545) realized that, with the unreliable queue implementation copied from SotW xDS, delta xDS could get into a state where Envoy thinks it has subscribed, but the server hasn't heard the subscription, with no way for either to realize the mistake. I fixed that by converting the queue setup to a cleaner "do I currently want to send a request?" with the request's (un)subscriptions only populated immediately before the request is actually sent into gRPC. While doing that, I further realized there was a problem when a given resource was subscribed then unsubscribed (or reversed), all in between request sends. I made sure Envoy handles that sensibly, and added explicit requirements to the xDS protocol spec to ensure servers will also handle it sensibly. Added unit tests for those fixes. Risk Level: low Testing: added unit tests for bugs uncovered #4991 Signed-off-by: Fred Douglas <fredlas@google.com>
Split out about half of DeltaSubscriptionImpl into DeltaSubscriptionState, one of which is owned by DeltaSubscriptionImpl. The upcoming aggregated implementation will aggregate-ize the remaining code of DeltaSubscriptionImpl (in a new class with a new name), and replace the current single DeltaSubscriptionState instance with a map of them. Risk Level: low Testing: existing delta xDS unit test is almost entirely for the split out logic #4991 #5270 Signed-off-by: Fred Douglas <fredlas@google.com>
Risk Level: none, adding unused proto field #4991 Signed-off-by: Fred Douglas <fredlas@google.com>
Introduce a unified "generic" version of compareDiscoveryRequest and sendDiscoveryResponse for use in integration tests, allowing parameterization of SotW/delta. #4991 Risk Level: none, test only Testing: modified cds_ and ads_integration_test, integration/integration.cc. Signed-off-by: Fred Douglas <fredlas@google.com>
Adding support for the new delta-style onConfigUpdate everywhere. Going by the comments, we had planned to have just this onConfigUpdate, rather than both it and the state-of-the-world style one. However, when I investigated unifying them it didn't make sense; I think both are needed. Part of #4991. Risk Level: low Testing: added tests for the delta style onConfigUpdate in CDS and EDS Signed-off-by: Fred Douglas <fredlas@google.com>
Delta services other than DeltaClusters were missing. Also added those services to proto_descriptors.cc. Also added some other things that proto_descriptors.cc was missing. #4991 Risk Level: low Signed-off-by: Fred Douglas <fredlas@google.com>
#7092) Previously, constant strings like "envoy.api.v2.EndpointDiscoveryService.FetchEndpoints" were all over eds.cc, rds_impl.cc, etc, being fed into SubscriptionFactory. Now, they are all centralized in SubscriptionFactory, the only place that actually uses them. #4991 Risk Level: low Signed-off-by: Fred Douglas <fredlas@google.com>
To be used with delta ADS. Could probably be used with the current GrpcMuxImpl. Has the SubscriptionCallbacks interface, so a GrpcMux can just directly pass onConfigUpdate() calls through to the WatchMap, which will then appropriately distribute the various resources to the various watches' SubscriptionCallbacks. #4991 Risk Level: none, not yet built into Envoy Testing: unit tests for the new class Signed-off-by: Fred Douglas <fredlas@google.com>
Delta ADS/xDS support. Added NewGrpcMuxImpl, a GrpcMux implementation that supports delta (and is intended to soon take over for state-of-the-world). DeltaSubscriptionImpl (which can soon be renamed to/replace GrpcSubscriptionImpl) now uses that new class. NewGrpcMuxImpl is the first user of the recently added WatchMap. Risk Level: medium (huge new thing that people aren't using yet) Testing: added delta param variant to ads_integration_test Docs Changes: added source/common/config/README.md and accompanying diagram, added to root/configuration/overview.rst and root/intro/arch_overview/operations/dynamic_configuration.rst. Release Notes: added support for delta xDS (including ADS) delivery Fixes #4991 Signed-off-by: Fred Douglas <fredlas@google.com>
Delta ADS/xDS support. Added NewGrpcMuxImpl, a GrpcMux implementation that supports delta (and is intended to soon take over for state-of-the-world). DeltaSubscriptionImpl (which can soon be renamed to/replace GrpcSubscriptionImpl) now uses that new class. NewGrpcMuxImpl is the first user of the recently added WatchMap. Risk Level: medium (huge new thing that people aren't using yet) Testing: added delta param variant to ads_integration_test Docs Changes: added source/common/config/README.md and accompanying diagram, added to root/configuration/overview.rst and root/intro/arch_overview/operations/dynamic_configuration.rst. Release Notes: added support for delta xDS (including ADS) delivery Fixes envoyproxy#4991 Signed-off-by: Fred Douglas <fredlas@google.com>
The incremental xDS design has been decided on, and added to the appropriate .proto file (in #3470). Now, incremental xDS clients should be implemented in Envoy. I am currently getting started on CDS.
Relevant Links: an early draft proposal for incremental xDS, still relevant for examples and overview of goals: https://docs.google.com/document/d/1dh8ACRzNNUkVYB3exepTPlLQK6CyDrOaP2OwwGlxDB4/edit#heading=h.yfahbzhf2783
The text was updated successfully, but these errors were encountered: