feat(source): gateway api hostname source annotation#5959
Conversation
|
Welcome @bogdankrasko! |
|
Hi @bogdankrasko. 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. DetailsInstructions 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. |
Smoke testsSetupmanifest:Master |
|
/ok-to-test |
Pull Request Test Coverage Report for Build 19441565668Warning: This coverage report may be inaccurate.This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.
Details
💛 - Coveralls |
source/gateway.go
Outdated
| if strings.ToLower(hostNameAnnotation) == gatewayHostnameSourceAnnotationOnlyValue { | ||
| return annotationHostnames, nil | ||
| } | ||
|
|
||
| return hostnames, nil |
There was a problem hiding this comment.
You're not checking for gatewayHostnameSourceDefinedHostsOnlyValue, so any invalid value will return only the defined hostnames.
In this case, the ingress implementation returns an empty list.
It might be worth logging a warning too.
You also build hostnames from both sources and eventually discard them.
Wouldn’t it be better to only add hostnames when they’re actually needed?
| endpoints: []*endpoint.Endpoint{ | ||
| newTestEndpoint("test.org.internal", "A", "1.2.3.4"), | ||
| }, | ||
| }, |
There was a problem hiding this comment.
Could you add a test case with an invalid annotation value?
There was a problem hiding this comment.
Added a test case with an invalid annotation value
Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.com>
|
/lgtm |
|
@vflaux Anything left on your side ? |
|
/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. |
|
Even if we will follow GatewayAPI and move to ListenerSet, it does not mean we should not consider some use cases with current resources. => as discussed on slack with other maintainers |
|
As external-dns supports HTTPRoute, GRPCRoute, ... I would expect that the functionality related to hostname annotation is supported as well. |
|
@szuecs @mloiseleur @ivankatliarchuk Can we proceed on merging the following changes? |
|
@szuecs @ivankatliarchuk Anything left on your side? |
|
LGTM |
|
If anything, we could always rollback. /approve |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ivankatliarchuk The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
* master: (25 commits) feat(event): standardize event messages and add resource kind lookup for events (kubernetes-sigs#6101) refactor(informers): unify cache sync functions using generics (kubernetes-sigs#6102) fix(fqdn): support kind and api version (kubernetes-sigs#6097) test(fqdn): cover sources without any fqdn tests (kubernetes-sigs#6094) chore(tools): CRD generation script moved and add validation workflow (kubernetes-sigs#6079) fix(metrics): add CNAME to known record types (kubernetes-sigs#6115) chore(cloudflare): migrate customhostname to v5 (kubernetes-sigs#5891) test(provider/exoscale): improved the test coverage for exoscale provider from 62.8% to 80.4% (kubernetes-sigs#6112) feat(source): gateway api hostname source annotation (kubernetes-sigs#5959) test: cover pkg/events/fake package (kubernetes-sigs#6096) refactor(controller): controller no longer responsible for SingletonClientGenerator creation (kubernetes-sigs#6077) refactor(source): standardize FQDN template accross sources (kubernetes-sigs#6093) feat(coredns): rename ownerId and ownedBy to owner (kubernetes-sigs#6032) docs: fix typo in README (The are → There are) (kubernetes-sigs#6095) refactor(aws): abstract provider-specific boolean parsing (kubernetes-sigs#6078) refactor(api): deduplicate addKnownTypes (kubernetes-sigs#6087) fix(api): rollback changes for omitempty (kubernetes-sigs#6086) chore(deps): bump renovatebot/github-action (kubernetes-sigs#6080) fix(aws): enable AWS API validation for routing policies without setIdentifier (kubernetes-sigs#6082) chore(aws): document and test behavior for ALB and NLB (kubernetes-sigs#6063) ...
What does it do ?
Adds external-dns.alpha.kubernetes.io/gateway-hostname-source annotation to the GatewayAPI source.
Motivation
Fixes #5391
More