- 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.