Skip to content

fix: enable and pass HTTPRouteHostnameIntersection conformance test - #511

Open
codebot-robot wants to merge 4 commits into
gke-labs:mainfrom
codebot-robot:issue_510
Open

codebot-robot wants to merge 4 commits into
gke-labs:mainfrom
codebot-robot:issue_510

Conversation

@codebot-robot

Copy link
Copy Markdown
Collaborator

This PR resolves the failure in the HTTPRouteHostnameIntersection conformance test.

Changes

  • Controller Logic: Updated the listener route-attachment calculation in pkg/controller/gateway_controller.go to compute both parent namespace match and hostname intersection (using state.IntersectHostnames). This ensures that HTTPRoutes are counted in AttachedRoutes for a listener only if they actually intersect/attach to that specific listener.
  • E2E Conformance Tests: Enabled and uncommented tests.HTTPRouteHostnameIntersection in tests/e2e/conformance_test.go.
  • Journaling: Created the conformance test journal in .agents/skills/implement-conformance-test/journal/httproute-hostname-intersection.md as per repository guidelines.

Fixes #510

justinsb
justinsb previously approved these changes Jul 6, 2026
@justinsb

justinsb commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator

Please rebase to fix merge conflict

/assign @codebot-robot

@justinsb

justinsb commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Looks like we need a go versionbump to address a CVE

/assign @codebot-robot

@codebot-robot codebot-robot removed their assignment Jul 9, 2026
justinsb
justinsb previously approved these changes Jul 9, 2026
@justinsb
justinsb added this pull request to the merge queue Jul 9, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to no response for status checks Jul 9, 2026
@justinsb
justinsb added this pull request to the merge queue Jul 9, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to no response for status checks Jul 9, 2026
@justinsb

Copy link
Copy Markdown
Collaborator

Please rebase and fix to get the test passing

Create the conformance test journal detailing test overview, root cause analysis, fix strategy, and validation outcomes.

Fixes gke-labs#510
…ection

Update the gateway controller to compute parent namespace and hostname intersection matches for each individual listener, so that HTTPRoutes are correctly counted in AttachedRoutes only if they have intersecting hostnames with that specific listener.

Fixes gke-labs#510
Uncomment tests.HTTPRouteHostnameIntersection in the e2e conformance test suite to execute and verify the hostname intersection logic during E2E runs.

Fixes gke-labs#510
@justinsb

Copy link
Copy Markdown
Collaborator

ap-e2e is failing:

harness.go:132: kubectl apply failed: exit status 1
        Stderr: Error from server (InternalError): error when creating "STDIN": Internal error occurred: failed calling webhook "ipaddresspoolvalidationwebhook.metallb.io": failed to call webhook: Post "[https://webhook-service.metallb-system.svc:443/validate-metallb-io-v1beta1-ipaddresspool?timeout=10s](https://webhook-service.metallb-system.svc/validate-metallb-io-v1beta1-ipaddresspool?timeout=10s)": dial tcp 10.96.125.173:443: connect: connection refused
        Error from server (InternalError): error when creating "STDIN": Internal error occurred: failed calling webhook "l2advertisementvalidationwebhook.metallb.io": failed to call webhook: Post "[https://webhook-service.metallb-system.svc:443/validate-metallb-io-v1beta1-l2advertisement?timeout=10s](https://webhook-service.metallb-system.svc/validate-metallb-io-v1beta1-l2advertisement?timeout=10s)": dial tcp 10.96.125.173:443: connect: connection refused
    harness.go:69: Deleting kind cluster kind
--- FAIL: TestConformance (55.05s)
--- FAIL: TestConformance (55.05s)

Could be that we need to wait for readiness, could be a kind thing... (maybe OOM or low CPU because the VM is so small?)

Wait for metallb pods with app=metallb to be ready and retry applying the metallb IPAddressPool and L2Advertisement configuration with a timeout to avoid transient webhook connection refused errors in CI.
@codebot-robot codebot-robot removed their assignment Sep 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants