Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions apis/v1/shared_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -935,15 +935,6 @@ type SessionPersistence struct {
// +optional
AbsoluteTimeout *Duration `json:"absoluteTimeout,omitempty"`

// IdleTimeout defines the idle timeout of the persistent session.
// Once the session has been idle for more than the specified
// IdleTimeout duration, the session becomes invalid.
//
// Support: Extended
//
// +optional
IdleTimeout *Duration `json:"idleTimeout,omitempty"`

// Type defines the type of session persistence such as through
// the use of a header or cookie. Defaults to cookie based session
// persistence.
Expand Down
5 changes: 0 additions & 5 deletions apis/v1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 0 additions & 14 deletions applyconfiguration/apis/v1/sessionpersistence.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 0 additions & 3 deletions applyconfiguration/internal/internal.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 0 additions & 18 deletions config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 13 additions & 9 deletions geps/gep-1619/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -509,15 +509,6 @@ type SessionPersistence struct {
// +optional
AbsoluteTimeout *Duration `json:"absoluteTimeout,omitempty"`

// IdleTimeout defines the idle timeout of the persistent session.
// Once the session has been idle for more than the specified
// IdleTimeout duration, the session becomes invalid.
//
// Support: Extended
//
// +optional
IdleTimeout *Duration `json:"idleTimeout,omitempty"`

// Type defines the type of session persistence such as through
// the use of a header or cookie. Defaults to cookie based session
// persistence.
Expand Down Expand Up @@ -1094,6 +1085,19 @@ configuration via a warning status or log.

## Alternatives

### IdleTimeout

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
Comment on lines +1090 to +1097
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!

field could be re-introduced in a future GEP if implementations demonstrate
viable approaches and express interest.

### SessionPersistence API Alternative

Taking a different approach, this GEP could design a more specific policy for configuring session persistence. Rather
Expand Down
7 changes: 0 additions & 7 deletions pkg/generated/openapi/zz_generated.openapi.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.