For the complete documentation index, see llms.txt. Markdown versions of all docs pages are available by appending .md to any docs URL.
Query parameter
Verified Code examples on this page have been automatically tested and verified.Specify a set of URL query parameters which requests must match in entirety.
Specify a set of URL query parameters which requests must match in entirety.
For more information, see the Kubernetes Gateway API documentation.
Before you begin
- Set up an agentgateway proxy.
- Install the httpbin sample app.
Set up query parameter matching
Create an HTTPRoute resource for the
match.exampledomain that matches incoming requests with auser=mequery parameter.kubectl apply -f- <<EOF apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: httpbin-match namespace: httpbin spec: parentRefs: - name: agentgateway-proxy namespace: agentgateway-system hostnames: - match.example rules: - matches: - queryParams: - type: Exact value: me name: user backendRefs: - name: httpbin port: 8000 EOFSend a request to the
/status/200path of the httpbin app on thematch.exampledomain without any query parameters. Verify that your request is not forwarded to the httpbin app because no matching query parameter is found.curl -vi http://$INGRESS_GW_ADDRESS:80/status/200 -H "host: match.example"Example output:
< HTTP/1.1 404 Not Found HTTP/1.1 404 Not Found < content-length: 9 content-length: 9 < content-type: text/plain; charset=utf-8 content-type: text/plain; charset=utf-8Send a request to the
/status/200path of the httpbin app on thematch.exampledomain. This time, you provide theuser=mequery parameter. Verify that your request now succeeds and that you get back a 200 HTTP response code.curl -vi "http://$INGRESS_GW_ADDRESS:80/status/200?user=me" -H "host: match.example"Example output:
* Request completely sent off < HTTP/1.1 200 OK HTTP/1.1 200 OK < access-control-allow-credentials: true access-control-allow-credentials: true < access-control-allow-origin: * access-control-allow-origin: * < content-length: 0 content-length: 0
Cleanup
You can remove the resources that you created in this guide.kubectl delete httproute httpbin-match -n httpbin --ignore-not-found