nginxinc / nginx-gateway-fabric

NGINX Gateway Fabric provides an implementation for the Gateway API using NGINX as the data plane.
Apache License 2.0
511 stars 96 forks source link

Evaluate GEP on Session Persistence #1670

Closed mpstefan closed 7 months ago

mpstefan commented 8 months ago

We need to evaluate the following GEP in the Gateway API to determine its feasibility as written:

https://github.com/kubernetes-sigs/gateway-api/pull/2634

Acceptance

sjberman commented 7 months ago

Reviewed the GEP (which was merged by the time I started on this), but overall things look good in terms of NGINX support.

NGINX Plus supports session persistence using the sticky directive. It appears that OSS also may support session persistence, but it's basic and doesn't allow for configuring parameters like time, path, security, etc. So this appears to be a Plus-only feature, at least for the proposed API.

We may not be able to support the SessionName field in the proposed API, but it's considered extended support. Also not sure if we can support header-based persistence (maybe using sticky learn?), but that's also considered extended.

There could be overlap at some point with this proposed BackendLBPolicy and our proposed UpstreamSettingsPolicy, so we may have to reconcile those two in some way...this can be decided at implementation-time.