Commit Graph

4924 Commits

Author SHA1 Message Date
Martin Linkhorst
12a67523c2 docs: update documented version to v0.4 (#294) 2017-07-27 23:25:17 +02:00
Martin Linkhorst
804dbc00ed docs(faq): add gke permissions to the faq (#288) 2017-07-25 21:05:21 +02:00
Martin Linkhorst
669f98b7a0 docs: update docs to the v0.4.0 release (#286) 2017-07-24 12:48:09 +02:00
Martin Linkhorst
aa3f6c04c5 tutorials: add tutorial for digital ocean (#282)
* docs(tutorials): add tutorial for digital ocean

* docs(tutorials): fix version used in cloudflare tutorial

* chore: update the changelog with the latest and greatest, thanks to all who contributed
2017-07-21 17:43:39 +02:00
Martin Linkhorst
e891397a3d docs(faq): add some questions to the FAQ (#268) 2017-07-19 21:21:50 +02:00
Martin Linkhorst
092f3611e4 squash the docker image layers (#280)
* chore: squash the docker image layers

* chore: remove pull flag
2017-07-19 14:00:06 +02:00
Martin Linkhorst
8b7d46cb26 chore: build image using multi-stage builds (#276) 2017-07-18 20:13:51 +02:00
Martin Linkhorst
a31e84058c chore: add zappr file in order to push to pierone (#279) 2017-07-18 18:23:38 +02:00
Nick Jüttner
c69c557fbc Cloudflare Tutorial (#271) 2017-07-17 11:25:21 +02:00
Nils Juenemann
bcb4972d4c Support for multiple hostnames in hostname annotation (#256)
* service source: support for multiple hostnames per annotation

* go fmt

* Make parseHostnameAnnontations inline

* Update CHANGELOG.md

* Update Changelog
2017-07-04 18:37:52 +02:00
Martin Linkhorst
4d48cef482 chore(source): add test for annotation taking precendence over template (#257) 2017-07-03 22:55:12 +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
jordanjennings
1592ef0afa Fix incorrect flag in nginx-ingress.md (#245)
Originally had `dry-run=true` as the dry run flag but that doesn't work and makes external-dns fail to start. Changed to `--dry-run`.
2017-06-20 23:15:01 +02:00
Adam Sunderland
38e8f0f606 Mark compatibility with route53-kubernetes (#241) 2017-06-16 22:18:23 +02:00
Martin Linkhorst
bfcb6a1dd9 chore: update instrumented_http to v0.2.0 (#227) 2017-06-16 12:08:12 +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
Martin Linkhorst
c1f5179739 docs: explain the concept behind sources and providers (#226)
* docs(contributing): explain the concept behind sources and providers

* docs(contributing): we don't filter Services by type
2017-06-16 11:07:10 +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
Yerken
229944f7ab make all provider implementation public, return struct instead of interface (#234) 2017-06-13 10:32:13 +02:00
Shane Starcher
bc4127b0b7 Add IAM permissions to tutorial (#231) 2017-06-08 14:11:24 +02:00
Martin Linkhorst
316f697a5a chore: update all vendored dependencies (#220) 2017-06-07 13:33:02 +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
Martin Linkhorst
f837b6536d feat(plan): allow plan to have multiple policies (#204) 2017-05-31 20:31:03 +02:00
Martin Linkhorst
406afacbf7 experiment: use testify in test code (#186)
* ref(source): use testify with mocks in test code

* fix: re-introduce NewMockSource for convenience

* fix: avoid circular dependency

* ref: increase usage of testify

* chore: vendor testify as a dependency

* fix(*): cleanup testify expectations
2017-05-31 10:24:11 +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
85ba7a0ec9 chore: reflect current version in changelog (#213) 2017-05-22 16:16:01 +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
707bdc4d95 ref(*): remove superflous zone parameter (#212) 2017-05-22 15:38:27 +02:00
Ian Smith
3c3bfed013 CONTRIBUTING needs a link to the CLA-FAQ. (#207)
Closes #206
2017-05-18 08:42:44 +02:00
Ian Smith
637211e1f8 Make it clearer that all flags are settable by env var (#208)
Closes: #47
2017-05-18 08:42:09 +02:00
Martin Linkhorst
8b8312c89a update and vendor all dependencies (#200)
* chore: update and vendor all dependencies

* chore: don't forget custom import repo-infra
2017-05-11 11:09:49 +02:00
Martin Linkhorst
f9668b8678 chore: add godoc badge (#203) 2017-05-10 11:34:02 +02:00
Yerken
f11c37c2ee refactor inmemory provider (#199)
* reactor inmemoy provider

* add inmemoryclient to logically split functions

* implement apply changes

* fix all tests

* chore: use bogus value for zone to ensure it's ignored

* chore: use bogus value for zone to ensure it's ignored (2)
2017-05-09 13:19:47 +02:00
Martin Linkhorst
a2c893f2bb fix: align more docs with the current release (#202) 2017-05-08 18:45:59 +02:00
Henning Jacobs
55d709c38c fix link to AWS tutorial (#201) 2017-05-08 18:02:42 +02:00
Yerken
55816ae57c adjust docs before the v0.3.0 release (#184)
* adjust docs before the v0.3.0 release

* minor fixes

* docs: add missing dot

* docs: add missing dot

* docs: drop line

* docs: drop another line

* adjust documentation

* update main readme

* checkbox for releases, add --txt-owner-id flag in description

* docs: minor weird character fixes [ci skip]
2017-05-08 17:29:17 +02:00
Martin Linkhorst
305f691a30 fix(plan): remove confusing log line (#193) 2017-05-05 17:12:41 +02:00
Martin Linkhorst
515ed52fb4 chore: enable -race on go test (#190) 2017-05-05 15:57:18 +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
Martin Linkhorst
d6222a454d
docs: do not reference buggy version 2017-04-28 00:46:23 +02:00
Martin Linkhorst
da3c17a65c allow setting flags via env vars (#124)
* feat(config): change defaults, switch flag processing to kingpin

* chore: vendor kingpin as a dependency

* feat(config): auto-detect cluster config from the environment

* chore: clean up definition of flags

* chore: sanitize flags even further

* chore: update changelog with latest flags changes

* fix(aws): fix messed up test name
2017-04-27 13:57:45 +01:00
Yerken
82a172a9f9 minor improvements to logging (#175)
* minor improvements to logging

* chore(*): change log.Infoln to log.Info

* fix: fix incorrect example code
2017-04-26 12:06:16 +02:00
Omar Yasin
d4a396b667 Tutorial uses buggy version for GKE example (#177)
Bug in question: https://github.com/kubernetes-incubator/external-dns/issues/154

This is fixed in 0.2.1
2017-04-26 09:07:59 +02:00
Martin Linkhorst
e5f21ad32a add multi-zone capability to google provider (take 2) (#163)
* feat(google): auto-detect and multiple zone support

* chore: run gofmt with the simplified command

* fix: pass desired domain to google provider

* feat(google): correctly auto-detect records for sub-zones

* chore: update changelog with support for multiple zones in google

* fix(google): don't append traling dot to TXT records

* ref(provider): extract hostname sanitization to general provider
2017-04-25 17:45:36 +02:00
Yerken
5e3f2b7773 first effort to improve logging in external-dns to provide with basic needed logging (#174)
* continue on controller loop error

* add logging in source

* use formatter on logChanges for endpoints

* fix log messages, log skipped records

* add logging in aws, uppercase the rest

* respect google dry run policy

* add ing/svc namespace/name on logging

* fix error logging on template failure

* fix bugs, propagate template error

* log if nothing is being updated, debug log skipped endpoints

* change zone-not-found logging order
2017-04-25 12:22:46 +02:00
Martin Linkhorst
096c68be79 Enhance compatibility and process molecule Services (#166)
* feat(service): enhance compatibility, process molecule services

* ref(service): simplify label detection for molecule servics
2017-04-21 16:38:56 +02:00
Yerken
285cb4cb35 change owner key in txt records (#167)
* change owner key in txt records

* ref(registry): change semicolon to comma
2017-04-21 11:50:53 +02:00