Skip to content

GEP-1619: Remove idleTimeout from SessionPersistence API#4771

Merged
k8s-ci-robot merged 1 commit intokubernetes-sigs:mainfrom
gcs278:gep1619-remove-idle-timeout
Apr 22, 2026
Merged

GEP-1619: Remove idleTimeout from SessionPersistence API#4771
k8s-ci-robot merged 1 commit intokubernetes-sigs:mainfrom
gcs278:gep1619-remove-idle-timeout

Conversation

@gcs278
Copy link
Copy Markdown
Contributor

@gcs278 gcs278 commented Apr 18, 2026

What type of PR is this?
/kind cleanup

What this PR does / why we need it:

Remove the idleTimeout field from the SessionPersistence API. No Gateway API implementation has implemented this field and no implementation has requested it. HTTP cookies have no native idle timeout mechanism, and implementing it requires server-side session state tracking which is additional complexity beyond what the current cookie-based model requires.

The field is documented in the GEP-1619 Alternatives section so it can be re-introduced in a future GEP if implementations demonstrate viable approaches and express interest.

Which issue(s) this PR fixes:
Fixes #4770

Does this PR introduce a user-facing change?:

Remove the idleTimeout field from the experimental SessionPersistence API.

Remove the idleTimeout field from the SessionPersistence API. No Gateway
API implementation has implemented this field and no implementation has
requested it. HTTP cookies have no native idle timeout mechanism, and
implementing it requires server-side session state tracking which is
additional complexity beyond what the current cookie-based model requires.

The field is documented in the GEP-1619 Alternatives section so it can
be re-introduced in a future GEP if implementations demonstrate viable
approaches and express interest.
@k8s-ci-robot k8s-ci-robot added release-note Denotes a PR that will be considered when it comes time to generate release notes. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. labels Apr 18, 2026
@k8s-ci-robot k8s-ci-robot requested a review from kl52752 April 18, 2026 01:55
@k8s-ci-robot k8s-ci-robot added the kind/gep PRs related to Gateway Enhancement Proposal(GEP) label Apr 18, 2026
@k8s-ci-robot k8s-ci-robot requested a review from youngnick April 18, 2026 01:55
@k8s-ci-robot k8s-ci-robot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Apr 18, 2026
@k8s-triage-robot
Copy link
Copy Markdown

Unknown CLA label state. Rechecking for CLA labels.

Send feedback to sig-contributor-experience at kubernetes/community.

/check-cla
/easycla

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Apr 18, 2026
@rikatz
Copy link
Copy Markdown
Member

rikatz commented Apr 20, 2026

/approve

leaving lgtm for someone else, given we work for the same company :)

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Apr 20, 2026
@rikatz
Copy link
Copy Markdown
Member

rikatz commented Apr 22, 2026

/cc @mikemorris @snorwin
/hold cancel

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Apr 22, 2026
Comment thread geps/gep-1619/index.md
Comment on lines +1090 to +1097
The `idleTimeout` field was originally included in the SessionPersistence API but
was removed because no Gateway API implementation has implemented it and no
implementation has requested it. HTTP cookies have no native idle timeout
mechanism — `Max-Age`/`Expires` are absolute, not idle-based. Implementing idle
timeout requires server-side session state tracking (e.g., HAProxy's `maxidle` or
NGINX's `sticky learn` with `timeout=`), which is additional complexity beyond
what the current cookie-based model requires. Some dataplanes have no mechanism
for idle timeout at all, making it unimplementable for those controllers. This
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense to me to remove with this justification!

Copy link
Copy Markdown
Member

@snorwin snorwin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gcs278 thanks.

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Apr 22, 2026
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: gcs278, rikatz, snorwin

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot merged commit b05a78a into kubernetes-sigs:main Apr 22, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. kind/gep PRs related to Gateway Enhancement Proposal(GEP) lgtm "Looks good to me", indicates that a PR is ready to be merged. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

GEP-1619: Remove idleTimeout from Session Persistence API

6 participants