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

[WIP] HdsDelegate can healthcheck an endpoint #1

Open
wants to merge 190 commits into
base: master
Choose a base branch
from
Open

Conversation

markatou
Copy link
Owner

HdsDelegate can create a healthChecker and can health check an endpoint.

alyssawilk and others added 30 commits June 26, 2018 17:07
Initializing absl::Symbolize for improved symbolization in a few corner cases.

Risk Level: Low
Testing: //test/server:backtrace_test looks good
Docs Changes: n/a
Release Notes: n/a

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
Provides a set of python scripts that allows an integration test to run a Thrift client and server. The scripts handle all the Thrift transports and protocols we expect Envoy to eventually handle.

Adds envoy_extension_cc_test_library to test/extensions/extensions_build_system.bzl. I believe this is necessary to successfully exclude the thrift_proxy from builds. Adds more descriptive names to parameterized tests.

Implements an integration test for the Thrift sniffing filter, which uncovered some compact protocol bugs, which are also fixed in this PR along with matching unit test coverage.

Risk Level: Low - introduces some new dependencies, but they are not part of any build path beyond the thrift_proxy
Testing: integration tests
Docs Changes: n/a
Relates to: envoyproxy#2247

Signed-off-by: Stephan Zuercher <stephan@turbinelabs.io>
Added the /clusters?format=json admin endpoint along with a proto representation of /clusters.

Risk Level: Low

Testing: Added a unit test for the new format.

Docs Changes: Added a brief description on the admin docs and linked to the more detailed proto definition.

Release Notes: Added release notes.

Fixes envoyproxy#2020

Signed-off-by: Matt Rice <mattrice@google.com>
…oxy#3742)

My thrift integration test merge and the conversion of TestUtility::bufferToString
to Buffer::Instance::toString conflicted.

*Risk Level*: low
*Testing*: unit tests
*Docs Changes*: n/a
*Release Notes*: n/a

Signed-off-by: Stephan Zuercher <stephan@turbinelabs.io>
)

This PR extends the current Ext_Authz filter to allow optional HTTP attributes being passed from the Authorization service down to client or, to the upstream services. I would like to get some feedback on the changes to the current gRPC async client and filter before moving to implementation of HTTP part of this extension and tests.

*issue: envoyproxy#2828

Risk Level: Medium
Testing: Manual, unit testing.
Docs Changes: envoyproxy/data-plane-api#563

Signed-off-by: Gabriel <gsagula@gmail.com>
Signed-off-by: Yangmin Zhu <ymzhu@google.com>
Description: Changes the log level to debug when management server is not reachable.
Risk Level: Low
Testing: Current tests
Docs Changes: None
Release Notes: NA
Fixes envoyproxy#3733

Signed-off-by: Rama <rama.rao@salesforce.com>
Signed-off-by: Lilika Markatou <lilika@google.com>
Signed-off-by: Daniel Hochman <danielhochman@users.noreply.github.com>
In Google our distributed build system ends up generating symlinks local
to the build cluster which are not valid when outputs are untarred
elsewhere. This tells tar to dereference those symlinks and instead
capture the file contents.

Signed-off-by: Trevor Schroeder <trevors@google.com>
It appears ubuntu updated gcc again

