Skip to content

network: TCP proxying over HTTP POST#14552

Merged
lizan merged 61 commits intoenvoyproxy:mainfrom
wlhee:main
Feb 2, 2021
Merged

network: TCP proxying over HTTP POST#14552
lizan merged 61 commits intoenvoyproxy:mainfrom
wlhee:main

Conversation

@wlhee
Copy link
Copy Markdown
Contributor

@wlhee wlhee commented Jan 3, 2021

Commit Message: Add support proxying TCP over HTTP/2 or HTTP/1.1 POST to tcp_proxy. It's controlled by tcp_proxy filter configuration. Also add support adding additional headers to the proxy requests to coordinate with the upstream. In addition, add allo_post config to router, which allow triggering the regular TCP decaping from a POST request payload.

Additional Description: N/A

Risk Level: Low

Testing: Unit tests. Integration tests.

Docs Changes: Added

Release Notes: Added

Platform Specific Features: N/A

Fixes #14234

cc @alyssawilk @mattklein123

@repokitteh-read-only
Copy link
Copy Markdown

CC @envoyproxy/api-shepherds: Your approval is needed for changes made to api/envoy/.
API shepherd assignee is @lizan
CC @envoyproxy/api-watchers: FYI only for changes made to api/envoy/.

🐱

Caused by: #14552 was opened by wlhee.

see: more, trace.

@wlhee
Copy link
Copy Markdown
Contributor Author

wlhee commented Jan 3, 2021

This PR is WIP.

Would appreciate feedback about API and naming conversion first.

@wlhee
Copy link
Copy Markdown
Contributor Author

wlhee commented Jan 4, 2021

/retest

@repokitteh-read-only
Copy link
Copy Markdown

Retrying Azure Pipelines:
Check envoy-presubmit didn't fail.

🐱

Caused by: a #14552 (comment) was created by @wlhee.

see: more, trace.

Copy link
Copy Markdown
Contributor

@alyssawilk alyssawilk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice start! Tossing in some other comments while I'm looking. :-)

@alyssawilk alyssawilk self-assigned this Jan 5, 2021
Copy link
Copy Markdown
Member

@mattklein123 mattklein123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a few high level comments to get started!

/wait

@repokitteh-read-only
Copy link
Copy Markdown

CC @envoyproxy/api-shepherds: Your approval is needed for changes made to (api/envoy[\w/]*/(v1alpha\d?|v1|v2alpha\d?|v2))|(api/envoy/type/(matcher/)?\w+.proto).

🐱

Caused by: #14552 was synchronize by wlhee.

see: more, trace.

@wlhee
Copy link
Copy Markdown
Contributor Author

wlhee commented Jan 12, 2021

This PR is ready for a second round of review.

@mattklein123
Copy link
Copy Markdown
Member

From an API perspective this LGTM at a high level. Can you merge main branch and we can take another look?

/wait

@wlhee
Copy link
Copy Markdown
Contributor Author

wlhee commented Jan 13, 2021

Rebased.

Copy link
Copy Markdown
Contributor

@alyssawilk alyssawilk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I think the structure of this is much cleaner without the filter. Thanks for that clean up!
Here's a few more thoughts, and we can go from there :-)

@mattklein123 mattklein123 removed their assignment Jan 13, 2021
@wlhee
Copy link
Copy Markdown
Contributor Author

wlhee commented Jan 14, 2021

Updated the PR to support HTTP/1.1 POST as suggested.

@alyssawilk
Copy link
Copy Markdown
Contributor

Cool! want to check out CI, and add the integration tests we talked about, and I'll take another look?

wlhee added 6 commits February 1, 2021 14:46
Signed-off-by: Wenlei (Frank) He <wlhe@google.com>
Signed-off-by: Wenlei (Frank) He <wlhe@google.com>
Signed-off-by: Wenlei (Frank) He <wlhe@google.com>
Signed-off-by: Wenlei (Frank) He <wlhe@google.com>
Signed-off-by: Wenlei (Frank) He <wlhe@google.com>
Signed-off-by: Wenlei (Frank) He <wlhe@google.com>
wlhee added 4 commits February 1, 2021 14:48
Signed-off-by: Wenlei (Frank) He <wlhe@google.com>
Signed-off-by: Wenlei (Frank) He <wlhe@google.com>
Signed-off-by: Wenlei (Frank) He <wlhe@google.com>
@wlhee
Copy link
Copy Markdown
Contributor Author

wlhee commented Feb 2, 2021

/retest

@repokitteh-read-only
Copy link
Copy Markdown

Retrying Azure Pipelines:
Check envoy-presubmit isn't fully completed, but will still attempt retrying.
Retried failed jobs in: envoy-presubmit

🐱

Caused by: a #14552 (comment) was created by @wlhee.

see: more, trace.

@wlhee
Copy link
Copy Markdown
Contributor Author

wlhee commented Feb 2, 2021

/retest

@repokitteh-read-only
Copy link
Copy Markdown

Retrying Azure Pipelines:
Retried failed jobs in: envoy-presubmit

🐱

Caused by: a #14552 (comment) was created by @wlhee.

see: more, trace.

@wlhee
Copy link
Copy Markdown
Contributor Author

wlhee commented Feb 2, 2021

CI seems very unstable recently. I just resolved the conflict of the version history, then multiple checks are failing :(

@wlhee
Copy link
Copy Markdown
Contributor Author

wlhee commented Feb 2, 2021

/retest

@repokitteh-read-only
Copy link
Copy Markdown

Retrying Azure Pipelines:
Retried failed jobs in: envoy-presubmit

🐱

Caused by: a #14552 (comment) was created by @wlhee.

see: more, trace.

@wlhee
Copy link
Copy Markdown
Contributor Author

wlhee commented Feb 2, 2021

CI is green now.

Copy link
Copy Markdown
Contributor

@alyssawilk alyssawilk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lizan can you re-stamp API and merge?

@repokitteh-read-only repokitteh-read-only bot removed the api label Feb 2, 2021
@lizan lizan merged commit effa486 into envoyproxy:main Feb 2, 2021
@wuhuizuo
Copy link
Copy Markdown

@wlhee any example codes(like C/go/rust) for setting up the connecttions to remote envoy POST terminater?

@rtttech
Copy link
Copy Markdown

rtttech commented Apr 19, 2021

It's really awesome, how can I use this feature in istio?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support TCP Proxy over HTTP/2 POST (Encap and Decap)

7 participants