Conversation
Resolve Service/Endpoint routing per attached listener before merging backends. Preserve mirror rule precedence and isolate inline cluster names. Document the affected xDS names and migration requirements. Fixes envoyproxy#9696 Signed-off-by: Michael Basov <124149774+banlor@users.noreply.github.com>
✅ Deploy Preview for cerulean-figolla-1f9435 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this PR does / why we need it:
Resolve backend routing for each attached listener, including routes whose parentRef omits sectionName. Listener-specific Service/Endpoint routing is applied before backend merging, so one listener cannot reuse another listener's backend addresses. Request mirrors use the original HTTPRoute or GRPCRoute rule when resolving policy precedence. Mixed TLS backend pools stay together when they cannot all use shared clusters.
Inline cluster names change when a listener's effective routing mode differs from the route/Gateway policy. GRPCRoute mirror clusters after the first rule also use the actual rule index rather than rule/0. EnvoyPatchPolicy resources and Extension Servers that depend on those names or cluster references need updating. The routing documentation, migration notes, and release notes describe both naming changes.
make go.test.coveragepassed on this revision, including 60 root-module packages and four CEL runs with the race detector. Temporary files used a task-local ext4 filesystem because WSL DrvFS did not deliver the inotify events required by the file-watcher tests. After merging duplicate coverage records, all 319 statements in 112 blocks intersecting added production lines were exercised. This is block coverage, not exact added-line or branch coverage, and does not prove live Envoy traffic or Kubernetes reconciliation.make generate gen-checkexited 2 after Buf returnedpermission_denied: 403 Forbiddenforbuf.build/cncf/xds;gen-checkwas not reached.make lint GOLANGCI_LINT_FLAGS=--timeout=60malso exited 2, with sevenforbidigodiagnostics forptr.To, onegciimport-formatting diagnostic and fourgoheaderdiagnostics in the added tests. These lint failures remain unfixed. Mandatory checks have not all passed.Hermes Agent with gpt-6-astra helped prepare the code, tests, review probes, documentation and PR text.
Which issue(s) this PR fixes:
Fixes #9696
PR Checklist
git commit -s). See DCO: Sign your work./api), the API was discussed and agreed before the implementation. The API change can be in a separate PR, or in the same PR, but the API must be agreed before implementation. N/A if this PR does not contain API changes. N/A: no API changes.make generate gen-check,make lint, and the unit-test/coverage build pass. (Flaky e2e failures are not considered breakages, butgen-check,lint, and coverage MUST pass.)release-notes/current/<section>/<pr-number>-<slug>.md(seerelease-notes/current/README.mdfor sections and naming). N/A if this PR does not contain non-trivial changes.make gen-checkand committed the result if API/helm charts/modules changed.release-notes/current/breaking_changes/.