Skip to content

Conversation

@AlinsRan
Copy link
Contributor

@AlinsRan AlinsRan commented Sep 18, 2025

Type of change:

  • Bugfix
  • New feature provided
  • Improve performance
  • Backport patches
  • Documentation
  • Refactor
  • Chore
  • CI/CD or Tests

What this PR does / why we need it:

The conformance-test of GRPCRoute has been integrated, which mainly covers basic functions.

apiVersion: gateway.networking.k8s.io/v1
date: "2025-09-22T06:40:34Z"
gatewayAPIChannel: experimental
gatewayAPIVersion: v1.3.0
implementation:
  contact: null
  organization: APISIX
  project: apisix-ingress-controller
  url: https://github.com/apache/apisix-ingress-controller.git
  version: v2.0.0
kind: ConformanceReport
mode: default
profiles:
- core:
    result: success
    statistics:
      Failed: 0
      Passed: 12
      Skipped: 0
  name: GATEWAY-GRPC
  summary: Core tests succeeded.
- core:
    failedTests:
    - HTTPRouteInvalidBackendRefUnknownKind
    result: failure
    skippedTests:
    - HTTPRouteHTTPSListener
    statistics:
      Failed: 1
      Passed: 31
      Skipped: 1
  extended:
    result: partial
    skippedTests:
    - HTTPRouteRedirectPortAndScheme
    statistics:
      Failed: 0
      Passed: 7
      Skipped: 1
    supportedFeatures:
    - GatewayAddressEmpty
    - GatewayPort8080
    - HTTPRouteDestinationPortMatching
    - HTTPRouteMethodMatching
    - HTTPRoutePortRedirect
    - HTTPRouteRequestMirror
    - HTTPRouteResponseHeaderModification
    - HTTPRouteSchemeRedirect
    unsupportedFeatures:
    - GatewayHTTPListenerIsolation
    - GatewayInfrastructurePropagation
    - GatewayStaticAddresses
    - HTTPRouteBackendProtocolH2C
    - HTTPRouteBackendProtocolWebSocket
    - HTTPRouteBackendRequestHeaderModification
    - HTTPRouteBackendTimeout
    - HTTPRouteHostRewrite
    - HTTPRouteParentRefPort
    - HTTPRoutePathRedirect
    - HTTPRoutePathRewrite
    - HTTPRouteQueryParamMatching
    - HTTPRouteRequestMultipleMirrors
    - HTTPRouteRequestPercentageMirror
    - HTTPRouteRequestTimeout
  name: GATEWAY-HTTP
  summary: Core tests failed with 1 test failures. Extended tests partially succeeded
    with 1 test skips.

Pre-submission checklist:

  • Did you explain what problem does this PR solve? Or what new features have been added?
  • Have you added corresponding test cases?
  • Have you modified the corresponding document?
  • Is this PR backward compatible? If it is not backward compatible, please discuss on the mailing list first

@AlinsRan AlinsRan marked this pull request as ready for review September 22, 2025 00:56
@AlinsRan AlinsRan requested a review from Copilot September 22, 2025 01:43
Copy link
Contributor

Copilot AI left a 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.

@AlinsRan AlinsRan requested a review from Copilot September 22, 2025 02:35
Copy link
Contributor

Copilot AI left a 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.

@AlinsRan AlinsRan requested a review from ronething September 23, 2025 01:07
Copy link
Contributor

@ronething ronething left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@AlinsRan AlinsRan requested a review from bzp2010 September 23, 2025 06:36
@AlinsRan AlinsRan merged commit 5107775 into apache:master Sep 23, 2025
21 checks passed
@AlinsRan AlinsRan deleted the grpcroute2 branch September 23, 2025 08:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants