gateway-api icon indicating copy to clipboard operation
gateway-api copied to clipboard

WebSocket protocol support

Open jpeach opened this issue 5 years ago • 8 comments

This issue is closely related to #204.

There should be a way for applications to indicate that they want WebSocket streams for HTTP/1.1 or HTTP/2.

One way to do this could be a WebSocketRoute as a peer to HTTPRoute. Another way cold be to add a field somewhere under the HTTPRoute API.

Some ingress controllers implement this by a flag on the HTTP virtual host or forwarding route (e.g. Contour puts it on the Route).

jpeach avatar Jun 04 '20 02:06 jpeach

Issues go stale after 90d of inactivity. Mark the issue as fresh with /remove-lifecycle stale. Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta. /lifecycle stale

fejta-bot avatar Sep 02 '20 02:09 fejta-bot

/remove-lifecycle stale

Not stale, but also not for v1alpha1.

jpeach avatar Sep 04 '20 02:09 jpeach

Issues go stale after 90d of inactivity. Mark the issue as fresh with /remove-lifecycle stale. Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta. /lifecycle stale

fejta-bot avatar Dec 03 '20 02:12 fejta-bot

Stale issues rot after 30d of inactivity. Mark the issue as fresh with /remove-lifecycle rotten. Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta. /lifecycle rotten

fejta-bot avatar Jan 02 '21 03:01 fejta-bot

/remove-lifecycle rotten /lifecycle frozen

hbagdi avatar Jan 12 '21 09:01 hbagdi

Any progress on this? Seems like an essential feature.

masus04 avatar Jul 21 '22 07:07 masus04

There's been no progress that I'm personally aware of. If you have a strong interest and use case it might be worth joining the monday night community meeting and bringing this one up for discussion :thinking:

shaneutt avatar Jul 21 '22 18:07 shaneutt

So as it turns out, there's some discussion about this going on in #1244. I'm going to mark this as help wanted as we need an owner to drive this forward (hopefully as a direct result of that discussion).

shaneutt avatar Jul 21 '22 21:07 shaneutt

Given that this has been marked help wanted for a long time without anyone with a strong interest to champion it and move it forward, it doesn't seem like we've got any momentum behind this currently. As such we'll consider this closed as "not planned" for the moment. This doesn't mean we'll never do it it just means it doesn't currently have any priority: if you're interested in taking this issue on and moving it forward please comment here and we would be happy to re-open it.

shaneutt avatar Mar 21 '23 16:03 shaneutt

@shaneutt this falls under the backend properties

https://gateway-api.sigs.k8s.io/geps/gep-1282/

I would reopen this

dprotaso avatar Mar 21 '23 17:03 dprotaso

/reopen

dprotaso avatar Mar 22 '23 19:03 dprotaso

@dprotaso: Reopened this issue.

In response to this:

/reopen

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

k8s-ci-robot avatar Mar 22 '23 19:03 k8s-ci-robot

some implementations like Envoy Gateway and Istio have web socket upgrade enabled by default for HTTP 1.1

arkodg avatar Mar 22 '23 19:03 arkodg

@dprotaso are you specifically interested in driving this forward, may we assign you?

shaneutt avatar Mar 22 '23 20:03 shaneutt

Yup please do - I'm going to try tackling specifying backend protocol which would cover this

dprotaso avatar Mar 22 '23 20:03 dprotaso

Awesome, thank you! Let us know how we can support you in your efforts :vulcan_salute:

/assign @dprotaso

shaneutt avatar Mar 23 '23 13:03 shaneutt

We want this feature, but just a heads up @dprotaso we consider it low priority until v1.0.0/GA is complete and don't believe we will have bandwidth for it until then.

shaneutt avatar Apr 05 '23 22:04 shaneutt

I'm hoping this can be covered by - https://github.com/kubernetes-sigs/gateway-api/issues/1911

dprotaso avatar Apr 05 '23 22:04 dprotaso

For those following I created a GEP PR that I believe would https://github.com/kubernetes-sigs/gateway-api/pull/1979 address this issue. PTAL with and leave comments.

dprotaso avatar Apr 27 '23 20:04 dprotaso

From the GEP-1911 discussion folks seem onboard with using the K8s appProtocol as the mechanic to specify upstream protocol. I have yet to rewrite the GEP but I've created an k8s/enhancement (https://github.com/kubernetes/enhancements/pull/3996) to see if we can define kubernetes.io/websocket and kubernetes.io/websocket-secure

dprotaso avatar May 10 '23 19:05 dprotaso