Azure / Azure/AKS

[Feature] Enable Affinity/Session options on Application routing Gateway API

Open
#5,806 9 comments 3 reactions 1 assignee Claimed by @therealmitchconnors View on GitHub
feature-request networking
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.