kubernetes-sigs / external-dns

Configure external DNS servers (AWS Route53, Google CloudDNS and others) for Kubernetes Ingresses and Services
Apache License 2.0
7.7k stars 2.56k forks source link

Feat Request: Webhook Support for Endpoint Sources #4445

Closed sleyva-jumptrading closed 1 week ago

sleyva-jumptrading commented 6 months ago

What would you like to be added:

Similar to DNS providers, external-dns also maintains a list of sources for endpoints. This proposal is to move DNS sources to a webhook based approach similar to providers. This attempts to solve a similar problem to #4347 just for Endpoint sources as well.

Why is this needed:

The ability to integrate with a generic external API via a webhook would significantly enhance the flexibility and utility of External DNS Sources. This feature would enable the system to interact with various external services more dynamically and would reduce the amount of code needed to be maintained in external-dns for various sources (istio gateways, Virtual Services, etc). It could also potentially increase the adoption and versatility of the tool by accommodating different types of external data sources.

szuecs commented 5 months ago

There was also a problem with gateway-api. They have 2 alpha resources that are not available anymore and it blocks our dependency upgrade @Raffo .

I posted this to gateway api channel:

Somehow we need get better for breaking changes even if it's alpha resource https://github.com/kubernetes-sigs/external-dns/pull/4455 shows:

# sigs.k8s.io/external-dns/source [sigs.k8s.io/external-dns/source.test]
Error: source/gateway_grpcroute_test.go:75:18: undefined: v1alpha2.GRPCRouteSpec
Error: source/gateway_grpcroute_test.go:78:20: undefined: v1alpha2.GRPCRouteStatus

I have no good idea right now how to handle this in good way such that alpha resources can iterate quickly without breaking us. One way could be a webhook for sources, I think.

k8s-triage-robot commented 2 months ago

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

k8s-triage-robot commented 1 month ago

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

k8s-triage-robot commented 1 week ago

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/close not-planned

k8s-ci-robot commented 1 week ago

@k8s-triage-robot: Closing this issue, marking it as "Not Planned".

In response to [this](https://github.com/kubernetes-sigs/external-dns/issues/4445#issuecomment-2440197309): >The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. > >This bot triages issues according to the following rules: >- After 90d of inactivity, `lifecycle/stale` is applied >- After 30d of inactivity since `lifecycle/stale` was applied, `lifecycle/rotten` is applied >- After 30d of inactivity since `lifecycle/rotten` was applied, the issue is closed > >You can: >- Reopen this issue with `/reopen` >- Mark this issue as fresh with `/remove-lifecycle rotten` >- Offer to help out with [Issue Triage][1] > >Please send feedback to sig-contributor-experience at [kubernetes/community](https://github.com/kubernetes/community). > >/close not-planned > >[1]: https://www.kubernetes.dev/docs/guide/issue-triage/ Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.