[Feature] Enable Affinity/Session options on Application routing Gateway API
- Dominant language
- TypeScript
- Stars
- 2.1k
- Forks
- 395
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 13
Description
**Is your feature request related to a problem? Please describe.**
Currently testing migrating over from `NGINX ingress with the application routing add-on` over to the new `Application routing Gateway API` aka `class = approuting-istio`
Problem is we need support for sticky/strong sessions which before we set as annotations on the ingress controller
Example:
```
nginx.ingress.kubernetes.io/affinity: cookie
nginx.ingress.kubernetes.io/affinity-canary-behavior: sticky
nginx.ingress.kubernetes.io/affinity-mode: persistent
nginx.ingress.kubernetes.io/session-cookie-name: cookie-name
```
We are supporting a number of legacy application which need this settings applied and would be very costly to try and fix at this point.
**Describe the solution you'd like**
Be able turn on strong/sticky sessions.
I suspect people will also be keen to set other common annotations like
**Describe alternatives you've considered**
Thought about moving to full Istio setup aka `Class = istio` but looks complex for what is our basic needs.
Aware of `Application Gateway for Containers` but not sure this would work either?
Can we use 3rd party like traefik in AKS?
Ideally we would like to use what as seen as the standard migration in the docs.
**Additional context**
There does look to be `SessionPersistence` in the HTTPRoute spec but is currently marked as experimental. I tried this in the current version in AKS but looks to be a older version/disallowed.
https://gateway-api.sigs.k8s.io/reference/api-spec/1.5/spec/#sessionpersistence
It also looks under the hood Istio can support this with a `DestinationRule` but these CRUDs are not allowed in this lite weight version of Istio.
A lot of the options we used to be able to set are here:
https://learn.microsoft.com/en-us/azure/aks/app-routing-nginx-configuration?tabs=azure-cli&pivots=ingress-resource-annotations
Contributor guide
Assessment
This issue has not been assessed yet.