-
Notifications
You must be signed in to change notification settings - Fork 709
Closed
Description
Description:
Hello looking for available solution to modify HOST header before backendRef hit
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: example-route
spec:
parentRefs:
- name: gw
hostnames:
- "some.name.test"
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: backend-1
port: 80
weight: 50
filters:
- type: URLRewrite
urlRewrite:
hostname: backend-1.some.url.test
- name: backend-2
port: 80
weight: 50
filters:
- type: URLRewrite
urlRewrite:
hostname: backend-2.some.url.test
The problem is that URLRewrite won't work on backendRef level:
"message": "Failed to process route rule 0 backendRef 0: Specific filter is not supported within BackendRef, only RequestHeaderModifier, ResponseHeaderModifier and gateway.envoyproxy.io/HTTPRouteFilter are supported.\nFailed to process route rule 0 backendRef 1: Specific filter is not supported within BackendRef, only RequestHeaderModifier, ResponseHeaderModifier and gateway.envoyproxy.io/HTTPRouteFilter are supported.",
And on the other side RequestHeaderModifier cant modify HOST header at all. Tried also HTTPRouteFilter on backend level, like:
backendRefs:
- name: backend-1
port: 80
weight: 50
filters:
- type: RequestHeaderModifier
requestHeaderModifier:
set:
- name: "x-target-host"
value: "backend-1.some.url.test"
- type: ExtensionRef
extensionRef:
group: gateway.envoyproxy.io
kind: HTTPRouteFilter
name: backend-1-rewrite
- name: backend-2
port: 80
weight: 50
filters:
- type: RequestHeaderModifier
requestHeaderModifier:
set:
- name: "x-target-host"
value: "backend-2.some.url.test"
- type: ExtensionRef
extensionRef:
group: gateway.envoyproxy.io
kind: HTTPRouteFilter
name: backend-2-rewrite
---
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: HTTPRouteFilter
metadata:
name: backend-1-rewrite
namespace: default
spec:
urlRewrite:
hostname:
type: Header
header: x-target-host
---
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: HTTPRouteFilter
metadata:
name: backend-2-rewrite
namespace: default
spec:
urlRewrite:
hostname:
type: Header
header: x-target-host
it wont complain any errors, but envoy config for host_rewrite_header is null either:
{
"name": "httproute/default/example-route/rule/0/backend/0",
"host_rewrite_header": null
}
{
"name": "httproute/default/example-route/rule/0/backend/1",
"host_rewrite_header": null
}
Any hints, how I can achieve this kind of behaviour to modify header while reaching backend ?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
kind/featurenew featurenew feature