-
Notifications
You must be signed in to change notification settings - Fork 493
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GEP: Add support for query parameter in the HTTPRouteFilter API #2895
Comments
/assign @lianglli |
Thanks for this detailed feature request, @lianglli. This seems like it requires a GEP to me, we can just flip this issue into the GEP type and use the text of the issue as the basis. The "Why this is needed" section would be good as the "Introduction" section in the GEP template. |
@shaneutt Get it. I will start a gep 2895 specifically. |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. This bot triages issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /close not-planned |
@k8s-triage-robot: Closing this issue, marking it as "Not Planned". In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
/reopen |
@lianglli: Reopened this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. This bot triages issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /close not-planned |
@k8s-triage-robot: Closing this issue, marking it as "Not Planned". In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
/reopen |
@lianglli: Reopened this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. This bot triages issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /close not-planned |
@k8s-triage-robot: Closing this issue, marking it as "Not Planned". In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
What would you like to be added:
It would be great if HTTPRouteFilter had a field to set, add and remove a query parameter of the HTTP request before it is sent to the upstream target.
This can be done by adding a new field QueryParamModifier of type HTTPRouteFilter.
The QueryParamModifier is extended.
There are many plugins of gatway for manipulating query parameter of HTTP request.
For example, query paramter modification plugin for traefik (ref: https://plugins.traefik.io/plugins/628c9f24ffc0cd18356a97bd/query-paramter-modification) and the request transformer plugin for Kong (ref: https://docs.konghq.com/hub/kong-inc/request-transformer/). Moreover, similar specification can be seen in ingress like tengine-ingress (ref: https://tengine.taobao.org/document/ingress_routes.html nginx.ingress.kubernetes.io/canary-request-add-query).
Why this is needed:
Just like set, add and remove header is useful, the same goes for query parameters.
The query parameters are an important part of the request URL.
The developers can use query parameters to filter, sort or customize data of request body. Backend service can enable different function based on the query parameters. Moreover, query parameters are important information about search and track.
Moreover, query parameter, headers and cookies are common techniques used in a canary release.
For example, it allows to add query parameter for only a certain canary backend, which can help in identifying certain users by the backend service. Based on the following http rule, query parameter "passtoken=74224f54c5b553228f1d1d9795e348f3" will be added to the requests be matched against the query parameter "gray=3", then the request will be routed to the canary service "http-route-canary:80".
If this requires a GEP, I would be like to start working on it.
The text was updated successfully, but these errors were encountered: