-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
Add Support for an ExternalDNS Operator #1730
Comments
Here are a few use cases that an operator can address:
|
@danehans in which repository the „install operator“ should be? |
As I briefly mentioned on the external-dns slack, I disagree on the need for an ExternalDNS operator. Let me explain why. ExternalDNS was designed from the very beginning to be simple and for upgrades to never be a concern. Dealing with DNS, which is a clearly very eventual consistent, any setup can tolerate brief outages of the ExternalDNS pod without problems. Also, we essentially store no state other than what is in Kubernetes already which makes rollouts of new versions not a problem. I understand that rolling out different versions could possibly bring challenges like having to deal with possible incompatible flags, etc, but I think:
And here comes the question... who maintains and configure the operator then? I believe an operator would essentially just move the problem to another tool instead of solving the whole configuration problem. I've watched the video presentation from KubeCon and read the KEP, but I think we are facing a different problem. ExternalDNS is not strictly bundled with a version of Kubernetes and any of the latest versions are widely compatible with at least 3 releases of Kubernetes which is what all cloud providers support. It's even more backward compatible than that, but this is what we make sure we can guarantee. Moreover, I would also love to add that more often than operators, the problem that really need to be solved is the one of config management and its versioning. When ExternalDNS was started, we added it to the clusters using git as source of truth. AFAIK it is still maintained like this and it still works well (@szuecs can contradict me if I'm wrong). Last but not least, there is already a helm chart available for this project and we recently added support to kustomize that can help anyone get started. Those ☝️ are the reasons why I think we don't need an operator for this project. I think it would introduce complexity rather than simplify things. I hope this clarifies 😃 |
@szuecs yes, an admin will need to @Raffo thanks for the detailed explanation on your views. The management space will continue to have different tools (helm, kustomize, operators, etc.) with each providing pros/cons. I don't see how ExternalDNS addresses each of the use cases I describe above. The other tools that you reference may be able to support these use cases, but I think the management space will continue to have different tools that compete or compliment one another. I'll start the project in my repo and provide an update to the community when it achieves the above use-cases. |
@Raffo yes for us it just works like that. I generally completely agree with @Raffo . @danehans additional value the operator can provide if you split responsibility in clusters to different external-dns with maybe targeting different providers. I don’t know what other users have but from slack, many people try to configure aws cross account setups or having a 3rd party provider. So I see there are some cases that could fit into your operator and would provide additional value. |
@szuecs would an example be separate edns instances for managing public and private zones? |
Yes for example, but you could also for example bind a zone to a namespace iirc. |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Stale issues rot after 30d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
/remove-lifecycle rotten |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-contributor-experience at kubernetes/community. |
/remove-lifecycle stale |
The OpenShift Network Edge team is proceeding with a preliminary ExternalDNS operator design outlined via an OpenShift enhancement, for anyone who may be interested. We hope to prove that an ExternalDNS operator would be worthwhile, and would ultimately like to gain some community buy-in. |
Also, its worth mentioning #1961, which describes how ExternalDNS could be turned into an "operator" in itself. |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle stale |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /close |
@k8s-triage-robot: Closing this issue. In response to this:
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/test-infra repository. |
What would you like to be added:
I propose adding an operator to manage ExternalDNS.
Why is this needed:
Currently, ExternalDNS is managed through a manual process (docs, manifests, etc) or external tooling (i.e. Helm). An operator would simplify the user experience by providing declarative management of ExternalDNS. Several operators (i.e. addons, seccomp, etc.) reside in the kubernetes-sigs org and many others (i.e. etcd-operator, prometheus-operator) exist in the same org as the applications they manage. The externaldns-operator and ExternalDNS would benefit by having each project reside in the same kubernetes-sigs org.
The text was updated successfully, but these errors were encountered: