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

GRPC Web Support #4210

Closed
jakepoz opened this issue Nov 19, 2018 · 13 comments · Fixed by #9451
Closed

GRPC Web Support #4210

jakepoz opened this issue Nov 19, 2018 · 13 comments · Fixed by #9451
Labels
area/server kind/enhancement a new or improved feature. priority/P2 need to be fixed in the future status/5-frozen-due-to-age
Milestone

Comments

@jakepoz
Copy link

jakepoz commented Nov 19, 2018

Do you want to request a feature or report a bug?

Feature

What did you expect to see?

We would like to support some services that use the new GRPC-Web protocol.

https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-WEB.md

Currently it seems that only Envoy is capable of proxying GRPC-Web traffic.

More info: https://medium.com/google-cloud/grpc-over-browser-javascript-using-grpc-web-on-google-kubernetes-engine-ingress-740789b811e8

@ldez ldez added kind/enhancement a new or improved feature. priority/P2 need to be fixed in the future area/server and removed status/0-needs-triage labels Nov 20, 2018
@jvmlet
Copy link

jvmlet commented Sep 29, 2019

Is there any progress with this feature ? Supporting grpc web would be a great addition for traefik portfolio.

@Jarzamendia
Copy link

Yeah, we are now using an Envoy proxy to support gRPC Web with Traefki like a Edge proxy. It's a good update to remove Envoy proxy and only use traefik!

@pjsikora
Copy link

Hey!

Is it related with Traefik in version 1 or 2? Is there any option to use gRPC web in Traefik 2?
Currently we are using Envoy but it would be great to move to Traefik!

Thanks in advance for any tip in this area.

@TannerYoung
Copy link

@Jarzamendia

Do you have any documentation on how you're doing this exactly? I'm not familiar at all with envoy, and would greatly appreciate any documentation, or example (especially docker-compose)

Thanks

@nadilas
Copy link

nadilas commented Jan 26, 2020

I have been meaning to change over to using Traefik for a while now and today I managed to re-implement all our routers. Without checking grpc-web support in advance... So I began experimenting in our test environment and managed to get past the inital CORS error. Which means now the backend cannot handle the request (500 - Internal Server Error) obviously.

I can imagine two ways how I can proceed with this, but not knowing the current status of this feature request I am quite unsure:

  1. One option would be to add grpc-web support within the backend service and create a separate route for grpc-web requests. Seems reasonable although I'm not certain if server streaming response would work.
  2. An even nicer solution would be to have a grpc-web transformer middleware, which add to a separate router and point it directly at the original backend code.

@ldez Before I do anything or abandon Traefik for now, I wanted to ask you what the status on this topic is? Is there any progress being made? Can you contribute somehow?

@Jarzamendia
Copy link

Jarzamendia commented Jan 26, 2020

@TannerYoung

I did a lab on this a while ago, I'm going to send it to git to show you. I haven't done any troughput tests in production yet. Using only Traefik, I have had good results in the infrastructure I use. I still have to test Envoy better.
My lab is in: https://github.com/Jarzamendia/traefik/tree/master/1.7.x/GRPC/GRPC-WEB

@nadilas
Copy link

nadilas commented Jan 27, 2020

Just thinking about this, can we not make use of this grpcwebproxy within https://github.com/containous/traefik/blob/829649e905700ba6f80313e466362c0dd65f32a4/pkg/server/service/service.go#L170 ?

Pretty sure there's more to this, but it does seem like a good start? Granted that would require an additional parameter on either Service or ServersLoadBalancer to turn the feature on/off which might not be ideal.

@saeid-ir
Copy link

Is there any update for this feature?

@JaneJeon
Copy link

Almost 3 years since the issue was opened. Looks like this one isn't getting looked at...

@The-Judge

This comment was marked as spam.

@thientu
Copy link

thientu commented Jun 28, 2022

This issue is still open

@zs-dima
Copy link

zs-dima commented Jun 28, 2022

Going to celebrate the issue anniversary soon.

@kahirokunn

This comment was marked as spam.

@juliens juliens mentioned this issue Oct 18, 2022
1 task
@traefiker traefiker added this to the next milestone Oct 27, 2022
@traefik traefik locked and limited conversation to collaborators Nov 27, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area/server kind/enhancement a new or improved feature. priority/P2 need to be fixed in the future status/5-frozen-due-to-age
Projects
None yet
Development

Successfully merging a pull request may close this issue.