-
Notifications
You must be signed in to change notification settings - Fork 368
feat(gateway-api): support GRPCRoute #2570
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds support for GRPCRoute in the APISIX Ingress Gateway API implementation, enabling gRPC routing capabilities alongside existing HTTP routing.
Key changes:
- Complete GRPCRoute controller and translator implementation
- RBAC permission updates for GRPCRoute resource access
- E2E testing framework and test cases for GRPC backend validation
- Documentation updates reflecting GRPCRoute support status
Reviewed Changes
Copilot reviewed 21 out of 21 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| internal/controller/grpcroute_controller.go | New controller implementation handling GRPCRoute resource lifecycle and reconciliation |
| internal/adc/translator/grpcroute.go | Translator logic converting GRPCRoute specs to APISIX configuration |
| internal/adc/translator/httproute.go | Refactored common header matching and request mirror filtering functions |
| test/e2e/scaffold/grpc.go | Testing utilities for GRPC backend communication and validation |
| test/e2e/gatewayapi/grpcroute.go | E2E test cases covering GRPCRoute filters and functionality |
| test/e2e/framework/grpc.go | GRPC backend deployment framework for testing |
| config/rbac/role.yaml | Updated RBAC permissions to include GRPCRoute resources |
Comments suppressed due to low confidence (2)
internal/adc/translator/grpcroute.go:1
- When header.Type is nil, matchType remains an empty string, which will cause HeaderMatchToVars to return an error for 'unknown header match type'. The default should be set to string(gatewayv1.HeaderMatchExact) to match Gateway API specification.
// Licensed to the Apache Software Foundation (ASF) under one
test/e2e/scaffold/grpc.go:1
- Typo in log message: 'grocroutes' should be 'grpcroutes'.
// Licensed to the Apache Software Foundation (ASF) under one or more
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 21 out of 21 changed files in this pull request and generated 2 comments.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Co-authored-by: Copilot <[email protected]>
ronething
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
Type of change:
What this PR does / why we need it:
The conformance-test of GRPCRoute has been integrated, which mainly covers basic functions.
Pre-submission checklist: