-
Notifications
You must be signed in to change notification settings - Fork 2.8k
feat(gateway): implement annotation inheritance from Gateway to Route #5998
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
feat(gateway): implement annotation inheritance from Gateway to Route #5998
Conversation
Gateway annotations now serve as defaults for all attached Routes. Route annotations override Gateway defaults when the same key is specified. This enables centralized configuration on Gateway while maintaining flexibility for per-Route customization. Supports all annotation types including target, ttl, and provider-specific annotations. Co-Authored-By: Claude <[email protected]> Signed-off-by: Aleksei Sviridkin <[email protected]>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
Hi @lexfrei. Thanks for your PR. I'm waiting for a github.com member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
- Change status from draft to provisional - Add reference to PR kubernetes-sigs#5998 - Update pseudocode: target annotation is now inheritable and overridable - Update example to show intranet/public target override use case - Add benefit: solves User Story 2 (per-Route target overrides) - Update recommendation to include near-term merging of Solution 2 Co-Authored-By: Claude <[email protected]> Signed-off-by: Aleksei Sviridkin <[email protected]>
|
/hold likely we will not integrate HTTPRoute in the future , but ListenerSet as told by gateway-api. We should wait until they finalized the API and what external-dns should do to integrate. |
Summary
Implements Solution 2 from proposal #5919: annotation inheritance from Gateway to Route resources.
target,ttl,hostname,controller, and provider-specificThis enables centralized configuration (e.g., default TTL, Cloudflare proxy settings) on Gateway while allowing per-Route customization when needed.
Use Case
Changes
source/gateway.go: AddedmergeAnnotations()helper andresolveResultstructsource/gateway_test.go: Unit tests formergeAnnotations()including mutation safetysource/gateway_httproute_test.go: 9 integration tests covering inheritance, override, A→CNAME, multi-gateway scenariosdocs/sources/gateway-api.md: Updated documentation with examplesdocs/annotations/annotations.md: Updated Gateway API sectionTest Plan
mergeAnnotations()(9 cases + mutation test)