-
Notifications
You must be signed in to change notification settings - Fork 333
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
Should http and http2 infer common protocol to be tcp? #2445
Comments
// a common protocol between HTTP and HTTP2 is HTTP2,
...
// a common protocol between HTTP and HTTP2 is HTTP. Only one of these can be true.
Maybe it makes sense in terms of protocol layering, but it makes no sense semantically. Any server that is offering a http/2 service can offer the same service on http, as only the wire protocol is different.
I agree that we don't want to downgrade to TCP. I'm not sure what the protocol tag is supposed to mean in these cases. If the application can't handle HTTP/2 that doesn't mean that the mesh can't still speak HTTP/2 over the wire. |
It makes sense indeed that the mesh could talk http/2 and the only needed downgrade is between the instance and the proxy. It seems like the only place where we need to make a difference between http and http/2 is in the For outbound things already happen correctly by simply forcing http2 (at least for http). |
This issue was inactive for 30 days it will be reviewed in the next triage meeting and might be closed. |
This issue was inactive for 30 days it will be reviewed in the next triage meeting and might be closed. |
This issue was inactive for 30 days it will be reviewed in the next triage meeting and might be closed. |
Here's the use-case where this causes problem:
This code is used both for configuring the Listener and the Cluster. So it seems we need 2 things:
@jakubdyszkiewicz WDYT? |
|
@lahabana any more info on this? Should we plan to look at this/hand as an on duty task? |
Yes I think so. I'm also unclear why |
For specific DP proxy, you don't need to do any inference on inbound side, you have an explicit protocol in |
Question for triage: Feels like we have a path forward now right? |
Triage: We don’t need any inference on the inbound side (it’s already annotated on the DPP). See #2445 (comment) for the rest. |
This issue was inactive for 90 days. It will be reviewed in the next triage meeting and might be closed. |
This issue was inactive for 90 days. It will be reviewed in the next triage meeting and might be closed. |
This issue was inactive for 90 days. It will be reviewed in the next triage meeting and might be closed. |
This issue was inactive for 90 days. It will be reviewed in the next triage meeting and might be closed. |
In this
kuma/pkg/xds/generator/protocol.go
Lines 23 to 54 in 6c62248
However, this is used in 2 places:
generateCDS()
kuma/pkg/xds/generator/outbound_proxy_generator.go
Lines 173 to 220 in ba6bebe
In this case it looks it should be using the protocol of the specific cluster and not infer the protocol from all the clusters.
generateLDS()
kuma/pkg/xds/generator/outbound_proxy_generator.go
Lines 91 to 171 in ba6bebe
Where it treats http and http2 the same way.
For (1) it seems that we could configure the cluster with AutoHttpConfig (
ALPN
) in the case where a cluster has a mix of http and http2 endpoints (which seems to be a rare usecase at the cluster level).It might good enough to introduce a
ProtocolHttpX
and then handle on a case by case where it makes sense. I think this would be a better behaviour than risking downgrading to TCP when things would work the same for HTTP and HTTP2.The text was updated successfully, but these errors were encountered: