turn inbound proxy back into a proxy#516
Merged
hawkw merged 12 commits intomaster-tokio-0.2from May 18, 2020
Merged
Conversation
Contributor
Author
|
this compiles but there appear to be some (new!) test failures, which is cool and fun! |
hawkw
added a commit
that referenced
this pull request
May 14, 2020
It turns out that most of the tests that can be re-enabled as a result of #516 expect URIs to be normalized. Therefore, I ported the `normalize_uri` layer to std::future. This is a pretty mechanical translation. Signed-off-by: Eliza Weisman <[email protected]>
hawkw
added a commit
that referenced
this pull request
May 14, 2020
It turns out that most of the tests that can be re-enabled as a result of #516 expect URIs to be normalized. Therefore, I ported the `normalize_uri` layer to std::future. This is a pretty mechanical translation. Signed-off-by: Eliza Weisman <[email protected]>
Signed-off-by: Eliza Weisman <[email protected]>
Signed-off-by: Eliza Weisman <[email protected]>
Signed-off-by: Eliza Weisman <[email protected]>
Signed-off-by: Eliza Weisman <[email protected]>
Signed-off-by: Eliza Weisman <[email protected]>
Signed-off-by: Eliza Weisman <[email protected]>
Signed-off-by: Eliza Weisman <[email protected]>
Signed-off-by: Eliza Weisman <[email protected]>
Signed-off-by: Eliza Weisman <[email protected]>
Signed-off-by: Eliza Weisman <[email protected]>
39a3fb5 to
1755e2d
Compare
olix0r
approved these changes
May 15, 2020
Member
olix0r
left a comment
There was a problem hiding this comment.
No hard blockers. Especially curious about the connection transport though.
Signed-off-by: Eliza Weisman <[email protected]>
Signed-off-by: Eliza Weisman <[email protected]>
hawkw
added a commit
that referenced
this pull request
May 26, 2020
This branch turns the outbound side of the proxy back into a real proxy, similarly to what #516 did for the inbound side. Getting outbound to work again was somewhat more complex, since the outbound side also requires the load balancer (and, therefore, discovery). In order to get this all working, it was also necessary to update the `linkerd2-request-filter` crate (which was quite trivial), as it's necessary for the resolver to work, and to make some changes in the resolver so that all trait bounds were satisfied. In addition, now that both inbound and outbound work, we're now able to re-enable a large amount of the integration tests in the `transparency` and `discovery` modules. Some of these tests are still disabled, as they either depend on service profiles, HTTP upgrades and orig-proto, or header maniuplation, all of which have yet to be updated. Signed-off-by: Eliza Weisman <[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.
Now that the HTTP connect- and accept-side machinery has all been
updated to use
std::future, we can start turning the proxy backinto...a proxy. This branch does so on the inbound side. Much of the
actual functionality (approximately everything not directly required to
actually proxy requests) is still disabled, as a lot of the code still
needs to be updated.
I had to make a few additional changes in order to get the proxy to
compile, primarily to deal with trait bounds on
Serviceimpls thatwere no longer satisfied as a result of changes made to update other
parts of the codebase. I also disabled two more of the
transparencyintegration tests, both of which tested whether the proxy stripped
connection-level headers from proxied requests. Previously, these were
passing "accidentally" — because the proxy was replaced with a HTTP
server that just responded to every request with an empty 200 OK
response, the headers were, of course, not present. Now that we're
actually proxying requests, these tests fail, because the code for
stripping headers has yet to be updated.
Signed-off-by: Eliza Weisman [email protected]