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

GRPCRoute: Not supported by HTTP Listener. #4273

Closed
1 task done
parkjeongryul opened this issue Jul 5, 2023 · 1 comment · Fixed by #5128
Closed
1 task done

GRPCRoute: Not supported by HTTP Listener. #4273

parkjeongryul opened this issue Jul 5, 2023 · 1 comment · Fixed by #5128
Assignees
Labels
bug Something isn't working
Milestone

Comments

@parkjeongryul
Copy link
Contributor

parkjeongryul commented Jul 5, 2023

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

I want to use grpcroute with http listener, but It seems to be supported only by https listeners.
We need grpcroute with http listener, because our servers do not use TLS.

I think grpcroute of kong implementation is supported only with HTTPS protocol listener.

name: "only HTTPS protocol specified",
listener: Listener{
Protocol: HTTPSProtocolType,
},
expectedSupportedKinds: []gatewayv1beta1.RouteGroupKind{
builder.NewRouteGroupKind().HTTPRoute().Build(),
builder.NewRouteGroupKind().GRPCRoute().Build(),
},
resolvedRefsReason: gatewayv1beta1.ListenerReasonResolvedRefs,
},

Kong implementation also needs to support grpcroute in http listener to pass conformance test.

https://github.com/kubernetes-sigs/gateway-api/pull/1884/files#diff-ebf60a20929a3769f60735ad57988fc4fafe3a7abd9aaa967ea8baf0a8408be3R1-R37

Expected Behavior

GRPCRoute should be supported by HTTP Listener.

Steps To Reproduce

1. Create gateway resource using http listener.
2. Create grpcroute resource referencing this gateway.

Ingress Controller logs

time="2023-05-03T11:18:25+09:00" level=info msg="processing grpcroute" GatewayV1Alpha2GRPCRoute="{\"Namespace\":\"clous-jrpark-green-2304061502\",\"Name\":\"clous-search-grpc\"}" logger=controllers.GRPCRoute name=clous-search-grpc namespace=clous-jrpark-green-2304061502
time="2023-05-03T11:18:25+09:00" level=info msg="checking deletion timestamp" GatewayV1Alpha2GRPCRoute="{\"Namespace\":\"clous-jrpark-green-2304061502\",\"Name\":\"clous-search-grpc\"}" logger=controllers.GRPCRoute name=clous-search-grpc namespace=clous-jrpark-green-2304061502
time="2023-05-03T11:18:25+09:00" level=info msg="retrieving GatewayClass and Gateway for route" GatewayV1Alpha2GRPCRoute="{\"Namespace\":\"clous-jrpark-green-2304061502\",\"Name\":\"clous-search-grpc\"}" logger=controllers.GRPCRoute name=clous-search-grpc namespace=clous-jrpark-green-2304061502
time="2023-05-03T11:18:25+09:00" level=info msg="checking if the grpcroute's gateways are ready" GatewayV1Alpha2GRPCRoute="{\"Namespace\":\"clous-jrpark-green-2304061502\",\"Name\":\"clous-search-grpc\"}" logger=controllers.GRPCRoute name=clous-search-grpc namespace=clous-jrpark-green-2304061502
time="2023-05-03T11:18:25+09:00" level=info msg="ensuring status contains Gateway associations" GatewayV1Alpha2GRPCRoute="{\"Namespace\":\"clous-jrpark-green-2304061502\",\"Name\":\"clous-search-grpc\"}" logger=controllers.GRPCRoute name=clous-search-grpc namespace=clous-jrpark-green-2304061502
time="2023-05-03T11:18:25+09:00" level=info msg="grpcroute not configured,requeueing" GatewayV1Alpha2GRPCRoute="{\"Namespace\":\"clous-jrpark-green-2304061502\",\"Name\":\"clous-search-grpc\"}" logger=controllers.GRPCRoute name=clous-search-grpc namespace=clous-jrpark-green-2304061502

Kong Ingress Controller version

v2.9.2

Kubernetes version

v1.23.15

Anything else?

No response

@parkjeongryul parkjeongryul added the bug Something isn't working label Jul 5, 2023
@parkjeongryul
Copy link
Contributor Author

parkjeongryul commented Jul 6, 2023

The kong grpcroute documentation says to use an http listener, but it doesn't seem to work in the code.

https://docs.konghq.com/kubernetes-ingress-controller/2.10.x/guides/using-ingress-with-grpc/

image

case *gatewayv1alpha2.GRPCRoute:
if listener.Protocol != HTTPSProtocolType {
return false
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants