Skip to content

Unable to attach custom resources as extension ref filter in GRPCRoutes #6852

@Tharsanan1

Description

@Tharsanan1

Description:
Hi,

I’m trying to attach a custom extension to a GRPCRoute using ExtensionRef. Specifically, I have a custom CRD called RouteMetadata that I want to attach via the ExtensionRef filter. like this

apiVersion: gateway.networking.k8s.io/v1
kind: GRPCRoute
metadata:
  name: 6test
  namespace: default
spec:
  rules:
    - backendRefs:
        - group: gateway.envoyproxy.io
          kind: Backend
          name: test
      filters:
        - extensionRef:
            group: dp.wso2.com
            kind: RoutePolicy
            name: 6a254687f3229c35dd0189aac7f7fc4b6228e97a2d319a3fa5
          type: ExtensionRef
        - extensionRef:
            group: dp.wso2.com
            kind: RouteMetadata
            name: 6a254687f3229c35dd0189aac7f7fc4b6228e97a2d319a3fa5
          type: ExtensionRef
      matches:
        - method:
            method: GetStudent

This works fine when attaching to an HTTPRoute (I registered it under extensionManager.resources), but when I try with GRPCRoutes I get the following error:
message: 'Invalid filter ExtensionRef: unknown kind dp.wso2.com/RouteMetadata'
Looking at the code, I noticed that in one place ValidateGRPCRouteFilter is called without the external kinds list:
👉
https://github.com/envoyproxy/gateway/blob/main/internal/gatewayapi/filters.go#L139

But in another place it’s called with the external kinds list:
👉

if err := gatewayapi.ValidateGRPCRouteFilter(&filter, extGKs...); err != nil {

Looks like a bug.

Metadata

Metadata

Assignees

Labels

help wantedExtra attention is neededkind/bugSomething isn't working

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions