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

hds: add support for delta updates in specifier #13067

Merged
merged 57 commits into from
Oct 14, 2020

Conversation

drewsortega
Copy link
Contributor

@drewsortega drewsortega commented Sep 11, 2020

Commit Message: hds: add support for delta updates in specifier
Additional Description:
Implement incremental comparison of changes to the HealthCheckSpecifier used to configure the health discovery service. Previously all HDS Clusters would be reconstructed even if the same HealthCheckSpecifier was received, or if there was only some small change. This is unusable for the use case of a timed HealthCheckSpecifier update, where the HealthCheckSpecifier is update more often than a health check. Since all health checks were previously being reconstructed on each call, their results were inconsistent.

This implementation allows for the re-usage of objects that do not change between calls, Specifically to an HdsCluster, to a Host/Endpoint, and to a Health Checker.
Risk Level: Low
Testing: All previous tests pass. Added unit tests that test for:

  • No changes in the HealthCheckSpecifier should not attempt to update.
  • Changes to only some of the overall HdsClusters should not reconstruct or update all of them.
  • Changes to some endpoints/hosts should not update or reconstruct all of them.
  • Changes to some health checkers should not update or reconstruct all of them.

Docs Changes: N/A
Release Notes: Included

Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
@drewsortega
Copy link
Contributor Author

@htuch

Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
@drewsortega
Copy link
Contributor Author

FYI, new integration test was ran with flakiness verification, running 1000 times. No failures.

Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
Signed-off-by: Drew S. Ortega <drewortega@google.com>
@stale
Copy link

stale bot commented Oct 4, 2020

This pull request has been automatically marked as stale because it has not had activity in the last 7 days. It will be closed in 7 days if no further activity occurs. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions!

@stale stale bot added the stale stalebot believes this issue/PR has not been touched recently label Oct 4, 2020
@htuch
Copy link
Member

htuch commented Oct 5, 2020

@drewsortega huh, I think this was ready to merge when you left, not sure why I didn't merge it. Could you merge master?

@stale stale bot removed the stale stalebot believes this issue/PR has not been touched recently label Oct 5, 2020
@drewsortega
Copy link
Contributor Author

Sure, I can get master merged ASAP.

@htuch
Copy link
Member

htuch commented Oct 12, 2020

@drewsortega any luck? :) I'm happy to do a new PR and do the fixups, but can also wait a bit, up to you.

Signed-off-by: Drew S. Ortega <DrewSOrtega@pm.me>
Signed-off-by: Drew S. Ortega <DrewSOrtega@pm.me>
@drewsortega
Copy link
Contributor Author

@htuch apologies for the delay, had to clean up some changes due to 'random' being removed. I've committed the completed merge, I'll keep watch for any odd CI failures if they happen.

Signed-off-by: Drew S. Ortega <DrewSOrtega@pm.me>
Signed-off-by: Drew S. Ortega <DrewSOrtega@pm.me>
Signed-off-by: Drew S. Ortega <DrewSOrtega@pm.me>
@drewsortega drewsortega requested a review from htuch October 14, 2020 20:05
@drewsortega
Copy link
Contributor Author

@htuch Merge seems to have gone well, I'll pass this one back to you!

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.

LGTM, thanks! Appreciate all the work you did over the summer on this and the followup.

@htuch htuch merged commit 1ca5312 into envoyproxy:master Oct 14, 2020
@xdzhai
Copy link
Contributor

xdzhai commented Oct 14, 2020

Thank you both for getting it done!

mpuncel added a commit to mpuncel/envoy that referenced this pull request Oct 15, 2020
* master:
  ci: use multiple stage (envoyproxy#13557)
  tls: update BoringSSL to 2192bbc8 (4240). (envoyproxy#13567)
  fix macos v8 build (envoyproxy#13572)
  Fixed Health Check Fuzz corpus syntax (envoyproxy#13576)
  ci: Remove shellcheck diff (envoyproxy#13560)
  ci: Increate brew retry interval (envoyproxy#13565)
  dependencies: fix some of the fallout from Wasm merge. (envoyproxy#13569)
  hds: add support for delta updates in specifier (envoyproxy#13067)
  ci: workaround for actions/runner-images#1811 (envoyproxy#13577)
  ratelimit: be able to disable x-envoy-ratelimited response header sent (envoyproxy#13270)
  Update opencensus library (envoyproxy#13549)
  ci: use azp for api and go-control-plane sync (envoyproxy#13550)
  docs: Remove/make generic lyft references in docs (envoyproxy#13559)
  check_format: adding 2 more release note checks (envoyproxy#13444)
  [Wasm] Add cluster metadata fallback and upstream host metadata (envoyproxy#13477)
  [fuzz] Added validation for secrets (envoyproxy#13543)
  Add Platform Specific Feature guidance to PR template (envoyproxy#13547)

Signed-off-by: Michael Puncel <mpuncel@squareup.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