Skip to content
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

Moving providers out of tree #4347

Open
Raffo opened this issue Mar 28, 2024 · 9 comments
Open

Moving providers out of tree #4347

Raffo opened this issue Mar 28, 2024 · 9 comments

Comments

@Raffo
Copy link
Contributor

Raffo commented Mar 28, 2024

Over the course of many years, we have added a lot of providers, some of which are not maintained or developed. This creates the expectation on users that we can fix everything or make those providers well supported. With the introduction of the webhook mechanism we stopped adding new providers, which has given other companies and DNS providers the possibility to integrate with ExternalDNS without having to add new code in tree, essentially also decoupling them from this project's release cycle.
The provider in tree also bring other challenges like the one of the very frequent dependency updates due to the update of the required libraries.
I propose that we start moving all the providers out of tree, with the exception of the stable providers, for now. I'd love to start with the unmaintained one, then move by group until we reach the AWS, Azure and Google one which are the most maintained ones and we should understand the impact on the usability of the project or even on cloud provider offerings before moving them out.

@Raffo
Copy link
Contributor Author

Raffo commented Mar 30, 2024

Notifying @seanmalloy @vinny-sabatini @alejandrojnm @saileshgiri @Sh4d1 @packi @assureddt @hughhuangzh @Hyzhou @michaeljguarino @tinyzimmer who are listed as maintainers/contributors of existing providers.

@hughhuangzh
Copy link
Contributor

@Raffo what's the standard about the stable providers, and unmaintained one?

@Raffo
Copy link
Contributor Author

Raffo commented Apr 1, 2024

@hughhuangzh what do you mean by "Standard"? Can you clarify your question?

@hughhuangzh
Copy link
Contributor

@Raffo I mean how to judge the stable providers.

@szuecs
Copy link
Contributor

szuecs commented Apr 2, 2024

@hughhuangzh https://github.com/kubernetes-sigs/external-dns?tab=readme-ov-file#status-of-providers

@hans-m-song
Copy link

Hi, given the webhooks will be the primary mechanism moving forward, could there be some consideration for #4230? Would be much appreciated.

@Raffo
Copy link
Contributor Author

Raffo commented Apr 5, 2024

@hans-m-song thanks for the nudge to link to the discussion, I definitely didn't see that there, the discussions/issues dual source isn't the easiest to deal with 😅 let me answer you there.

EDIT: asked to convert the discussion there to an issue with a proposal.

@costinm
Copy link

costinm commented Apr 23, 2024

Any chance the 'out of tree' providers can be set as additional containers at install ( by adding a helm install option with the image ), to avoid all the mess with setting up certificates, keys and maintaining/upgrading 2 different apps - in particular if any change is made in the API ?

Also it may be worth defining how stable is the webhook API - there are standards on how to encode DNS zones and entries, broadly adopted - it may be worth using it as part of both the webhook API and DNSEndoint - the naming in the API is not very aligned with DNS terms and more close to K8S.

@Raffo
Copy link
Contributor Author

Raffo commented May 11, 2024

Any chance the 'out of tree' providers can be set as additional containers at install

Where do you think the code for those should be living? I considered several approaches, but if we keep all the source in this repo, even if we stop linking them in the same binary of external dns we are not solving anything, just making life more complicated for users.

Also it may be worth defining how stable is the webhook API

This is of course a requirement before moving anything out of tree. At the time of writing, we're still considering the webhook as "experimental" although we've seen quite some adoption which was successful as much as I can say. Note that we collect zero analytics on installations, so we don't really have tons of data on our users and we have to work with the info that we have.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants