Make outbound router honor l5d-dst-override header#173
Merged
hawkw merged 8 commits intolinkerd:masterfrom Jan 19, 2019
kleimkuhler:eliza/dst-override-header
Merged
Make outbound router honor l5d-dst-override header#173hawkw merged 8 commits intolinkerd:masterfrom kleimkuhler:eliza/dst-override-header
l5d-dst-override header#173hawkw merged 8 commits intolinkerd:masterfrom
kleimkuhler:eliza/dst-override-header
Conversation
Signed-off-by: Eliza Weisman <[email protected]>
Signed-off-by: Kevin Leimkuhler <[email protected]>
Signed-off-by: Kevin Leimkuhler <[email protected]>
Signed-off-by: Kevin Leimkuhler <[email protected]>
Contributor
|
🙌 🙌 |
hawkw
reviewed
Jan 17, 2019
seanmonstar
reviewed
Jan 17, 2019
Signed-off-by: Kevin Leimkuhler <[email protected]>
hawkw
reviewed
Jan 17, 2019
Signed-off-by: Kevin Leimkuhler <[email protected]>
olix0r
reviewed
Jan 17, 2019
Signed-off-by: Kevin Leimkuhler <[email protected]>
olix0r
approved these changes
Jan 18, 2019
Signed-off-by: Kevin Leimkuhler <[email protected]>
4 tasks
hawkw
added a commit
to linkerd/linkerd2
that referenced
this pull request
Jan 24, 2019
proxy: update pinned version to 5b507a9 This picks up the following proxy commits: * eaabc48 Update tower-grpc * e9561de Update h2 to 0.1.16 * 28fd5e7 Add Route timeouts (linkerd/linkerd2-proxy#165) * 5637372 Re-flag tcp_duration tests as flaky * 20cbd18 Revise several log levels and messages (linkerd/linkerd2-proxy##177) * ae16978 Remove flakiness from 'profiles' tests * 49c29cd canonicalize: Only log errors at the WARN level when falling back (linkerd/linkerd2-proxy#174) * 486dd13 Make outbound router honor `l5d-dst-override` header (linkerd/linkerd2-proxy#173) * 7adc50d Make timeouts for canonicalization DNS queries tuneable (linkerd/linkerd2-proxy#175) * 3188179 Try reducing CI flakiness by reducing RUST_TEST_THREADS to 1 Some of these changes will probably need changelog entries: * Improve logging when rejecting malformed HTTP/2 pseudo-headers (hyperium/h2#347) * Improve logging for gRPC errors (tower-rs/tower-grpc#111) * Add Route timeouts (linkerd/linkerd2-proxy#165) * Downgrade several of the noisiest log messages to TRACE (linkerd/linkerd2-proxy##177) * Add an environment variable for configuring the DNS canonicalization timeout (linkerd/linkerd2-proxy#175) * Make outbound router honor `l5d-dst-override` header (linkerd/linkerd2-proxy#173) Perhaps all the logging related changes can be grouped into one changelog entry, though... Signed-off-by: Eliza Weisman <[email protected]>
hawkw
added a commit
to linkerd/linkerd2
that referenced
this pull request
Jan 24, 2019
This picks up the following proxy commits: * eaabc48 Update tower-grpc * e9561de Update h2 to 0.1.16 * 28fd5e7 Add Route timeouts (linkerd/linkerd2-proxy#165) * 5637372 Re-flag tcp_duration tests as flaky * 20cbd18 Revise several log levels and messages (linkerd/linkerd2-proxy##177) * ae16978 Remove flakiness from 'profiles' tests * 49c29cd canonicalize: Only log errors at the WARN level when falling back (linkerd/linkerd2-proxy#174) * 486dd13 Make outbound router honor `l5d-dst-override` header (linkerd/linkerd2-proxy#173) * 7adc50d Make timeouts for canonicalization DNS queries tuneable (linkerd/linkerd2-proxy#175) * 3188179 Try reducing CI flakiness by reducing RUST_TEST_THREADS to 1 Some of these changes will probably need changelog entries: * Improve logging when rejecting malformed HTTP/2 pseudo-headers (hyperium/h2#347) * Improve logging for gRPC errors (tower-rs/tower-grpc#111) * Add Route timeouts (linkerd/linkerd2-proxy#165) * Downgrade several of the noisiest log messages to TRACE (linkerd/linkerd2-proxy##177) * Add an environment variable for configuring the DNS canonicalization timeout (linkerd/linkerd2-proxy#175) * Make outbound router honor `l5d-dst-override` header (linkerd/linkerd2-proxy#173) Perhaps all the logging related changes can be grouped into one changelog entry, though... Signed-off-by: Eliza Weisman <[email protected]>
sprt
pushed a commit
to sprt/linkerd2-proxy
that referenced
this pull request
Aug 30, 2019
The conduit dashboard command asychronously shells out and runs "kubectl proxy". This change replaces the shelling out with calls to kubernetes proxy APIs. It also allows us to enable race detection in our go tests, as the shell out code tests did not pass race detection. Fixes linkerd#173 Signed-off-by: Andrew Seigner <[email protected]>
sprt
pushed a commit
to sprt/linkerd2-proxy
that referenced
this pull request
Aug 30, 2019
We previously did not have race detection enabled because our tests would fail. Following linkerd#249, this is no longer the case. Enable race detection in ci and build instructions. This change also fixes client_test.go attempting to allocate a 2GB buffer due to bad test input. Fixes linkerd#173 Signed-off-by: Andrew Seigner <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
It is valuable to inject an ingress controller with LD2. As ingress, the host
header tends to be the external host and most controllers just route directly
back to the IP address of an endpoint. Unfortunately, this makes it so that
Linkerd cannot discover the destination (as that works off the host header).
Solution
The outbound router now recognizes request destinations by preferrentially
choosing the
l5d-dst-overrideheader if it present. This header takesprecedent over the Host header, original dest, etc.
In addition, both the inbound and outbound routers strip this header. The
outbound router strips it after it has used it to determine the authority.
This is done with the
strip_headerlayer that was added to the stack.Validation
There are integration tests for this behavior in the discovery tests. There
are tests for http1 and http2. The tests test the following scenarios:
Fixes linkerd/linkerd2#1998
Co-Authored-By: Eliza Weisman [email protected]
Signed-off-by: Kevin Leimkuhler [email protected]