envoy
envoy copied to clipboard
xds: Adds extension points to receive config update notifications
The purpose of this change is to add an API hook that enables taking actions when xDS config updates are received and when xDS resources are being loaded for the first time. This can be used as an extension point, for example, to persist and load xDS resources from a key value store or local storage.
This is an experimental feature and the API will not be published at this time.
This partially addresses some of the desired features outlined in https://github.com/envoyproxy/envoy/issues/19858.
Risk Level: Low Testing: Unit & Integration tests Docs Changes: N/A Release Notes: N/A Platform Specific Features: N/A
Signed-off-by: Ali Beyad [email protected]
As a reminder, PRs marked as draft will not be automatically assigned reviewers, or be handled by maintainer-oncall triage.
Please mark your PR as ready when you want it to be reviewed!
CC @envoyproxy/api-shepherds: Your approval is needed for changes made to (api/envoy/|docs/root/api-docs/).
envoyproxy/api-shepherds assignee is @mattklein123
CC @envoyproxy/api-watchers: FYI only for changes made to (api/envoy/|docs/root/api-docs/).
/assign @alyssawilk @adisuissa
/cc @goaway
/assign @lizan
https://github.com/envoyproxy/envoy/issues/21910 is also relevant here I think.
#21910 is also relevant here I think.
Good point, I referenced it in the change description.
@lizan friendly ping for your review of this PR, thanks!
/retest
Retrying Azure Pipelines: Retried failed jobs in: envoy-presubmit
@adisuissa I pushed a commit using a new XdsSourceId class that encapsulates the resource id state. PTAL.
/retest
Retrying Azure Pipelines: Retried failed jobs in: envoy-presubmit
/retest
Retrying Azure Pipelines: Retried failed jobs in: envoy-presubmit
Overall LGTM, thanks! We can start with this and change things if the design changes down the road. /lgtm api
Should be reviewed by non-Googler. @mattklein123 / @alyssawilk to suggest a reviewer.
Thanks Adi! Note: Lizan already approved as a non-Googler maintainer.
Yes @lizan can do the final approval.
@adisuissa pushed a new commit that removes the base64 encoding of the key components.
Defer to @adisuissa for final merge.
Thanks for working through this one with me, @adisuissa !