- DNSimple: Make DNSimple tolerant of unknown zones (#574) @jbowes
- Cloudflare: Custom record TTL (#572) @njuettner
- AWS ServiceDiscovery: Implementation of AWS ServiceDiscovery provider (#483) @vanekjar
- Update docs to latest changes (#563) @Raffo
- New source - connector (#552) @shashidharatd
- Update AWS SDK dependency to v1.13.7 @vanekjar
- Refactor implementation of sync loop to use
time.Ticker
(#553) @r0fls - Document how ExternalDNS gets permission to change AWS Route53 entries (#557) @hjacobs
- Fix CNAME support for the PowerDNS provider (#547) @kciredor
- Add support for hostname annotation in Ingress resource (#545) @rajatjindal
- Fix for TTLs being ignored on headless Services (#546) @danbondd
- Fix failing tests by giving linters more time to do their work (#548) @linki
- Fix misspelled flag for the OpenStack Designate provider (#542) @zentale
- Document additional RBAC rules needed to read Pods (#538) @danbondd
- Google: Correctly filter records that don't match all filters (#533) @prydie @linki
- AWS: add support for AWS Network Load Balancers (#531) @linki
- Add a flag that allows FQDN template and annotations to combine (#513) @helgi
- Fix: Use PodIP instead of HostIP for headless Services (#498) @nrobert13
- Support a comma separated list for the FQDN template (#512) @helgi
- Google Provider: Add auto-detection of Google Project when running on GCP (#492) @drzero42
- Add custom TTL support for DNSimple (#477) @jbowes
- Fix docker build and delete vendor files which were not deleted (#473) @njuettner
- DigitalOcean: DigitalOcean creates entries with host in them twice (#459) @njuettner
- Bugfix: Retrive all DNSimple response pages (#468) @jbowes
- external-dns does now provide support for multiple targets for A records. This is currently only supported by the Google Cloud DNS provider (#418) @dereulenspiegel
- Graceful handling of misconfigure password for dyn provider (#470) @jvassev
- Don't log sensitive data on start (#463) @jvassev
- Google: Improve logging to help trace misconfigurations (#388) @stealthybox
- AWS: In addition to the one best public hosted zone, records will be added to all matching private hosted zones (#356) @coreypobrien
- Every record managed by External DNS is now mapped to a kubernetes resource (service/ingress) @ideahitme
- New field is stored in TXT DNS record which reflects which kubernetes resource has acquired the DNS name
- Target of DNS record is changed only if corresponding kubernetes resource target changes
- If kubernetes resource is deleted, then another resource may acquire DNS name
- "Flapping" target issue is resolved by providing a consistent and defined mechanism for choosing a target
- New
--zone-id-filter
parameter allows filtering by zone id (#422) @vboginskey - TTL annotation check for azure records (#436) @stromming
- Switch from glide to dep (#435) @bkochendorfer
- Allow filtering by source annotation via
--annotation-filter
(#354) @khrisrichardson - Add support for Headless hostPort services (#324) @Arttii
- AWS: Added change batch limiting to a maximum of 4000 Route53 updates in one API call. Changes exceeding the limit will be dropped but all related changes by hostname are preserved within the limit. (#368) @bitvector2
- Google: Support configuring TTL by annotation:
external-dns.alpha.kubernetes.io/ttl
. (#389) @stealthybox - Infoblox: add option
--no-infoblox-ssl-verify
(#378) @khrisrichardson - Inmemory: add support to specify zones for inmemory provider via command line (#366) @ffledgling
- CloudFlare: Disable proxy mode for TXT and others (#361) @dunglas
- [AWS Route53 provider] Support customization of DNS record TTL through the use of annotation
external-dns.alpha.kubernetes.io/ttl
on services or ingresses (#320) @kevinjqiu - Added support for DNSimple as DNS provider (#224) @jose5918
- Added support for Infoblox as DNS provider (#349) @khrisrichardson
- Add
--log-level
flag to control log verbosity and remove--debug
flag in favour of--log-level=debug
(#339) @ultimateboy - AWS: Allow filtering for private and public zones via
--aws-zone-type
flag (#329) @linki - CloudFlare: Add
--cloudflare-proxied
flag to toggle CloudFlare proxy feature (#340) @dunglas - Kops Compatibility: Isolate ALIAS type in AWS provider (#248) @sethpollack
- ExternalDNS now services of type
ClusterIP
with the use of the--publish-internal-services
. Enabling this will now create the apprioriate A records for the given service's internal ip. @jrnt30 - Fix to have external target annotations on ingress resources replace existing endpoints instead of appending to them (#318)
- Support new
external-dns.alpha.kubernetes.io/target
annotation for Ingress (#312) - Fix for wildcard domains in Route53 (#302)
- Fix to support multiple hostnames for Molecule Software's route53-kubernetes compatibility (#301)
- Fix incorrect order of constructor parameters (#298)
- ExternalDNS now supports three more DNS providers:
- AzureDNS @peterhuene
- CloudFlare @njuettner
- DigitalOcean @njuettner
- Fixed a bug that prevented ExternalDNS to be run on Tectonic clusters @sstarcher
- ExternalDNS is now a full replace for Molecule Software's
route53-kubernetes
@iterion - The
external-dns.alpha.kubernetes.io/hostname
annotation accepts now a comma separated list of hostnames and a trailing period is not required anymore. @totallyunknown - The flag
--domain-filter
can be repeated multiple times like--domain-filter=example.com --domain-filter=company.org.
. @totallyunknown - A trailing period is not required anymore for
--domain-filter
when AWS (or any other) provider is used. @totallyunknown - We added a FakeSource that generates random endpoints and allows to run ExternalDNS without a Kubernetes cluster (e.g. for testing providers) @ismith
- All HTTP requests to external APIs (e.g. DNS providers) generate client side metrics. @linki
- The
--zone
parameter was removed in favor of a provider independent--domain-filter
flag. @linki - All flags can now also be set via environment variables. @linki
Features:
- Changed the flags to the v0.3 semantics, the following has changed:
- The TXT registry is used by default and has an owner ID of
default
--dry-run
is disabled by default- The
--compatibility
flag was added and takes a string instead of a boolean - The
--in-cluster
flag has been dropped for auto-detection - The
--zone
specifier has been replaced by a--domain-filter
that filters domains by suffix
- The TXT registry is used by default and has an owner ID of
- Improved logging output
- Generate DNS Name from template for services/ingress if annotation is missing but
--fqdn-template
is specified - Route 53, Google CloudDNS: Support creation of records in multiple hosted zones.
- Route 53: Support creation of ALIAS records when endpoint target is a ELB/ALB.
- Ownership via TXT records
- Create TXT records to mark the records managed by External DNS
- Supported for AWS Route53 and Google CloudDNS
- Configurable TXT record DNS name format
- Add support for altering the DNS record modification behavior via policies.
Features:
- Support creation of CNAME records when endpoint target is a hostname.
- Allow omitting the trailing dot in Service annotations.
- Expose basic Go metrics via Prometheus.
Documentation:
- Add documentation on how to setup ExternalDNS for Services on AWS.
Bug fixes:
- AWS Route 53: Do not submit request when there are no changes.
Features:
- Manage DNS records for Services with
Type=LoadBalancer
on Google CloudDNS.