Search code examples
google-kubernetes-engineapi-gateway

GKE Gateway API, HTTPRoute invalid path type "ReplaceFullPath" for "URLRewrite" filter even though it should work


I have a Gateway (Gateway API) on GKE with an HTTPRoute with a setup like this:

- matches:
  - path:
      type:
      value: /prefix/health
  backendRefs:
    - name: some-backend
      port: some-port
  filters:
    - type: URLRewrite
      urlRewrite:
        path:
          type: ReplaceFullPath
          replaceFullPath: /ready

When I look on the Gateway object, I see this error:

Error GWCER104: HTTPRoute "my-httproute"
  is misconfigured, err: invalid path type "ReplaceFullPath" configured for "URLRewrite"
  filter, path type must be "ReplacePrefixMatch".

The Gateway Class is gke-l7-global-external-managed, which is compatible with those filters according to the doc (here, look at the bottom next to urlRewrite.path).

I followed the API spec documentation for the filters.

Is there a problem with the way I write it, or is there a problem on the GKE Gateway side?


Solution

  • I discussed with a solutions engineer from Google and it seems that the problem was their documentation. The Google Gateway API does not support the replaceFullPath filter on any Gateway class.

    The documentation has been updated now and only shows replacePrefixMatch (see at the bottom of this page).