Commit Graph

383 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
3b98597ae1
Merge pull request #2037 from packi/gandi-provider
Add Gandi provider
2021-06-23 00:20:10 -07:00
David Dymko
efe799e215 update vultr to use API v2 2021-06-04 16:12:27 -04:00
mmerrill3
539aa8980e Adding ability to query Infoblox API using regex for fqdn (#2102)
Signed-off-by: mmerrill3 <jjpaacks@gmail.com>
2021-05-27 09:22:22 -04:00
Bogdan
2476e77541 Add the --default-targets flag
This is a useful feature in environments
with public global WAN address(es)
2021-05-21 08:21:14 +02:00
Kubernetes Prow Robot
a5baad26d7
Merge pull request #1993 from ba-work/master
add krb5 realm support
2021-04-15 08:41:50 -07:00
Patrick Stählin
b5f7570c35 Add Gandi provider 2021-04-04 20:54:23 +02:00
Enrique Gonzalez
a09c416fc8
Merge remote-tracking branch 'origin/master' into df-regex 2021-03-30 15:19:46 +02:00
Kubernetes Prow Robot
d7be11b611
Merge pull request #2013 from tjamet/feat/flag-min-sync
Add the ability to configure k8s event rate limit
2021-03-25 13:51:46 -07:00
Thibault Jamet
43f9f564b3
Rename MinInterval to MinEventSyncInterval
Co-authored-by: Raffaele Di Fazio <raffo@github.com>
2021-03-24 11:27:18 +01:00
Brock Alberry
f9ad22cbbd
Merge branch 'master' into master 2021-03-18 14:05:18 -04:00
Kubernetes Prow Robot
030d86c201
Merge pull request #1693 from LuxChanLu/gloo-proxy
feat: add gloo proxy source
2021-03-18 07:51:19 -07:00
Kubernetes Prow Robot
87960f94ef
Merge pull request #1506 from KohlsTechnology/add-bluecat-provider
Add Initial BlueCat Provider Support
2021-03-18 07:45:19 -07:00
stovemeerkat
0b8e047d2e rfc2136: Add new flag to specify Kerberos realm for GSS-TSIG 2021-03-18 11:36:46 +01:00
Tim Curless
e20aea4d5f Add Initial BlueCat Provider Support
The new BlueCat provider uses the BlueCat API Gateway(REST API). Not
the legacy XML based BlueCat API.

https://github.com/bluecatlabs/gateway-workflows
2021-03-17 17:29:03 -05:00
Thibault Jamet
72b4b4f411
Add the ability to configure k8s event rate limit
Currently, the minimum delay between 2 kubernetes events handling is
hard-coded to 5s.

This may cause higher synchronization rates and higher DNS provider API
calls when handling an important number of kubernetes events at once.

Give the opportunity to configure this delay so service owners can
define the acceptable thresholds on their side
2021-03-16 11:59:00 +01:00
Hugome
5221b1d525
feat: add gloo proxy source 2021-03-03 22:34:22 +01:00
Brock Alberry
fa857131c2 add krb5 realm support 2021-03-03 21:28:11 +00:00
Enrique Gonzalez
fd365034da
git: merge upstream master
Signed-off-by: Enrique Gonzalez <goga.enrique@gmail.com>
2021-03-03 12:05:11 +01:00
Kubernetes Prow Robot
38da5fdc22
Merge pull request #1924 from Fred78290/godaddy
Godaddy
2021-02-12 01:22:47 -08:00
Enrique Gonzalez
e3c14b5490
refactor: regexp types for filter and add tests 2021-02-10 12:38:57 +01:00
Dustin Scott
1e4c1e299d Add RFC3645 support for secure updates with GSS-TSIG 2021-02-05 08:40:31 -06:00
Eric R. Rath
e3feec4c8f
Merge branch 'master' into oci-auth-instance-principal 2021-01-30 17:41:58 -08:00
fboltz
f7f90733ce Merge remote-tracking branch 'kubernetes-sigs/master' into godaddy 2021-01-30 10:22:48 +01:00
Kubernetes Prow Robot
c47ac9ba46
Merge pull request #1912 from sfc-gh-jelsesiy/azure-private-dns
Refactor azure private dns auth
2021-01-21 10:57:02 -08:00
Frederic BOLTZ
33e53edcd4
Update main.go
Co-authored-by: Nick Jüttner <nick@juni.io>
2021-01-19 14:31:47 +01:00
fboltz
d3c30919ba Merge branch 'master' into godaddy 2021-01-17 17:30:50 +01:00
fboltz
7ccc70b12f Change arguments: Switch to OTE and add TTL 2021-01-17 17:22:57 +01:00
Kubernetes Prow Robot
71953230cc
Merge pull request #1870 from edglynes/akamai-provider-1846
Refactor, cleanup Akamai provider
2021-01-13 01:04:35 -08:00
Raffaele Di Fazio
daeee26684
Add flag to opt in for NS records management (#1915)
* adds flag to opt in for NS records management

Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>

* go fmt

Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>

* goimports

Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>

* fix more tests

Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>

* go fmt again

Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>

* fix test

Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>

* more tests

Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>

* make ordering of managed records consistent

Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>

* fix flag

Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>
2021-01-12 06:32:26 -08:00
fboltz
72f0be6eb7 FEAT: Add GoDaddy provider
First commit
2021-01-10 19:23:02 +01:00
Jonas-Taha El Sesiy
c851a7973e
Refactor azure private dns auth
Add common config to be shared by both azure and azure-private-dns providers
Update tests & docs
2021-01-08 12:20:43 -08:00
Edward Lynes
71a9a73f39 Merge branch 'master' into akamai-provider-1846 2021-01-04 14:03:32 -05:00
Kubernetes Prow Robot
9d2aaf0efe
Merge pull request #1695 from dansimone/dansimone/support-wildcard-records
Support wildcard records - Optional ability to replace the asterisk in generated registry TXT records with another string
2020-12-09 08:24:50 -08:00
Edward Lynes
75429cc504 Refactor and clean up akamai provider
refactor: remove dns api logic and use dns api library
enhancement: add additional args for auth credential retieval
cleanup: simplify, organize processing logic
test: update automation and validate
2020-11-23 14:34:44 -05:00
Enrique Gonzalez
76817b350f
git: merge upstream master
Signed-off-by: Enrique Gonzalez <goga.enrique@gmail.com>
2020-11-03 16:29:36 +01:00
João Marçal
79ea64884b
Added labelFilter for source CRD (#1461)
* Added label filter for source CRD

* Fixed bug with labels and added tests for source CRD

* Fixed formating

* Update source/crd_test.go

Co-authored-by: Vinny Sabatini <vincent.sabatini@gmail.com>

Co-authored-by: Vinny Sabatini <vincent.sabatini@gmail.com>
2020-09-24 01:28:05 -07:00
Kubernetes Prow Robot
32fedeaf07
Merge pull request #1645 from Caascad/ignore_tls_rules
Optionally ignore tls rules in ingress source
2020-09-24 01:12:05 -07:00
Benjile
fefb1b2777 Optionally ignore tls rules in ingress source 2020-09-18 09:12:14 +02:00
Kubernetes Prow Robot
699a8b3cb5
Merge pull request #1060 from titilambert/master
Add --zone-name-filter option for azure provider
2020-09-16 00:43:19 -07:00
Eric R. Rath
69510e662f Merge branch 'master' into oci-auth-instance-principal 2020-09-12 09:00:49 -07:00
Eric R. Rath
cd5039364b Merge branch 'master' into oci-auth-instance-principal 2020-09-04 09:08:08 -07:00
Benjamin Pineau
837d1ea248 aws: cache zones list
When it syncs AWS DNS with k8s cluster content (at `--interval`), external-dns submits two distinct Route53 API calls:
* to fetch available zones (eg. for tag based zones discovery, or when zones are created after exernal-dns started),
* to fetch relevant zones' resource records.

Each call taxes the Route53 APIs calls budget (5 API calls per second per AWS account/region hard limit), increasing the probability of being throttled.
Changing synchronization interval would mitigate those calls' impact, but at the cost of keeping stale records for a longer time.

For most practical uses cases, zones list aren't expected to change frequently.
Even less so when external-dns is provided an explicit, static zones set (`--zone-id-filter` rather than `--aws-zone-tags`).

Using a zones list cache halves the number of Route53 read API calls.
2020-09-03 13:03:07 +02:00
Thibault Cohen
dac21e3aff Add --zone-name-filter option for azure provider 2020-09-02 16:23:12 -04:00
Kubernetes Prow Robot
8c3220b527
Merge pull request #1576 from newrelic-forks/dennisme/minttl-ns1
ns1: add minttlseconds
2020-09-02 01:13:07 -07:00
dan.simone@oracle.com
e3bac0fb55 Merge remote-tracking branch 'origing/master' into dansimone/support-wildcard-records
# Conflicts:
#	registry/txt.go
#	registry/txt_test.go
2020-09-01 11:24:44 -07:00
Eric R. Rath
434c1ca241 Merge branch 'master' into oci-auth-instance-principal 2020-08-20 14:20:35 -07:00
Tariq Ibrahim
600f4f1ba0
fix goimports local import order and update golangci-lint 2020-08-19 20:05:07 -07:00
Patrik Cyvoct
9a7a873ce8
Add Scaleway DNS as a new provider
Signed-off-by: Patrik Cyvoct <patrik@ptrk.io>
2020-08-19 06:41:42 +02:00
Matt Dennison
f69a82f8c6 Merge branch 'master' of https://github.com/kubernetes-sigs/external-dns into dennisme/minttl-ns1 2020-08-11 23:17:48 -07:00
Enrique Gonzalez
dea8bce9fe
Merge remote-tracking branch 'upstream/master' into df-regex 2020-08-10 11:27:11 +02:00
Eric R. Rath
07cfb7fdfb fixed linting error - no punc in errors 2020-07-31 14:18:37 -07:00
Eric R. Rath
51cf0d931c OCI provider: add support for OCI IAM instance principal authentication
Oracle Cloud Infrastructure (OCI) supports "instance princpal" authentication.
From
<https://docs.cloud.oracle.com/en-us/iaas/Content/Identity/Tasks/callingservicesfrominstances.htm>:

> After you set up the required resources and policies, an application running
> on an instance can call Oracle Cloud Infrastructure public services, removing
> the need to configure user credentials or a configuration file.

This change adds support to the OCI provider for instance principal
authentication when external-dns is run on an OCI instance (e.g. in OCI OKE).
Existing support for key/fingerprint-based authentication is unchanged.
2020-07-31 13:46:26 -07:00
dan.simone@oracle.com
b01daf5927 Support wildcard records - Optional ability to replace the asterisk in generated registry TXT records with another string 2020-07-29 12:01:33 -07:00
Kushal Bhandari
768211d6ff
Merge branch 'master' into master 2020-07-10 10:49:48 -04:00
Raffaele Di Fazio
7505f29e4c
Remove occurrences of "master" from the project (#1636)
* intial removal of inappropriate terminology

Signed-off-by: Raffaele Di Fazio <raffo@github.com>

* removed other occurrences

Signed-off-by: Raffaele Di Fazio <raffo@github.com>

* gofmt

Signed-off-by: Raffaele Di Fazio <raffo@github.com>

* addresses comment

Signed-off-by: Raffaele Di Fazio <raffo@github.com>

* gofmt

Signed-off-by: Raffaele Di Fazio <raffo@github.com>
2020-07-08 01:13:08 -07:00
Kushal Bhandari
3b085c5fcc
Merge branch 'master' into master 2020-06-30 11:18:58 -07:00
Tariq Ibrahim
96cffaff93
rm unused flag param istio-ingressgateways 2020-06-26 17:13:26 -07:00
Kushal Bhandari
4809e19d4e
Merge branch 'master' into master 2020-06-18 10:56:13 -07:00
Kubernetes Prow Robot
0f186d31b5
Merge pull request #1570 from 21h/master
Hetzner DNS service support
2020-06-18 09:14:20 -07:00
kbhandari
521fff448b Added golints recommendations 2020-06-17 17:16:25 +00:00
kbhandari
dd7d24a5db Made changes according to the new external-dns changes 2020-06-17 15:14:37 +00:00
Kushal Bhandari
00da3a130f
Merge branch 'master' into master 2020-06-16 13:55:52 -07:00
kbhandari
db3fdfb1d9 Finalized version of ultradns provider 2020-06-15 19:03:37 +00:00
kbhandari
844b787dba Started making changes on ultradns plugin 2020-06-15 19:03:31 +00:00
Vladimir Smagin
28c01075d0 Merge branch 'master' of github.com:kubernetes-sigs/external-dns 2020-06-09 23:57:15 +07:00
Hugome
ba5afe9518
Add OVH API rate limiting option 2020-06-09 08:56:32 +02:00
Tom Dyas
51fd8a91d3 make page size a configurable option 2020-06-05 21:23:14 -07:00
Kubernetes Prow Robot
1afc720cda
Merge pull request #1567 from sheerun/fix-scheduling
Fix scheduling of reconciliation
2020-05-22 09:59:10 -07:00
Adam Stankiewicz
1806ade2c1 Fix scheduling of reconciliation 2020-05-19 17:26:12 +02:00
Matt Dennison
6176d8151d feat: ns1 min-ttl-seconds 2020-05-14 08:58:54 -07:00
Vladimir Smagin
7aecb284e0 Add hetzner support (#1)
To run:

provide token HETZNER_TOKEN in ENV
set command line parameter --provider=hetzner
2020-05-14 08:56:19 +07:00
Johannes Grumböck
c80909f0e7 Added txt-suffix feature (rebased) 2020-05-12 13:35:40 +00:00
Raffaele Di Fazio
db4224c705 restructures the providers (build only)
Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>
2020-05-08 13:05:17 +02:00
David Dymko
a80d7cf6fc adding vultr provider spots 2020-04-10 08:09:59 -04:00
Enrique Gonzalez
c5e0227180
feat: add regex domain filters
Signed-off-by: Enrique Gonzalez <goga.enrique@gmail.com>
2020-04-09 14:37:45 +02:00
Kubernetes Prow Robot
1e66c4a4ff
Merge pull request #1439 from Hugome/provider-ovh
Add OVH Provider
2020-03-17 01:40:22 -07:00
Kubernetes Prow Robot
ec7c6ba4d7
Merge pull request #1442 from freenowtech/filter-record-creation
Change DomainFilter to apply to records as well
2020-03-10 09:03:35 -07:00
Hugome
62ac50229c
Remove 'Generate consumer key' options and add more docs on that 2020-03-10 15:11:32 +01:00
Hugome
430e357d27
Add OVH Provider
- OVH Provider
 - Tests
 - Documentations
2020-03-10 14:37:52 +01:00
Sandor Szücs
116856f422
implement RouteGroup with similar feature set to ingress
add documentation for kube-ingress-aws-controller and RouteGroup

Signed-off-by: Sandor Szücs <sandor.szuecs@zalando.de>
2020-03-05 17:14:30 +01:00
Kubernetes Prow Robot
a563022e8a
Merge pull request #1005 from devkid/feature/headless-services-publishnotreadyaddresses
Headless service: retrieve endpoints via Endpoints resource; evaluate spec.publishNotReadyAddresses
2020-03-04 05:37:46 -08:00
Markus Cisler
14d64e09f2 Change DomainFilter to apply to records as well
This moves `domain_filter.go` to the `endpoint` package to make it
possible to filter and exclude record names in
`plan.filterRecordsForPlan()` so it does not have to be implemented in
every single provider.

Because some providers access `DomainFilter.filters` directly it had to
be exported.
2020-02-24 11:19:45 +01:00
Alfred Krohmer
6cab35b404 Add CLI option to always publish not ready addresses of headless services 2020-02-18 19:43:41 +01:00
Oguz Kilcan
21275c9aa0
Updated minTTL variable type from int64 to Duration 2020-02-12 12:18:18 +01:00
Oguz Kilcan
b6111b9768
Refactoring after review
* Updated TTL variable type to int64
* Updated rfc2136 contructor to have nil as last variable
* Removed unnecessary variable `data`
2020-02-11 10:41:09 +01:00
Oguz Kilcan
86c9332b17
Add option to define minimum TTL for rfc2136 provider 2020-02-06 18:23:28 +01:00
jlamillan
fed2f0f0dd
Add --events flag to use informers to automatically trigger sync loop on adds/updates/deletes for supported ingress and service sources. 2020-01-27 11:00:26 -08:00
k.siemer
3d821d74ce Added new provider: Akamai FastDNS 2020-01-21 15:47:02 +01:00
Tariq Ibrahim
a5896c2326
remove context.TODO()s in external-dns 2020-01-15 13:59:20 -08:00
Jaromir Vanek
3f488acd6c AWS-SD: Rebrand AWS Auto Naming to Cloud Map 2020-01-07 17:25:35 -08:00
Tariq Ibrahim
41ba7f1ff5
rename project root package to sigs.k8s.io 2020-01-06 08:08:35 -08:00
Tongyao Si
0c4878f115 feat(Azure): support specifying user assigned identity's clientID to authenticate 2019-11-28 19:08:45 +08:00
saidst
eb0cdb0962 Created Azure Private DNS Provider by forking Azure Provider. 2019-11-19 12:04:46 +01:00
Kubernetes Prow Robot
e9c834ae9b
Merge pull request #1248 from vdesjardins/clouddns-batching
Google Provider: add support for batching updates
2019-11-19 02:23:42 -08:00
Vincent Desjardins
ce94d2f328
Google Provider: add support for batch interval.
The parameter is google-batch-change-interval.
Default value is 2s.
2019-11-01 21:27:21 -04:00
Nick Jüttner
f763d2a413 Move into kubernetes-sigs organization (#1245)
* Move into kubernetes-sigs organization

* Disable labeler action for forks
2019-11-01 17:10:19 +01:00
Vincent Desjardins
ce2eadcd66
Google Provider: add support for batching updates
The parameter is google-batch-change-size.
Default value is 1000.
2019-10-31 13:41:02 -04:00
Corey O'Brien
3a62d4eaea Fix --aws-api-retries 2019-08-22 08:35:00 -04:00
Kubernetes Prow Robot
32043f29ac
Merge pull request #1102 from xunpan/config-prefix
add option for coredns to specify prefix name
2019-07-31 02:40:24 -07:00
Kubernetes Prow Robot
eb54263256
Merge pull request #1084 from jonasrmichel/feature/contour-ingressroute
Add source implementation for Heptio Contour IngressRoute
2019-07-30 08:54:51 -07:00
Kubernetes Prow Robot
4421b019d5
Merge pull request #1103 from linki/prefer-cname
Allow to force usage of CNAME over ALIAS
2019-07-26 04:19:59 -07:00
xunpan
b73f67793a
Merge branch 'master' into config-prefix 2019-07-22 22:36:25 +08:00
Jason-ZW
f685704fcc Add rancher dns(RDNS) provider 2019-07-19 19:40:00 +08:00
Martin Linkhorst
4dce600a2b feat(aws): allow to force usage of CNAME over ALIAS 2019-07-17 14:46:32 +02:00
xunpan
984e7de398 add option for coredns to specify prefix name 2019-07-17 02:47:23 -04:00
Jonas Michel
aa551ac704 Add Contour IngressRoute source implementation 2019-07-04 20:06:24 -05:00
Dave Grizzanti
656ec36532 add domain filter for vinyl 2019-07-01 15:34:26 -04:00
Dave Grizzanti
5b28d7f7f3 Add VinylDNS as a provider 2019-06-27 11:07:21 -04:00
Curtis Mattoon
111ad4f72f Add tests for DomainFilter.IsConfigured 2019-05-22 12:19:26 -04:00
Kubernetes Prow Robot
6b07f97eb2
Merge pull request #953 from dsbrng25b/infoblox-max-results
Add --infoblox-max-results setting
2019-05-19 03:35:11 -07:00
Dave Grizzanti
ef88346b9b Rebase for go modules 2019-05-10 11:38:54 -04:00
Dave Grizzanti
81a3fde458 Removing changes to main 2019-05-10 11:34:57 -04:00
Dave Grizzanti
b529a92d5b Add Cloud Foundry routes as a source 2019-05-10 11:34:57 -04:00
Reinier Schoof
3323229ae0 Merge branch 'master' of github.com:kubernetes-incubator/external-dns into transipSupport 2019-05-07 13:23:47 +02:00
Reinier Schoof
a2b07c1383 added TransIP provider 2019-04-28 14:42:07 +02:00
mburtless
4fdeef3f2f Add flags for configuring custom NS1 endpoint and ignoring SSL verification for PrivateDNS support 2019-04-26 10:47:17 -04:00
mburtless
3d46e95f65 Add boilerplate to ns1 provider and tests and simplfy code for inititializing provider 2019-04-22 11:43:38 -04:00
mburtless
bff09c20c9 Initial Skeleton From NS1 Provider
This needs unit tests and a full integration test.

Pushing this as an initial checkpoint.
2019-04-22 11:43:38 -04:00
David Schneider
1a721ac5ce Add --infoblox-max-results setting
The number of objects returned by the infoblox api is limited to 1000 objects
(see https://ipam.illinois.edu/wapidoc). If there are more then 1000 objects
the API returns an error. By setting max-results one can raise the limit.
2019-03-31 18:36:02 +02:00
Christian Glombek
0076e4156c Add support for multiple Istio Ingress Gateways
The --istio-ingress-gateway flag may now be specified multiple times.
2019-03-18 22:13:44 +01:00
Kubernetes Prow Robot
c3702c9130
Merge pull request #895 from dsbrng25b/infoblox-dns-view
Infoblox provider support for DNS view
2019-03-18 09:44:22 -07:00
David Schneider
909e376387 Make view configurable for infoblox provider 2019-03-15 18:05:50 +01:00
Dimitrij Klesev
6da894253e
Run gofmt on main 2019-02-19 11:21:23 +01:00
Dimitrij Klesev
79bf8c807e
Add RcodeZero Anycast DNS provider 2019-02-19 11:20:15 +01:00
Anand Patel
60a79b698b merge with master 2019-02-14 15:17:03 -05:00
njuettner
8810311ca8 Resolving conflicts 2019-01-28 14:15:09 +01:00
Anand Patel
a023ad7475 merge with master 2019-01-18 10:54:24 -05:00
Joe Hohertz
7a28e3047a Adds a new flag --aws-api-retries which allows overriding the
number of retries that API calls will attempt before giving up.

This somewhat mitigates the issues discussed in #484 by allowing
the current sync attempt to complete vs. failing and starting anew.

Defaults to 3, which is what the aws-sdk-go defaults to where not
specified.

Signed-off-by: Joe Hohertz <joe@viafoura.com>
2019-01-17 12:37:27 -05:00
njuettner
370bae6dd3 Cloudflare pagination for zones 2019-01-16 16:13:49 +01:00
Cesar Wong
65e13af9b7 Add zone tag filter for AWS 2018-12-07 10:38:52 -05:00
Anand Patel
3454363d67 allow hostname annotations to be ignored 2018-10-17 17:17:15 -04:00
k8s-ci-robot
dd352b347b
Merge pull request #702 from mackIOConsulting/rfc2136_provider
Rfc2136 provider
2018-10-11 05:49:34 -07:00
Martin Linkhorst
7dbd6b0fa9
fix: pass all relevant CLI flags to AWS provider (#719) 2018-09-27 13:54:40 +02:00
Vladislav Troinich
d32a03ad32 Add couple of tests for RFC2136 provider 2018-09-24 10:52:28 +03:00
Vladislav Troinich
02437bb25c Merge remote-tracking branch 'origin/master' into rfc2136_provider
# Conflicts:
#	Gopkg.lock
#	Gopkg.toml
2018-09-07 10:51:35 +03:00
Peter Bale
be4b4accf9 Change the way aws batching works
This is to change the way batching works when using the aws provider.
Originally, batching would take the first n records you want to update
and perform the desired actions on those records as part of a sync. It
would then wait for the configured sync period and take the first n
records again and sync them. The issue with this is that when you are
using the TXT registry with a custom prefix, the updates can sync a TXT
record and not the accompanying A/CNAME record. This causes external-dns
to get out of sync with what is created and what the current state
actually is. This update uses the same idea of batching, however, rather
than stopping after the first batch until the next run, batching will
now have a separate batch interval which controls the interval between
each batch in the same sync period. This allows external-dns to fully
sync with route53 as part of each sync and can then know that the state
is complete.

Fixes https://github.com/kubernetes-incubator/external-dns/issues/679
2018-09-06 16:44:20 +01:00
Jonas Michel
b9b6842195 Add Source implementation for Istio Gateway (#694)
* add Istio Gateway Source

* add documentation for Istio Gateway Source

* make both istio namespace and ingress gateway service configurable

* prefix gateway types, constructors, and flags with 'istio-'

* fix: add missing sources to source flag docs
2018-09-06 16:39:32 +02:00
Vladislav Troinich
0151de539c Add RFC2136 provider 2018-09-06 11:46:01 +03:00
Nick Jüttner
488f10394a
Merge branch 'master' into generic-source 2018-09-03 10:55:12 +02:00
Nick Jüttner
08c791ff5b
Merge pull request #653 from Devatoria/feature/service_types_filter
Add filter by service type feature
2018-08-31 16:37:10 +02:00
Li Yi
1db16f35af Initial support for Alibaba Cloud 2018-08-28 17:30:36 +08:00
shashidharatd
18aee82d3d Add crd source which gets Endpoints from CRD 2018-08-22 19:37:21 +05:30
Devatoria
05068e3ad3 Add filter by service type feature 2018-08-17 17:14:44 +02:00
Nick Jüttner
dbfc884ba3
Merge pull request #678 from cliedeman/fix/linode-user-agent
Set Linode user agent
2018-08-16 17:21:59 +02:00
Julian Vassev
e6cae22ec4 Configure req timeout calling k8s APIs
When running in a pod sometimes the request to get ingreses/services
stalls indefinitely. A simple pod restart fixes this. Hard to reproduce
but I got lucky and did thread dump which revealed a gorouting blocked
on call to k8s.

What's new is a `--request-timeout` flag that makes requests to k8s
bounded in time. The default is 30s - this may cause some deployments
with a slow api-server to timeout.
2018-08-16 02:59:21 -07:00
cliedeman
ba6c82e043 Set Linode user agent and change to linode/linodego package 2018-08-16 11:17:54 +02:00
Loren Brindze
65b33ad7e2 adding assume role to aws_sd provider 2018-08-14 09:44:12 -07:00
cliedeman
65f8b914b1 Linode Provider Implementation 2018-08-14 16:26:14 +02:00
Arttii
874502ebf8 adding a flag to optionally publish hostIP instead of podIP for headless services (#597)
* Added HostPort feature docs

* Fixed some typos

* Fixing hostIP,podIP change

Fixing hostIP,podIP change

Merge artifacts in docs

Naming typo

removing unnecessary files

fix(source): fix misleading log message

Naming typo

removing unnecessary files

* fix(source): fix misleading log message
2018-07-26 18:16:32 +02:00
Nick Jüttner
717ee8440c
Merge branch 'master' into external-dns-exoscale 2018-07-12 12:21:12 +02:00
Nick Jüttner
f38c347636
Merge branch 'master' into external-dns-exoscale 2018-07-12 11:30:05 +02:00
Andrew Pryde
3c9a944fec Code review comments 2018-07-11 15:44:40 +01:00
Andrew Pryde
88da61e742 Implement Oracle Cloud Infrastructure DNS provider 2018-07-11 15:42:00 +01:00
Christopher Schmidt
07e7103afe implemented dryRun 2018-07-06 07:17:07 +02:00
Yoan Blanc
a487d3878f exoscale: rename exo into exoscale
Signed-off-by: Yoan Blanc <yoan.blanc@exoscale.ch>
2018-07-04 15:00:21 +02:00
Christopher Schmidt
8003a3f00b initial Exoscale Provider 2018-07-04 14:59:48 +02:00
Jason Hoch
d56ef6dbda gofmt 2018-06-19 15:56:55 -04:00
Jason Hoch
15b279a4bc Adds TLS flags for pdns provider 2018-06-19 15:40:32 -04:00
Peter Bale
e34bf552d6 Add aws max change count flag (#596)
* Create `NewAWSProvider` with `AWSConfig` struct

Rather than calling `NewAWSProvider` with a list of objects, you will
now call it using a new `AWSConfig` struct. This allows for clearer
declarations of variables which becomes even  more important as more
variables are added.

* Add `aws-max-change-count` flag

Adding a new `aws-max-change-count` flag to override the default max
change count on the aws provider.

Included updated tests with a new `defaultMaxChangeCount` constant and
tests for setting the value as a flag and as an environment variable.

* Update CHANGELOG.md

Updating CHANGELOG.md with 'Add aws max change count flag' PR.
2018-06-18 14:21:37 +02:00
Nick Jüttner
f458b37662
Merge pull request #589 from jessfraz/cache-results-azure
add cache to limit calls to providers
2018-06-12 12:08:42 +02:00
Jess Frazelle
4759789ac8
add cache to limit calls to Records()
Signed-off-by: Jess Frazelle <acidburn@microsoft.com>
2018-06-12 05:34:23 -04:00
Martin Linkhorst
ce0162b01e
Merge remote-tracking branch 'upstream/master' into coredns 2018-05-31 15:53:34 +02:00
Nick Jüttner
baa1da6fa0
Merge pull request #483 from vanekjar/AWS-SD-final
Add AWS Service Discovery provider
2018-05-30 10:31:34 +02:00
Jaromir Vanek
98dfbbe33f Rename aws-sd-registry to aws-sd 2018-05-28 16:53:22 +02:00
Jaromir Vanek
cd94888800 Implementation of AWS ServiceDiscovery provider 2018-05-25 07:45:47 -07:00
Martin Linkhorst
e938d71bc3
Merge remote-tracking branch 'upstream/master' into coredns 2018-05-24 14:20:18 +02:00
shashidharatd
c18c1c79ec Add a new source called connector (#552)
* Add new connector source

* Update docs for connector source
2018-05-22 17:49:16 +02:00
Nick Jüttner
8819ed62e8
Merge pull request #524 from linki/assume-role
AWS: Allow to assume another role
2018-04-18 16:02:06 +02:00
Anhad Jai Singh
ec822d7bbd Add PowerDNS as a provider
Commit adds:
* Implementation of PowerDNS as a provider
* Tests for said implementation
* github.com/ffledgling/pdns-go, which provides go client bindings for
  PowerDNS's HTTP API, as a dependency
* "pdns" as an additional option for the `--provider` flag
* `--pdns-server` and `--pdns-api-key` as additional flags for PowerDNS
  specific configuration
2018-04-16 19:11:35 +05:30
Martin Linkhorst
587b4128cb
feat: allow to assume another role for AWS 2018-04-12 14:59:28 +02:00
Nick Jüttner
5fc7d31a57 Resolving merge conflicts 2018-04-05 12:40:27 +02:00
Helgi Þormar Þorbjörnsson
2319a44fc1 Add a flag that allows FQDN and Annotations to combine (#513)
* Add a flag that allows FQDN and Annotations to combine

Old behaviour is kept by default, a new flag is introduced to combine instead of overwrite

Fixes #218

* docs: add fqdn template combine to changelog
2018-04-04 18:31:22 +02:00
jvassev
3293af66fe Graceful handling of misconfigure password for dyn (#470)
* Graceful handling of misconfigure password for dyn

If a bad password is given for provider "dyn" then the next
login attempt is at least 30minutes apart. This prevents an
account from being suspended.

Improve validation of flags for dyn provider. Add test for
ValidateConfig() and Config.String()

Also add --dyn-min-ttl option which sets the lower limit
of a record's TTL. Ignored if 0 (the default).

* docs: add graceful handling of misconfiguration to changelog
2018-02-21 13:09:17 +01:00
jvassev
02f833975d Don't log passwords on start (#463)
* Don't log passwords on start

The two passwords configurable as flags (for infoblox and dyn) are
masked now and not logged.

* docs: add masking sensitive data in logs to changelog
2018-02-19 13:03:22 +01:00
Martin Linkhorst
a673719d59
Merge remote-tracking branch 'upstream/master' into coredns 2018-02-12 16:55:38 +01:00
Julian Vassev
414d394354 Add Dyn Provider
* add "dyn" provider
* add several --dyn-* args to configure Dyn login
* add github.com/nesv/go-dynect/dynect@0.6.0 to Gopkg and vender/ (the client
  of choice by Terraform)
* make externdns.Version public so it can be stored when committing
  zone changes
* add tutorial for Ingress resources and update root README.md file

Dyn REST API is documented here: https://help.dyn.com/dns-api-knowledge-base/

Example usage:

  external-dns \
    --provider=dyn \
    --dyn-customer-name=acme \
    --dyn-username=acme-api \
    --dyn-password=t0pS3cr3t \
    --domain-filter=portal.acme.com \
    --zone-id-filter=acme.com \
    --namespace=my-test-ns \
    --log-level=debug \
    --txt-prefix=_
2018-02-08 09:37:33 -08:00
Martin Linkhorst
3ef1f9faf0
fix: remove stale wait time on shutdown (#434) 2018-01-05 16:47:44 +01:00
Valentyn Boginskey
4dacf81238 New filter: --zone-id-filter (#422)
* Add aws-zone-id flag

* Add Zone ID filter

* Update AWS provider and main

* Make ZoneIDFilter generic

* Implement ZoneIDFilter for all providers

* Update CHANGELOG
2017-12-20 17:00:13 +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
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
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
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
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
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
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
0cb99281ff OpenStack Designate provider 2017-09-22 20:55:08 -07: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
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
Martin Linkhorst
81974cd8a0 refactor source registration (#217)
* ref(sources): refactor source registration and lookup to be lazy.

* fix(fake): don't make changes to passed in config values

* rework without init, tests are missing

* make client provider public

* fix all tests

* change parameter list order, minor improvements

* clientprovider -> clientgenerator, switch naming for interface/struct
2017-06-30 16:54:58 +02:00
Nils Juenemann
73d397961e Support for multiple domains within --domain-filter (#252)
* Support for multiple domains within --domain-filter

The parameter accepts a comma separated list of domains with or without trailing dot. Example: --domain-filter="example.org, company.test.,staging.com". Closes #247 and #229

* Add boilerplate header

* Add documentation for methods and structs

* use StringsVar for the domain-filter flag

* go fmt

* Remove camel case from tests

* Revert changes in README.md

* Move DomainFilter to provider package

* Make a new slice and copy elements to it

* Update CHANGELOG.md

* docs: change minor spelling mistake
2017-06-29 18:59:05 +02:00
Nick Jüttner
cb5863344b CloudFlare as a new provider (#140)
* CloudFlare Provider

* updating glide

* gofmt cloudflare_test.go

* Unset envs to test NewCloudFlareProvider

* More tests

* fix(cloudflare): fix compiler errors resulting from merge

* Typo

* Undo vendor changes

* decrease api calls, fix some nits

* Cloudflare iteration (#2)

* reduce the number of API calls

* match by type and name for record id

* improve coverage and fix the bug with suitable zone

* tests failed due to wrong formatting

* add cloudflare integration to the main

* vendor cloudflare deps

* fix cloudflare zone detection + tests

* fix conflicting test function names
2017-06-16 11:28:13 +02:00
Nick Jüttner
cafe6c08d0 Digital Ocean as a new provider (#171)
* Initial Digital Ocean as a new provider

* chore: vendor dependencies

* Remove zone parameter from ApplyChanges and Records

* fix(digitalocean): fix correct imports, unshadow a variable

* fix(digitalocean): respect domain-filter if provided

* add changes to digital ocean provider from PR review (#3)

* fix tests and bugs in find suitable zones for digital ocean (#5)

* tests failed due to wrong formatting

* add digitalocean integration to the main and more tests

* fix suitable zone for digital ocean
2017-06-16 10:44:03 +02:00
Martin Linkhorst
90604c9dcb Load all known Kubernetes Auth Plugins (#238)
* fix: Load all known Kubernetes Auth Plugins

* chore: vendor CoreOS' oidc library
2017-06-15 18:22:57 +02:00
Yerken
611483d523 remove inmemory provider complex interface (#235) 2017-06-13 13:36:10 +02:00
Peter Huene
3355528c16 Implement Azure DNS provider (#210) (#214)
* vendor Azure Go SDK (#210)

* vendor the Azure Go SDK and dependencies

* add initial Azure DNS provider implementation (#210)

* add 'azure' value to 'provider' command line option
* add 'azure-config-file' command line option
* add 'azure-resource-group' command line option
* implement initial Azure DNS provider

note: azure provider is not yet fully implemented (does not query for existing
records).

tests and documentation are forthcoming.

* add a tutorial for the Azure provider (#210)

* add tutorial for using ExternalDNS with Azure DNS

* finish implementation of Azure DNS provider (#210)

* implement the Records method for the Azure DNS provider

* refactor Azure API interface for future tests (#210)

* make Azure provider use an interface for future unit tests

* add unit tests for the Azure provider (#210)

* test retrieving Azure DNS records.
* test updating and deleting Azure DNS records.
* test dry run for the Azure provider (i.e. noop).
2017-06-02 15:24:52 +02:00
Ian Smith
f06fb65917 Fake source (#205)
* Expose inmemory provider to cli

So we can test `--source fake` without needing to touch AWS/Google.

* Add FakeSource

`external-dns --provider inmemory --source fake --dry-run --once`

OR

`external-dns --provider aws --source fake --fqdn-template <hostname suffix> --dry-run --once`

NB: `--fqdn-template` because otherwise we'll default to creating, e.g.,
`abcd.example.com`, which `--provider aws` filters out because you
likely don't have a Zone for `example.com.`  Could also be resolved by
removing the need to use a real provider; the inmemory provider,
perhaps, though it's not entirely hooked up.

Closes kubernetes-incubator/external-dns#22

* Style feedback from Travis CI

* Improve optionality of kubernetes client

* ref(sources): refactor source registration and lookup to be lazy.

* Revert "ref: refactor source registration/lookup to be lazily initialized"
2017-05-29 13:59:50 +02:00
Martin Linkhorst
a18656f1b0 add client-side metrics for all external calls (#188)
* chore: add instrumented HTTP client library

* feat: add client-side metrics to outgoing HTTP clients
2017-05-22 15:39:59 +02:00
Martin Linkhorst
c12424192d add and use a deduplicating source (#185)
* feat: add and use a deduplicating source

* chore: add log entry when endpoint was deduplicated
2017-05-05 14:59:36 +02:00