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

L4 Support #47

Closed
danehans opened this issue Apr 29, 2022 · 14 comments
Closed

L4 Support #47

danehans opened this issue Apr 29, 2022 · 14 comments
Assignees
Labels
area/translator Issues related to Gateway's translation service, e.g. translating Gateway APIs into the IR. area/xds-server Issues related to the xDS Server used for managing Envoy configuration. documentation Improvements or additions to documentation kind/enhancement New feature or request priority/medium Label used to express the "medium" priority level provider/kubernetes Issues related to the Kubernetes provider
Milestone

Comments

@danehans
Copy link
Contributor

During the 4/29/21 community meeting, support for L4 support, e.g. TCPRoute was discussed. The community should come to an agreement on if L4 should be supported and if so, how.

@danehans
Copy link
Contributor Author

@youngnick PTAL when you have a moment. Feel free to provide input and any relevant xref's as needed.

@danehans
Copy link
Contributor Author

From my understanding most Gateway API implementations have been L7 support only, e.g. HTTPRoute.

xref a MetalLB issue I created on this topic: metallb/metallb#847

@danehans danehans added the kind/question Further information is requested label Apr 29, 2022
@youngnick
Copy link
Contributor

In short, my experience has been that implementing TCPRoute and UDPRoute (that is, doing Layer 4 forwarding) inside a Kubernetes cluster is difficult because, to have it work the way users expect requires tight coordination with the CNI and routing tables, which I think is beyond the scope of this project.

An implementation that fills the functions of an Ingress controller, and implements HTTPRoute and TLSRoute, can be done using Envoy proxy as it exists today, without requiring anything other than a way to expose the proxy containers to the internet (which can be as simple as a Service of Type LoadBalancer, a NodePort, or other method.) That's this project. 😄

@danehans danehans added kind/enhancement New feature or request documentation Improvements or additions to documentation labels May 2, 2022
@moderation
Copy link

@youngnick Not supporting the TCPRoute and UDPRoute in the Gateway API spec is consistent with Contour's approach - projectcontour/contour#1248

However there have been numerous requests in the community to support UDPRoute particularly for voice applications. The Istio issue is istio/istio#1430

If the view is that Envoy Gateway can't support the TCPRoute or UDPRoute route resources, should the upstream work in the Kubernetes SIG Gateway API remove these routes from the specification?

According to the Implementations page, NGINX Kubernetes Gateway and Traefik plan on supporting UDPRoute

@mattklein123
Copy link
Member

I would definitely like to see both TCP and UDP implemented by this project, so let's discuss after the initial HTTP bootstrapping work is done. Having both TCP and UDP support is a consistent customer request.

@adamdunstan
Copy link

@youngnick Perhaps Im missing something but I dont understand the issue you describe? In an ingress its just bypassing kubeproxy just like httpRoute would? Service LoadBalancers bypass kubeproxy when externalTrafficPolicy is set to Local. I would think a complete gateway implementation would support all 3 route types?

@mattklein123
Copy link
Member

I would think a complete gateway implementation would support all 3 route types?

Per my comment above we will definitely support all 3 types in this project. Where it lands on the roadmap I'm not sure. Let's see how things evolve and who wants to work on what.

@github-actions
Copy link

github-actions bot commented Jul 1, 2022

This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or "no stalebot" or other activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale label Jul 1, 2022
@github-actions
Copy link

github-actions bot commented Jul 8, 2022

This issue has been automatically closed because it has not had activity in the last 37 days. If this issue is still valid, please ping a maintainer and ask them to label it as "help wanted" or "no stalebot". Thank you for your contributions.

@github-actions github-actions bot closed this as completed Jul 8, 2022
@arkodg arkodg reopened this Sep 7, 2022
@arkodg arkodg removed the stale label Sep 7, 2022
@arkodg arkodg modified the milestones: 0.3.0, 0.3.0-rc1 Sep 29, 2022
@arkodg arkodg added the help wanted Extra attention is needed label Oct 20, 2022
@danehans
Copy link
Contributor Author

xref #646 for adding UDPRoute support.

@danehans danehans added priority/medium Label used to express the "medium" priority level and removed help wanted Extra attention is needed kind/question Further information is requested labels Nov 3, 2022
@danehans danehans self-assigned this Nov 8, 2022
@danehans
Copy link
Contributor Author

danehans commented Nov 8, 2022

Note: This is a tracking issue and separate issues/PRs are used for specific L4 protocol support. I assigned myself this issue to track the overall progress of L4 support.

@danehans danehans added the area/translator Issues related to Gateway's translation service, e.g. translating Gateway APIs into the IR. label Nov 8, 2022
@danehans danehans added area/xds-server Issues related to the xDS Server used for managing Envoy configuration. provider/kubernetes Issues related to the Kubernetes provider labels Nov 8, 2022
@github-actions
Copy link

github-actions bot commented Dec 9, 2022

This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or "no stalebot" or other activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale label Dec 9, 2022
@arkodg arkodg removed the stale label Dec 9, 2022
@danehans
Copy link
Contributor Author

danehans commented Jan 5, 2023

This can be closed when UDPRoute and TCProute support are added.

@arkodg
Copy link
Contributor

arkodg commented Jan 6, 2023

closing this since UDPRoute and TCPRoute support is in

@arkodg arkodg closed this as completed Jan 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/translator Issues related to Gateway's translation service, e.g. translating Gateway APIs into the IR. area/xds-server Issues related to the xDS Server used for managing Envoy configuration. documentation Improvements or additions to documentation kind/enhancement New feature or request priority/medium Label used to express the "medium" priority level provider/kubernetes Issues related to the Kubernetes provider
Projects
None yet
Development

No branches or pull requests

6 participants