Skip to content

Pass GatewayWithAttachedRoutes and GatewayWithAttachedRoutesWithPort8080 conformance tests #633

Closed

Description

@justinsb

We are running (and passing) some conformance tests in tests/e2e/conformance_test.go.

Let's enhance our Gateway API implementation to pass two more tests: tests.GatewayWithAttachedRoutes and tests.GatewayWithAttachedRoutesWithPort8080 (and add them to the list of tests in tests/e2e/conformance_test.go).

These check status.listeners[].attachedRoutes:

  • it counts only routes that are actually accepted by that listener (a route with a non-matching hostname must not count, and its parent status should have reason NoMatchingListenerHostname);
  • it is still set when the Gateway has unresolved refs (e.g. a missing certificate Secret);
  • with sectionName, only the named listener counts the route (the Port8080 variant uses a listener on port 8080).

These were never added to the list, so they may already pass, or be close. Run them first and only fix what fails.

Depends on #624 (per-Gateway data plane), which changes how listener ports reach the data plane. Please don't start until it has merged.

Acceptance criteria

  • Both tests are added to selectedTests and pass under ap e2e, along with the rest of the suite.
  • If any code changes are needed, add table-driven unit tests in pkg/state for attachedRoutes. Each case should fail without the change. The cases:
    • a route whose hostnames don't intersect the listener's is not counted;
    • a Gateway with an unresolved certificateRef still reports attachedRoutes;
    • a route with sectionName is counted only on the named listener.

Limits

  • attachedRoutes is computed in ComputeOutputs (pkg/state). Keep it there; don't count routes in a reconciler.
  • Don't change pkg/provisioning. A listener on port 8080 should already get a Service port from the effective listeners. If it doesn't, describe the problem in the PR rather than working around it.

Please follow the skill .agents/skills/implement-conformance-test/SKILL.md . Keep a journal in .agents/skills/implement-conformance-test/journal/.md ; only when we see a pattern in the journal files should we "promote" that information into the skill.

Be sure to verify the implementation passes the tests by running ap e2e before submitting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions