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

CRD unable to create DNSEndpoint of record types other than A or CNAME #1647

Closed
mikelorant opened this issue Jun 25, 2020 · 15 comments · Fixed by k8gb-io/k8gb#169 or #1813
Closed

CRD unable to create DNSEndpoint of record types other than A or CNAME #1647

mikelorant opened this issue Jun 25, 2020 · 15 comments · Fixed by k8gb-io/k8gb#169 or #1813
Assignees
Labels
kind/bug Categorizes issue or PR as related to a bug. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed.

Comments

@mikelorant
Copy link

What happened:

Applied the following DNSEndpoint resource:

apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
  name: examplednsrecord
spec:
  endpoints:
  - dnsName: foo.bar.com
    recordTTL: 180
    recordType: TXT
    targets:
    - "test"

This results in no resource created. Even in debug mode, there is no object even mentioned.

As soon as I kubectl edit dnsendpoint examplednsrecord to change it from TXT to CNAME I see the following output.

{"level":"debug","msg":"Adding foo.bar.com. to zone ffxblue.io. [Id: /hostedzone/...]","time":"2020-06-25T08:40:24Z"}
{"level":"debug","msg":"Adding foo-txt.bar.com. to zone ffxblue.io. [Id: /hostedzone/...]","time":"2020-06-25T08:40:24Z"}
{"level":"info","msg":"Desired change: CREATE foo.bar.com CNAME [Id: /hostedzone/...]","time":"2020-06-25T08:40:24Z"}
{"level":"info","msg":"Desired change: CREATE foo-txt.bar.com TXT [Id: /hostedzone/..]","time":"2020-06-25T08:40:24Z"}

What you expected to happen:

It is expected that the DNSEndpoint should be able to create all record types. The comments in the source code specifically list SRV and TXT records. My initially attempts were a MX record which also failed.

Attempting to use the providerSpecific options to create the exact record also did not work.

How to reproduce it (as minimally and precisely as possible):

Apply the YAML I provided at the start of this issue and change the dnsName to be a valid zone that external-dns is managing.

All my tests have been using AWS. Uncertain if this is an issue with other providers.

Anything else we need to know?:

Environment:

  • External-DNS version (use external-dns --version): 0.7.2
  • DNS provider: AWS
  • Others:
    • The option preferCNAME enabled.
    • Policy set to sync.
    • Using the Bitnami Helm chart.
@mikelorant mikelorant added the kind/bug Categorizes issue or PR as related to a bug. label Jun 25, 2020
@ytsarev
Copy link
Member

ytsarev commented Jun 25, 2020

I can confirm this behavior, have seen it before for TXT.

@ytsarev
Copy link
Member

ytsarev commented Jun 25, 2020

/assign @ytsarev

@Raffo
Copy link
Contributor

Raffo commented Aug 5, 2020

@ytsarev are you able to take a look at that given that you are assigned?

@ytsarev
Copy link
Member

ytsarev commented Aug 5, 2020

@Raffo yes, i have it in the pipeline

ytsarev added a commit to k8gb-io/k8gb that referenced this issue Oct 7, 2020
It's not yet working solution but important foundation for further full support.

* Separate external-dns-route53 deployment which exclusively handles route53 updates
* CoreDNS service type LoadBalancer which exposes 53/udp with Network Load Balancer without the need of special upd config of Nginx Ingress controller also avoiding 53/udp exposure on each of the worker nodes as in on-prem scenario
* K8gb configuration options for route53 enablement and associated depresolver modifications
* Helper makefile targets to ease the testing of temporary k8gb images in AWS
* Creation of DNSEndpoint CRD with NS record as a start of automated Zone delegation configuration in Route53
* Associated tests

Unfortunately external-dns currently does not pick up NS records which are described as CRD.

We will have to fix kubernetes-sigs/external-dns#1647 upstream to proceed further with the implementation
@ytsarev ytsarev mentioned this issue Oct 12, 2020
2 tasks
@AlbinoDrought
Copy link

(Possibly reopen? I think the Partially fixes #... in #1813 may have triggered an early close here)

@seanmalloy
Copy link
Member

/reopen

@k8s-ci-robot k8s-ci-robot reopened this Oct 21, 2020
@k8s-ci-robot
Copy link
Contributor

@seanmalloy: Reopened this issue.

In response to this:

/reopen

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.

@AmitBenAmi
Copy link

Is there any update regarding this issue?

@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Mar 10, 2021
@danopia
Copy link

danopia commented Mar 27, 2021

Since this valid-looking ticket is going stale I'll link some relevant context here..

It was written down that external-dns was originally supposed to be specifically for A and CNAME: #1923 (comment)

The #1813 PR that accidentally closed this issue actually broke people on upgrade because of conflict with existing NS records. It became clear that external-dns isn't ready for diverse-recordtype ownership. That's what started the project scope discussion above.

From my point of view, either the CRD source needs new documentation stating the allowed Record Types, OR external-dns needs to grow support for more record-types somehow. The latter seems to be a bit tricky 😄 Currently, the example CRD in this repository implies it can manage any record:

                    recordType:
                      description: RecordType type of record, e.g. CNAME, A, SRV, TXT etc

(I personally wanted A/AAAA, MX, TXT, SSHFP, etc and ended up writing/running my own external-dns-like controller [1] to do everything I originally wanted from external-dns. I know this isn't reasonable for many, so seeing a conclusion here would still be 💯 )

@seanmalloy
Copy link
Member

/remove-lifecycle stale

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Apr 13, 2021
@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 12, 2021
@k8s-triage-robot
Copy link

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:

  • 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 or PR as fresh with /remove-lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

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

/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Aug 11, 2021
@k8s-triage-robot
Copy link

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:

  • 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 or PR with /reopen
  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

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

/close

@k8s-ci-robot
Copy link
Contributor

@k8s-triage-robot: Closing this issue.

In response to this:

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:

  • 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 or PR with /reopen
  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

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

/close

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed.
Projects
None yet
10 participants