Risk Level: low
Testing: manual
Docs Changes: n/a
Release Notes: n.an

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
Signed-off-by: Yangmin Zhu <ymzhu@google.com>
Signed-off-by: Shakti <shaktiprakash.das@salesforce.com>
…ild rule that (envoyproxy#3764)

adds the required visibility rules and delegates the rest to the generic
api_proto_library.  I tested the change by doing the following without
getting errors.

./ci/run_envoy_docker.sh './ci/do_ci.sh docs'

I changed the BUILD files using the following commands.

/envoy/api$ find . -type f -name BUILD | xargs sed -i -e 's/api_proto_library(/api_proto_library_internal(/g'

envoy/api$ find . -type f -name BUILD | xargs sed -i -e 's/"api_proto_library"/"api_proto_library_internal"/g'

Signed-off-by: mickey <mickeyju@google.com>
Signed-off-by: Jimmy Song <rootsongjc@gmail.com>
…eaders (envoyproxy#3735)

Extending the mutateRequestHeaders to special case all upgrades, not just WebSocket.

Adding special handling for mutateResponse headers to do similar special casing of upgrade responses.

Changing the utility we use to determine if there is an upgrade header. The now removed caseInsensitiveContains had a bug where it would parse "upgrade: Websocket Keep-Alive" as a websocket upgrade. The existing Envoy::StringUtil::caseFindToken will parse that as one token but still handles "upgrade: Webocket, keep-alive" correctly.

Risk Level: Medium (changing existing websocket handling)
Testing: new unit tests, regression test for fixed bug.
Docs Changes: n/a
Release Notes: not added. We could note the bugfix if we think it noteworthy.
Part of envoyproxy#3301

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
Risk Level: n/a
Testing: updated the 2 lingering tests to better pass with v2.
Docs Changes: n/a
Release Notes: n/a

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
Signed-off-by: Nicolas Thiebaud <nicothieb@google.com>
Signed-off-by: Jose Nino <jnino@lyft.com>
…oyproxy#3777)

*Risk Level*: None
*Testing*: bazel test //test/...
*Docs Changes*: n/a
*Release Notes*: n/a

Signed-off-by: Piotr Sikora <piotrsikora@google.com>
Add ignore_unknown_fields option to parsing JSONs. This is needed since JSON is used to round-trip filter configuration structs, which means new filter config fields will cause older envoys to fail to accept the config.

Risk Level: Small. This change makes config parsing more lenient. The risk is in accepting incorrect config, but that is better handled by validation.

Testing: All unit tests pass, added a new regression test.

Docs Changes: None

Release Notes: Allow unknown fields in filter configuration.

Signed-off-by: Kuat Yessenov <kuat@google.com>
…on (envoyproxy#3773)

Changes the organization of code, but there are no functional changes in
this PR. I'm doing this in preparation for adding more code to the transport
and protocol implementations.

*Risk Level*: low
*Testing*: existing tests
*Docs Changes*: n/a
*Release Notes*: n/a

Signed-off-by: Stephan Zuercher <stephan@turbinelabs.io>
I was trying to debug a ci flake of uds integration test. Haven't managed to repo the flake even with 5k asan runs, but I figure it's worth allowing the parallelism.

Risk Level: n/a (test only)
Testing: uds test now runs with --runs_per_test > 1
Docs Changes: n/a
Release Notes: n/a

Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
This patch adds requestInfo():protocol() to StreamHandleWrapper. This
API returns the current HTTP protocol used by the request.

Signed-off-by: Dhi Aurrahman <dio@rockybars.com>
Implements an ExponentialBackOffStrategy that is used when Envoy retries management server connection.
Risk Level: Low
Testing: Added automated tests
Docs Changes: N/A
Release Notes: N/A
Fixes envoyproxy#3737

Signed-off-by: Rama <rama.rao@salesforce.com>
Signed-off-by: Vadim Eisenberg <vadime@il.ibm.com>
markatou and others added 30 commits July 27, 2018 16:14
Signed-off-by: Lilika Markatou <lilika@google.com>
Signed-off-by: Lilika Markatou <lilika@google.com>
Signed-off-by: Vishal Powar <vishalpowar@rodete-desktop-imager.corp.google.com>
This commit refactors setSocketOption to allow for returning the errno
that is captured as soon as the syscall is performed.

Signed-off-by: Venil Noronha <veniln@vmware.com>
Signed-off-by: Lilika Markatou <lilika@google.com>
Minor fixups for the xDS protocol documentation.

Signed-off-by: Nick Travers <n.e.travers@gmail.com>
Signed-off-by: kkloh98 <40446720+kkloh98@users.noreply.github.com>
Signed-off-by: Lilika Markatou <lilika@google.com>
The issue is due to on the crash of Envoy::Network::Utility::getAddressWithPort because of the invalid port_value. Added max constraint validate rule to the port_value field.

Risk Level: Low

Testing: Tested unit tests (bazel test //test/server/config_validation:config_fuzz_test), built and ran fuzzers with oss-fuzz.

Signed-off-by: Anirudh M <m.anirudh18@gmail.com>
This commit replaces std::tuple with Api::SysCallResult in the buffer
API and implementations.

Signed-off-by: Venil Noronha <veniln@vmware.com>
)

Converts TcpProxy::Filter and WebSocket::WsHandlerImpl to use
Tcp::ConnectionPool to obtain connections. Much of the stats
handling and connection timeouts are handled by the connection
pool.

Stats were manually verified by comparing stats produced by
the tcp_proxy_integration_test with and without the connection
pool change.

*Risk Level*: medium
*Testing*: unit/integration testing
*Docs Changes*: n/a
*Release Notes*: n/a

Signed-off-by: Stephan Zuercher <stephan@turbinelabs.io>
Signed-off-by: Michael Payne <michael@sooper.org>
Signed-off-by: Elisha Ziskind <eziskind@google.com>
Signed-off-by: Anirudh M <m.anirudh18@gmail.com>
This change introduces a new configuration parameter for clusters,
`time_between_updates`.

If this is set, all cluster updates — membership changes, metadata
changes on endpoints, or healtcheck state changes — that happen
within a `time_between_updates` duration will be merged and delivered
at once when the duration ends.

This is useful for big clusters (> 1k endpoints) using the subset LB.

Partially addresses envoyproxy#3929.

Signed-off-by: Raul Gutierrez Segales <rgs@pinterest.com>
Signed-off-by: Lizan Zhou <zlizan@google.com>
Signed-off-by: Lilika Markatou <lilika@google.com>
…tion/fake_upstream.h. (envoyproxy#3936)

Signed-off-by: Michael Behr <mkbehr@google.com>
Signed-off-by: Lilika Markatou <lilika@google.com>
Signed-off-by: Lilika Markatou <lilika@google.com>
Signed-off-by: Lilika Markatou <lilika@google.com>
Signed-off-by: Lilika Markatou <lilika@google.com>
Signed-off-by: Lilika Markatou <lilika@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.