Commit Graph

4924 Commits

Author SHA1 Message Date
Arttii
cbc539f874 Add support for Headless hostPort services (#324)
* Added initial support for Headless services

* service.go: Fixed some formatting

* forgot to run gometalinter

* service: implemented alternative proposal, to reuse existing annotation

* source: some refactoring
2017-11-20 21:06:42 +01:00
Nick Jüttner
eb51f7f577
Merge pull request #389 from stealthybox/google-ttl
Google Provider Add Ttl from annotations
2017-11-17 10:25:00 +01:00
leigh schrandt
65f4239d44 provider=google: Add Ttl from annotations:
Use `int64(ep.RecordTTL)` in `newRecord()`
Fallback to hardcoded 300s for backwards-compat
Add `TestNewRecords()`
Add notes in *ttl.md*
2017-11-14 15:23:51 -07:00
Lars Kristian Bremnes
238dfb1102 Doc: how to use Azure DNS from non-Azure cluster (#385)
* How to use Azure DNS from non-Azure cluster

If the cluster is not Azure Container Service (or acs-engine) the configuration file for Azure DNS needs to be created manually.

* Azure.md, give explicit name to Service Principal
2017-11-13 16:09:46 +01:00
Khris Richardson
84634fd1a7 address #378 (#384) 2017-11-13 15:11:05 +01:00
Stan Lagun
0b870d1850 Support for https for etcd connection
This commit adds ability to use TLS transport for etcd.
New logic is applied when the etcd URL has https:// scheme.
TLS parameters are passed in the environment variables:

ETCD_CA_FILE - path to CA certificate. If not specified, then
system-provided certificates are used.

ETCD_CERT_FILE - client certificate
ETCD_KEY_FILE - client key file
- either both of none of this two must be specified

ETCD_TLS_SERVER_NAME - expected CN of the certificate. Useful when
URL points to a different domain from that in server certificate

ETCD_TLS_INSECURE - if set to "1" (or "true" or "yes") makes client
bypass server certificate validation.

Also for unification with other providers and rest of connection
settings, etcd URL is no longer specified in the command line, but
rather in ETCD_URLS environment variable (defaults to
http://localhost:2379). More than one comma-separated URL can be
specified. All of the URLs must start with either http:// or https://

Also, now it possible to communicate with etcd through proxy specified
in standard environment variables
2017-11-10 14:20:14 -08:00
Raffaele Di Fazio
cc498e1aef
Merge pull request #374 from bitvector2/master
Fix for #368
2017-11-10 15:35:33 +01:00
Steven Logue
1202cb2185 added AWS API limit function and unit tests 2017-11-09 10:01:21 -08:00
Khris Richardson
b23765ed27 allow filtering by source annotation (#354)
* allow filtering by ingress class

* generic source annotation filter as opposed to ingress class filter

* rename and fix argument ordering, switch to label selector semantics

* remove redundant parameters
2017-11-09 10:14:40 +01:00
Tom Downes
9d6d137f65 Fix minimum version of external-dns container to match that needed for InfoBlox DNS provider. (#383) 2017-11-07 20:45:43 +01:00
Stan Lagun
70efda13c1 Support for multi-target domains
This commit adds ability to have several endpoints for single domain
name with CoreDNS by adding random to the DNS name and setting
TargetStrip to 1 so that it will be stripped upon read. When TXT
record is encountered, it is merged with the first available A
record, if any available. Otherwise dedicated record is created.
2017-11-06 14:22:13 -08:00
Stan Lagun
48f8f9b647 CoreDNS/SkyDNS provider
This commit adds support for CoreDNS through its etcd middleware.
Because the middleware is backward compatible with SkyDNS this
commit adds support for SkyDNS as well. In fact, new provider
is available under two names in CLI (coredns and skydns).

All interactions with middleware happen through etcd cluster,
whose location (URIs) is specified via --etcd CLI parameter
by default http://localhost:2379).

The provider translates CoreDNS/DkyDNS SRV records to
A/CNAME + optional TXT endpoints, when reading from etcd and
combines A/CNAME with TXT endpoints back into single SRV record
when writing it back.

Also adds github.com/coreos/etcd package to glide.yaml and vendor folder
because it is used by the provider
2017-11-06 14:22:13 -08:00
Nick Jüttner
fadd0bddfb
Merge pull request #375 from spiffxp/assignees-to-approvers
Rename OWNERS assignees: to approvers:
2017-11-01 14:49:30 +01:00
Aaron Crickenberger
11567b3032 Rename OWNERS assignees: to approvers:
They are effectively the same, assignees is deprecated
2017-10-31 17:46:08 -07:00
Nick Jüttner
3e2db57c87 use the external-dns slack channel, add section how to become a maint… (#359)
* use the external-dns slack channel, add section how to become a maintainer for provider

* Update maintainer section
2017-10-25 16:43:28 +02:00
Anhad Jai Singh
6134fe98fb Fixes #366 (#367)
- Add `--inmemory-zone flag`
- Implement `InMemoryZoneInit` function to setup initial zones for
  inmemory provider
- Make "" the default zone for the inmemory provider instead of
  nil/none when no initial zones are specified
- Update config/flag parsing tests to accept new flag
2017-10-25 10:25:43 +02:00
Sandor Szücs
723b8294da fix nil ptr dereference in inmemroy provider (#365)
* fix nil ptr dereference if zoneid does not match and we get empty string from im.filter.EndpointZoneID(ep, zones)

* add test that passes a not defined zone

* reuse the init struct to use it with expectedZonesState

* try to work around pointer check problem from assert.Equal, if this does not work we have to do a deep check

* use deep compare to test and not just check references

* remove test case that I added before and do not reflect the test needed to be done

* remove zone fiel that is not needed and use assert.Equal which is fine
2017-10-24 14:22:15 +02:00
Kévin Dunglas
19ab8cd6ac Cloudflare: Disable proxy mode for TXT and others (#361)
* Cloudflare: Disable proxy mode for TXT and others

* Improve code according to review

* Add test

* Disable proxy mode for wildcards

* Fix review, add test

* Move var

* chore: fix some golang related stuff

* chore: update changelog to reflect latest changes
2017-10-18 10:58:36 +02:00
Martin Linkhorst
4efa187801
chore: update changelog to reflect latest changes 2017-10-12 14:46:00 +02:00
Khris Richardson
cab3e0454e Initial commit of Infoblox provider (#349)
* Initial commit of Infoblox provider

* address @ideahitme's observations

* fail at addressing @szuecs comments

* fix(infoblox): avoid shadowing err variable

* fix flag descriptions

* default ssl verify to true. thanks @szuecs

* chore(infoblox): bump minium required version

This should ideally be a minor bump but let's do that when we have v0.5
2017-10-12 13:41:18 +02:00
Kevin J. Qiu
71723bdd5b Allow specifying a custom TTL through annotation on Ingress or Service (#320)
* Add RecordTTL

* Route53: test for custom TTL

* Fix tests

* Fix remaining tests

* Add ttl when endpoint is created from ingress

* Missed a word

* Fix bad refactoring

* Add ingress custom TTL test

* gofmt

* Satisfy go-lint

* Unshadow `endpoint` in azure provider

* Fix and add an output test

* Add TTL for endpoints generated from service templates

* Take TTL into account when generating update plan

* Tests for TTL change impact on the plan

* Refactor factory method name

* Refactoring

* Run gofmt

* Make endpoint string format look like BIND config

* Update plan and plan_test

* Replace NewEndpointWithTTLValue with NewEndpointWithTTL in aws

* Remove NewEndpointWithTTLValue func

* Update references to TTL

* Remove getTTLValue func

* Handle merge conflict

* Update tests

* Update README, CHANGELOG and documentation

* Run gofmt

* Move getTTLFromAnnotations to a common file

* Refactor getTTLFromAnnotations

* Gofmt

* Add tests for getTTLFromAnnotations

* Trigger build

* Add boilerplate header

* Update README/CHANGELOG according to code review

* Add ttl.md and link it from README

* change CNAME string to endpoint.RecordTypeCNAME

* fix test cases with AWS ALIAS records, these do not behave different in these tests
2017-10-11 14:17:02 +02:00
Nick Jüttner
f5639c4cb7 #228 Simplify DNS provider requirements by extracting common (#263)
* #228 Simplify DNS provider requirements by extracting common

* #228 Simplify DNS provider requirements by extracting common

* Missing boilerplate added

* rename recordtypefilter, fail fast statements

* rework zone finder, update deps

* chore: drop namespace from cloudflare method name
2017-10-11 12:16:28 +02:00
jose5918
09c35b6790 Adds Dnsimple as new provider (#224)
* Adds Dnsimple as a provider

* chore(vendor): remove vendor for smaller diff

* fix(config): make dnsimple selectable via flags

* Fix delete and update

* Dnsimple testify mock tests

* remove leaked file

* Move and simplify mock functions

* chore: use lowercase for logrus repository

* chore: update dependencies using glide

* chore: vendor dnsimple-go package

* ref: isolate suitable type in source package

* add support for DNSimple, thx @jose5918 :D
2017-10-11 12:11:14 +02:00
Raffaele Di Fazio
10177accdf Added link to video demo in README (#355) 2017-10-10 23:17:45 +02:00
Martin Linkhorst
3331a57a18 Fix issue with uppercase logrus import (#351)
* chore: use lowercase for logrus repository

* chore: update dependencies using glide
2017-10-09 17:14:18 +02:00
Stan Lagun
09a6f6bac8 Tutorial with example on how to use Designate was added 2017-09-22 20:55:08 -07:00
Stan Lagun
7e540d4158 TLS parameters support for OpenStack
TLS parameters can be passed through the following environment
variables:
* OPENSTACK_CA_FILE - CA file path
* OPENSTACK_CERT_FILE - cert file path
* OPENSTACK_KEY_FILE - key file path. Either both or none of cert/key
  must be specified
* OPENSTACK_TLS_SERVER_NAME - (optional) expected CN of the server
  certificate if differs from domain in the URL
* OPENSTACK_TLS_INSECURE - if set to yes|true|1 disables validation of
  the server certificate

Code that loads tls.Config from environment variables was extracted
into dedicated package so that it could be reused by different providers
2017-09-22 20:55:08 -07:00
Stan Lagun
0cb99281ff OpenStack Designate provider 2017-09-22 20:55:08 -07:00
Martin Linkhorst
485ede3228
chore: update changelog to reflect latest changes 2017-09-22 16:45:35 +02:00
Matt Tucker
06c7ea8590 add --log-level=<level> flag to override log-level, remove --debug flag (#339) 2017-09-20 08:57:28 +02:00
Martin Linkhorst
dd1cc4d553 feat(provider/aws): allow filtering for private/public zones (#329) 2017-09-19 23:15:31 +02:00
Kévin Dunglas
02c38d5cf7 Add a new --cloudflare-proxied flag to toggle Cloudflare proxy feature (#340)
* Add a new --cloudflare-proxied flag to toggle Cloudflare proxy feature

* Change flag description
2017-09-18 10:54:08 +02:00
Seth Pollack
826a27fddd Add suitableType for ingress (#325)
* fix ingress

* add tests for detecting type for target annotation
2017-08-30 17:13:54 +02:00
Seth Pollack
f14a953b5f Kops Compatibility #1: Set RecordType at source (#248)
* set RecordType at source

* add comments for linting
2017-08-25 14:41:40 +02:00
Henning Jacobs
a7a1cbc179 chore: update changelog to reflect actual releases 2017-08-17 22:49:46 +02:00
Justin Nauman
9b32e16204 ClusterIp Service support (#278)
* ClusterIP service support

- First pass at addresssing #187 by allowing services with type ClusterIP to be directly supported

* Getting existing tests to pass

* Adjusting formatting for gofmt/govet

* Adding in guard logic around publishing of ClusterIP sources

* Addressing PR feedback

* Adding in CHANGELOG entry

* Adding in Headless service test
2017-08-17 22:39:06 +02:00
Clayton O'Neill
ea4cbfe803 Ingress target annotation should set, not append (#318)
If the user has specified a target for the ingress, treat that as
overriding any endpoints already set on the ingress, even if that list
is not empty.  This allows overriding the IP address or hostname set
when using a service like kube-keepalived-vip.
2017-08-17 22:27:14 +02:00
Henning Jacobs
c386e2c094 Add Logo for ExternalDNS (#313)
* feat: add a logo

* move logo above headline and make it smaller

* make it even smaller to fit README

* enlarge logo and center align it

* try with div align center

* center using p
block
2017-08-16 19:45:34 +02:00
Martin Linkhorst
407dba8340
chore: correct some spelling mistakes 2017-08-11 17:16:33 +02:00
Mohammad Asif Siddiqui
8c8402514b Add GoReport Widget (#317) 2017-08-11 11:28:15 +02:00
Henning Jacobs
d54cd72e94 Support for annotation based targets for Ingress (#312)
* Support for annotation based targets for Ingress

* stay DRY: extract into addEndpointsFromTargetAnnotation
2017-08-10 20:53:22 +02:00
Martin Linkhorst
5d3926bdff docs: document how to configure sources via env vars (#310) 2017-08-10 20:23:55 +02:00
Maxim Ivanov
396e084465 Fix for wildcard domains handling in Route53 (#302)
* Fix for wildcard domains handling in Route53

Wildcard domains (*.abc) are stored as "\\052.abc" in Route53,
which confuses external-dns as it tries to recreate entry over and
over.

It is confusing, but documented behaviour of Route53:
http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html?shortFooter=true#domain-name-format-asterisk

* Added tests for wildcard unescaping
2017-08-09 23:02:58 +02:00
Martin Linkhorst
d4cc1fbef3
docs: update docs to the latest release 2017-08-03 09:47:53 +02:00
Martin Linkhorst
29582ba42d
chore: update changelog with Molecule fix 2017-08-03 09:44:51 +02:00
Martin Linkhorst
646373312a feat: support multiple hostnames for molecule (#301) 2017-08-02 19:11:13 +02:00
Peter Luttrell
24e871faa7 Update README.md and docs/faq.md (#296)
* Update the docs/faq.md to include details on propertly setting up nginx-ingress-controller to assign the fqdn of ELBs on AWS.

* Updated the README.md to include links to the tutorials to the various platforms.

* Corrected invalid YAML.
2017-08-01 14:17:13 +02:00
Martin Linkhorst
0a6c750971
chore: update changelog with v0.4.1 changes 2017-07-31 09:57:48 +02:00
Martin Linkhorst
eb0d6ee70d fix(source): use correct order of parameters (#298) 2017-07-28 14:00:41 +02:00
Martin Linkhorst
aa17c342a6 docs(faq): add answer for how to run ExternalDNS under service account (#293) 2017-07-27 23:25:43 +02:00