Skip to content

Implementations MAY support non-disruptive configuration #4342

@rikatz

Description

@rikatz

What would you like to be added:
This conformance is based on a discussion we had on Dec 2nd 2025:

Migrating a Route between Listener[Set]s on the same Gateway or from Gateway to ListenerSet and viceversa (as soon as the ListenerSet belongs to the same Gateway) SHOULD be seamless, and if an implementation decides to support it it should be signaled on a specific to be defined feature.

This means that the implementation can, on a single loop, understand that 2 operations happened and do a single reconfiguration of the proxy, in case of required.

Test 1:

  • Create a Gateway
  • Create 2 ListenerSets, the newer one MUST be conflicted with the older one
  • Attach a route to both ListenerSets
  • Start making requests every 0.1s - Every request MUST WORK - Open a goroutine for it, as this should stop just after the test ends
  • Delete the older ListenerSet
  • Check status of the route to guarantee the attachment changed correctly
  • Requests MUST KEEP happening
  • Stop the test, verify that no request was lost

Test 2:

  • Create a Gateway with a listener like *.app.tld
  • Create a HTTPRoute like something.app.tld and attach to this listener
  • Create a ListenerSet with hostname something.app.tld
  • Start making requests every 0.1s - Every request MUST WORK - Open a goroutine for it, as this should stop just after the test ends
  • Change the HTTPRoute parentRef to use the ListenerSet - Check status to verify it was properly attached
  • Requests MUST still work
  • Stop the test, verify that no request was lost

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/conformance-testIssues or PRs related to Conformance tests.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions