external-dns icon indicating copy to clipboard operation
external-dns copied to clipboard

Consider adding per source configurations

Open redbaron opened this issue 6 months ago • 2 comments
trafficstars

What would you like to be added:

Currently external-dns shares CLI configuration between all sources. For instance node, service, ingress sources all use --label-filter CLI flag. This makes it quite unergonomic to run, because these k8s objects are different in nature and achieving a common set of labels among them is not trivial.

Would you be open to a PR which introduced source-specific version of existing flags?

For a start I proposse following:

  • $source-label-filter
  • $source-namespace
  • $source-fqdn-template
  • $source-annotation-filter

To maintain backward compatibility all sources continue to use existing "global" CLI flags unless source specific is given. That is for these flags:

-source=service -source=ingress -label-filter=inglabel=true -service-label-filter=svclabel=true

ingress source will run with inglabel=true label filter and service source will use svclabel=true.

Why is this needed:

Current workaround is to run multiple external-dns instances with different sources and ensure there is no overlapping between DNS entries they are trying to to manage. It is a well supported mode, but it increases complexity of deployment, requires more resources , more prone to API rate limiting on both K8S and DNS provider sides.

redbaron avatar May 14 '25 11:05 redbaron

@redbaron I think we have already (a lot) of flags.

Without thinking too much about it, as a user, I'll probably prefer to use a config file or a CR.

mloiseleur avatar May 14 '25 15:05 mloiseleur

I'll probably prefer to use a config file or a CR.

Me too, but designing config format is a massive undertaking given the versatility of external-dns, I have no hopes it can be landed soon-ish. On the other hand CLI pattern is already established so extending it with the schema above seems within reach.

redbaron avatar May 14 '25 22:05 redbaron

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

This bot triages un-triaged 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:

  • Mark this issue as fresh with /remove-lifecycle stale
  • Close this issue with /close
  • Offer to help out with Issue Triage

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

/lifecycle stale

k8s-triage-robot avatar Aug 12 '25 23:08 k8s-triage-robot

Guys, do you conceptually agree or disagree with proposed change?

redbaron avatar Aug 18 '25 11:08 redbaron

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:

  • 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:

  • Mark this issue as fresh with /remove-lifecycle rotten
  • Close this issue with /close
  • Offer to help out with Issue Triage

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

/lifecycle rotten

k8s-triage-robot avatar Sep 17 '25 12:09 k8s-triage-robot

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

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

/close not-planned

k8s-triage-robot avatar Oct 17 '25 12:10 k8s-triage-robot

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

In response to this:

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

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

/close not-planned

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.

k8s-ci-robot avatar Oct 17 '25 12:10 k8s-ci-robot