kubernetes-sigs / external-dns

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

DNS TTL not configured on AWS #544

Closed loshz closed 6 years ago

loshz commented 6 years ago

My service using external-dns is configured as follows:

apiVersion: v1
kind: Service
metadata:
  name: couchbase
  annotations:
    external-dns.alpha.kubernetes.io/hostname: couchbase.my-domain.com.
    external-dns.alpha.kubernetes.io/ttl: "1"
spec:
  clusterIP: None

My external-dns Deployment looks like this:

- name: external-dns
  image: registry.opensource.zalan.do/teapot/external-dns:v0.5.0
  args:
  - --source=service
  - --source=ingress
  - --domain-filter=my-domain.com
  - --provider=aws
  - --policy=upsert-only
  - --aws-zone-type=public
  - --registry=txt
  - --txt-owner-id=my-owner-id

However, my DNS records always default to 300s TTL in Route53.

hjacobs commented 6 years ago

External DNS will create ALIAS records in Route53 for ELBs, so you cannot set the TTL in this case (TTL of the ELB record is used). Can you print your dig output (or Route53 UI) here?

loshz commented 6 years ago

We are not using an ELB and the Route53 record is not an ALIAS.

This is what external-dns created:

screen shot 2018-05-04 at 13 05 34
loshz commented 6 years ago

Sorry, I forgot to mention my service has clusterIP: None.

ideahitme commented 6 years ago

@danbondd please paste here the external-dns logs with debug logging enabled --log-level debug

loshz commented 6 years ago
time="2018-05-04T13:00:40Z" level=info msg="config: {Master: KubeConfig: Sources:[service ingress] Namespace: AnnotationFilter: FQDNTemplate: CombineFQDNAndAnnotation:false Compatibility: PublishInternal:false Provider:aws GoogleProject: DomainFilter:[my-domain.com] ZoneIDFilter:[] AWSZoneType:public AWSAssumeRole: AzureConfigFile:/etc/kubernetes/azure.json AzureResourceGroup: CloudflareProxied:false InfobloxGridHost: InfobloxWapiPort:443 InfobloxWapiUsername:admin InfobloxWapiPassword: InfobloxWapiVersion:2.3.1 InfobloxSSLVerify:true DynCustomerName: DynUsername: DynPassword: DynMinTTLSeconds:0 InMemoryZones:[] PDNSServer:http://localhost:8081 PDNSAPIKey: Policy:upsert-only Registry:txt TXTOwnerID:avocet TXTPrefix: Interval:1m0s Once:false DryRun:false LogFormat:text MetricsAddress::7979 LogLevel:debug}"
time="2018-05-04T13:00:40Z" level=info msg="Connected to cluster at https://100.64.0.1:443"
time="2018-05-04T13:00:40Z" level=debug msg="Considering zone: /hostedzone/Z1J7098ELC9C8T (domain: my-domain.com.)"
time="2018-05-04T13:00:41Z" level=debug msg="No endpoints could be generated from service default/consul"
time="2018-05-04T13:00:41Z" level=debug msg="Generating matching endpoint couchbase-0.couchbase.my-domain.com with PodIP 172.21.44.35"
time="2018-05-04T13:00:41Z" level=debug msg="Generating matching endpoint couchbase-1.couchbase.my-domain.com with PodIP 172.21.54.2"
time="2018-05-04T13:00:41Z" level=debug msg="Generating matching endpoint couchbase-2.couchbase.my-domain.com with PodIP 172.21.38.36"
time="2018-05-04T13:00:41Z" level=debug msg="Endpoints generated from service: default/couchbase: [couchbase-0.couchbase.my-domain.com 0 IN A 172.21.44.35 couchbase-1.couchbase.my-domain.com 0 IN A 172.21.54.2 couchbase-2.couchbase.my-domain.com 0 IN A 172.21.38.36]"
time="2018-05-04T13:00:41Z" level=debug msg="Endpoints generated from service: default/eventd: [eventd.my-domain.com 0 IN CNAME a748fc3fd18ba11e8ae6d064454ace7b-1409419927.eu-central-1.elb.amazonaws.com]"
time="2018-05-04T13:00:41Z" level=debug msg="No endpoints could be generated from service default/influxdb"
time="2018-05-04T13:00:41Z" level=debug msg="No endpoints could be generated from service default/kubernetes"
time="2018-05-04T13:00:41Z" level=debug msg="No endpoints could be generated from service default/loaderd"
time="2018-05-04T13:00:41Z" level=debug msg="No endpoints could be generated from service default/logd"
time="2018-05-04T13:00:41Z" level=debug msg="No endpoints could be generated from service default/metricd"
time="2018-05-04T13:00:41Z" level=debug msg="No endpoints could be generated from service default/modeld"
time="2018-05-04T13:00:41Z" level=debug msg="No endpoints could be generated from service default/nsqadmin"
time="2018-05-04T13:00:41Z" level=debug msg="Generating matching endpoint nsqlookupd-0.nsqlookupd.my-domain.com with PodIP 172.21.37.139"
time="2018-05-04T13:00:41Z" level=debug msg="Generating matching endpoint nsqlookupd-1.nsqlookupd.my-domain.com with PodIP 172.21.40.68"
time="2018-05-04T13:00:41Z" level=debug msg="Generating matching endpoint nsqlookupd-2.nsqlookupd.my-domain.com with PodIP 172.21.52.121"
time="2018-05-04T13:00:41Z" level=debug msg="Endpoints generated from service: default/nsqlookupd: [nsqlookupd-0.nsqlookupd.my-domain.com 0 IN A 172.21.37.139 nsqlookupd-1.nsqlookupd.my-domain.com 0 IN A 172.21.40.68 nsqlookupd-2.nsqlookupd.my-domain.com 0 IN A 172.21.52.121]"
time="2018-05-04T13:00:41Z" level=debug msg="No endpoints could be generated from service default/requestd"
time="2018-05-04T13:00:41Z" level=debug msg="No endpoints could be generated from service default/userd"
time="2018-05-04T13:00:41Z" level=debug msg="No endpoints could be generated from service kube-system/heapster"
time="2018-05-04T13:00:41Z" level=debug msg="No endpoints could be generated from service kube-system/kube-dns"
time="2018-05-04T13:00:41Z" level=debug msg="No endpoints could be generated from service kube-system/kubernetes-dashboard"
time="2018-05-04T13:00:41Z" level=debug msg="No endpoints could be generated from service kube-system/metrics-server"
time="2018-05-04T13:00:41Z" level=info msg="All records are already up to date"
time="2018-05-04T13:01:41Z" level=debug msg="Considering zone: /hostedzone/Z1J7098ELC9C8T (domain: my-domain.com.)"
loshz commented 6 years ago

I think I have figured out the issue - will PR a fix.

loshz commented 6 years ago

Fix merged.