Remove headers
Verified Code examples on this page have been automatically tested and verified.Remove headers from requests before they reach the upstream. Use this when a client sends headers that the backend service should not receive, such as internal routing hints, authentication tokens, or debugging headers added by a proxy.
Before you begin
- Set up an agentgateway proxy.
- Install the httpbin sample app.
Remove request headers
In this example, you remove the x-debug-trace request header before the request is forwarded to the upstream.
Send a request to the httpbin app and include the
x-debug-tracerequest header. Verify that httpbin echoes it back in the response body.curl -s http://$INGRESS_GW_ADDRESS:80/get \ -H "host: www.example.com:80" \ -H "x-debug-trace: true"curl -s localhost:8080/get \ -H "host: www.example.com" \ -H "x-debug-trace: true"Example output:
{ "args": {}, "headers": { "Accept": [ "*/*" ], "Host": [ "www.example.com" ], "User-Agent": [ "curl/8.7.1" ], "X-Debug-Trace": [ "true" ] }, "origin": "10.244.0.6:12345", "url": "http://www.example.com/get" }The
x-debug-traceheader is present in the echoed headers.Create an AgentgatewayPolicy resource with your transformation rules.
kubectl apply -f- <<EOF apiVersion: agentgateway.dev/v1alpha1 kind: AgentgatewayPolicy metadata: name: transformation namespace: httpbin spec: targetRefs: - group: gateway.networking.k8s.io kind: HTTPRoute name: httpbin traffic: transformation: request: remove: - x-debug-trace EOFSend another request with the
x-debug-tracerequest header. Verify that you get back a 200 HTTP response code and that thex-debug-traceheader is no longer present in the headers echoed back by httpbin.curl -vi http://$INGRESS_GW_ADDRESS:80/get \ -H "host: www.example.com:80" \ -H "x-debug-trace: true"curl -vi localhost:8080/get \ -H "host: www.example.com" \ -H "x-debug-trace: true"Example output:
< HTTP/1.1 200 OK HTTP/1.1 200 OK ... { "args": {}, "headers": { "Accept": [ "*/*" ], "Host": [ "www.example.com" ], "User-Agent": [ "curl/8.7.1" ] }, "origin": "10.244.0.6:12345", "url": "http://www.example.com/get" }The
x-debug-traceheader is absent from the echoed headers, confirming it was stripped before the request reached the upstream.
Cleanup
You can remove the resources that you created in this guide.kubectl delete AgentgatewayPolicy transformation -n httpbin