Commit graph

541 commits

Author SHA1 Message Date
Jiacheng Xu
165b4f86a3 plugin/route53: make the upstream address in route53 plugin optional. (#2263)
* Make the upstream in route53 plugin optional.

Signed-off-by: Jiacheng Xu <xjcmaxwellcjx@gmail.com>

* Add 2 tests for upstream in route53.

Signed-off-by: Jiacheng Xu <xjcmaxwellcjx@gmail.com>

* Change the readme.

Signed-off-by: Jiacheng Xu <xjcmaxwellcjx@gmail.com>
2018-11-02 21:07:50 +00:00
Jiacheng Xu
1a01e13db8 plugin/etcd: make the address of upstream optional (#2262)
Automatically submitted.
2018-11-02 19:52:12 +00:00
Francois Tur
05204ef142 Metrics registered on wrong prometheus registry (#2246)
* - UT on metrics verifying that all plugins of all blocs have their metrics collectors declared

* - fix error msg

* - redirect Registry of metric to the one that handle the listener
- allow duplicate of metrics collector on the same Registry (case of same plugin in 2 blocs listening metrics on the same address)

* - fix change of signature

* - ensure cleaning metrics before starting the test (metrics collectors are global vars .. and re-used by several tests)

* - I think I fixed this test. Ensure correct mn of hits and clean metrics before test.

* - fix typo in error msg - proposed at review

* - fix typo in comment

* - remove ResetMetrics functions
- change a way to test the numeric metrics : get the diff between begin and end of test

* - oops. removing debug logs
2018-11-01 19:56:00 +00:00
Chris O'Haver
f5aa6cac67 remove trailing whitespace (#2260) 2018-11-01 19:37:13 +00:00
Miek Gieben
2456416444
logging: unify pkg/log and plugin/log (#2245)
Default to using pkg/log for all logging and use a fixed time prefix
which is RFC3339Millli (doesn't exist in time, so we just extended
RFC3339), i.e. Nano might be pushing it.

Logs go from:

2018/10/30 19:14:55 [INFO] CoreDNS-1.2.5
2018/10/30 19:14:55 [INFO] linux/amd64, go1.11,

to:

2018-10-30T19:10:07.547Z [INFO] CoreDNS-1.2.5
2018-10-30T19:10:07.547Z [INFO] linux/amd64, go1.11,

Which includes the timezone - which oddly the std log package doesn't
natively do.

Signed-off-by: Miek Gieben <miek@miek.nl>
2018-10-31 21:32:23 +00:00
Carl-Magnus Björkell
cfbfa5c00e plugin/etcd: propagate recursion flag properly (#2254)
When fetching records via the etcd plugin, the recursion flag was never
set properly according to if the caller requested an exact record match
or not. This cause problems especially in CNAME lookups, where recursion
took place and a random RR was returned instead of the one that was
specifically added for this key. Even when there is no service attached
on the given path, it is still wrong to return a random one from the
recursion.

Fixing by using the `exact` flag to decide if recursion should be done.
2018-10-31 21:08:58 +00:00
Miek Gieben
1ef0a02b46
Revert "log/forward plugins: Extend dns query logging (#2240)" (#2256)
This reverts commit 8045aa279b.
2018-10-31 21:03:46 +00:00
Matthias Lechner
e332c8d8cb Fix error handling when query fails (#2255) 2018-10-31 10:20:43 -07:00
Francois Tur
d42e0d4562 Update README.md (#2253) 2018-10-30 20:23:40 +00:00
Dzmitry Razhanski
8045aa279b log/forward plugins: Extend dns query logging (#2240)
Automatically submitted.
2018-10-29 18:50:31 +00:00
Miek Gieben
e6d02a3fd2 cache: some optimizations (#2247)
Remove some optimization and lowercasing of the qname (in the end
miekg/dns should provide a fast and OK function for it).

* remove the make([]byte, 2) allocation in the key()
* use already lowercased qname in hash key calculation.

% benchcmp old.txt new.txt
benchmark                    old ns/op     new ns/op     delta
BenchmarkCacheResponse-4     9599          8735          -9.00%

Signed-off-by: Miek Gieben <miek@miek.nl>
2018-10-29 08:13:39 -07:00
Chris O'Haver
29f4205364
plugin/cache: Document actual cache defaults (#2249) 2018-10-29 11:03:59 -04:00
Ruslan Drozhdzh
7b25d18019 plugin/errors: 'consolidate' option (#2192)
- see more details at https://github.com/infobloxopen/coredns-plugin-errors/pull/3
2018-10-27 15:37:09 +01:00
Paul G
a9ce35ae4e
plugin/rewrite: add closing dot for suffix rewrite rule (#2070)
* add closing dot for suffix rewrite rule
* improve rule syntax checks

Resolves: #1881
2018-10-23 16:59:59 -04:00
Miek Gieben
e8e8187a64
plugin/file: Use new zone parser API (#2219)
* plugin/file: Use new zone parser API

Use new dns lib 1.0.14 and default to using the new zone parser that
does not leak go-routines.

Signed-off-by: Miek Gieben <miek@miek.nl>

* Use new API

Signed-off-by: Miek Gieben <miek@miek.nl>
2018-10-23 20:19:36 +01:00
Miek Gieben
898b1ef316 server: actually scrub response (#2225)
* server: actually scrub response

Did all the worked, hooked it up wrongly :(

This also needs test, but those are hard(er) because we only receive
packets after they have been decoded; i.e. we never see the wirefmt.

Signed-off-by: Miek Gieben <miek@miek.nl>

* Add tests

Add a test for checking is compression pointers are set in the packet.
This also adds an undocumented 'large' feature to the erratic plugin to
send large responses that should be compressed.

Commenting the Scrub out in server results in:

=== RUN   TestCompressScrub
--- FAIL: TestCompressScrub (0.00s)
    compression_scrub_test.go:41: Expected returned packet to be < 512, got 839
FAIL
exit status 1
FAIL    github.com/coredns/coredns/test 0.036s

Actually checking the size might be easier, but lets be thorough here
and check the pointers them selves.

Signed-off-by: Miek Gieben <miek@miek.nl>

* Fix tests

Signed-off-by: Miek Gieben <miek@miek.nl>

* plugin erratic: fix e.large

always put an rr in the reply, fix e.large in erractic and add test to
check for it.

Signed-off-by: Miek Gieben <miek@miek.nl>
2018-10-23 09:55:40 -07:00
Chris O'Haver
96529b2c50
make default min ttl 5 (#2227) 2018-10-22 16:59:12 -04:00
Chris O'Haver
85e5ab77d6 add ipv6 loopback example (#2223) 2018-10-22 18:30:42 +01:00
Kevin Nisbet
6539a10a62 Unblock startup if kubernetes API is unavailable (#2126) 2018-10-22 09:30:08 -04:00
Manuel Stocker
4b1b0ec9e6 Use filepath when manipulating file paths (#2221)
Automatically submitted.
2018-10-21 13:59:37 +00:00
Manuel Stocker
cf04223718 plugin/dnssec: Add support for KSK/ZSK split key setups (#2196)
* plugin/dnssec: Add support for KSK/ZSK split key setups

* plugin/dnssec: Update README to document split ZSK/KSK operation
2018-10-20 16:35:59 +01:00
Ruslan Drozhdzh
dbc2efc49a plugin/cache: fix TTL for negative DNS responses (#2197) 2018-10-19 14:10:08 -04:00
Yong Tang
54df160aa4
Remove whitespace and pass presubmit (#2217)
While running the following, noticed the whitespace warning from presubmit:
```
ubuntu@ubuntu:~/coredns$ docker run -i -t --rm -v $PWD:/go/src/github.com/coredns/coredns --net=host golang:1.11
root@ubuntu:/go# cd src/github.com/coredns/coredns/
root@ubuntu:/go/src/github.com/coredns/coredns# make
** presubmit/context
** presubmit/filename-hyphen
** presubmit/test-lowercase
** presubmit/trailing-whitespace
plugin/auto/README.md:* `reload` interval to perform reload of zone if SOA version changes. Default is one minute.
plugin/auto/README.md:  Value of `0` means to not scan for changes and reload. eg. `30s` checks zonefile every 30 seconds
plugin/file/README.md:* `reload` interval to perform reload of zone if SOA version changes. Default is one minute.
plugin/file/README.md:  Value of `0` means to not scan for changes and reload. eg. `30s` checks zonefile every 30 seconds
** presubmit/trailing-whitespace: please remove any trailing white space
```

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2018-10-19 10:58:36 -07:00
Chris O'Haver
ad43346b58 Update README.md (#2215)
Automatically submitted.
2018-10-18 21:42:53 +00:00
Chris O'Haver
db92d5ecc3 Update README.md (#2213) 2018-10-18 15:19:22 +01:00
Miek Gieben
a044499545
kubernetes: fix the type (#2208)
client-go is a "empty interface" waste-land and we're missing an
integration test so we didn't catch. Try this.

Signed-off-by: Miek Gieben <miek@miek.nl>
2018-10-17 19:35:00 +01:00
Chris O'Haver
4a5641c379 plugin/cache: Set min TTL default to zero (#2199)
* set min ttl default to zero

* add short TTL test case
2018-10-16 06:24:40 -07:00
Chris O'Haver
6beeabc47c plugin/federation: Add upstream option to federation (#2177)
* add upstream

* add upstream

* debug ci

* debug ci

* set context

* update readme

* update readme

* remove empty if
2018-10-15 12:43:03 -04:00
Tom Thorogood
1847ef6bd3 plugin/file: Fix memory leak in Parse (#2194)
For zone files with more than 10,000 records, the goroutines and memory
pinned by dns.ParseZone won't be released unless the tokens chan is
drained. As Parse is called by (*Zone).Reload very frequently, this
causes memory leaks and OOM conditions.

Updates miekg/dns#786
2018-10-13 18:56:42 +01:00
Manuel Stocker
3cef6674e9 plugin/dnssec: Add root support (#2195) 2018-10-13 18:49:55 +01:00
Chris O'Haver
6d2bc0a8f2 plugin/loop: tweak loop detected msg, add troubleshooting section (#2185)
Automatically submitted.
2018-10-12 17:24:40 +00:00
Miek Gieben
6ed88fab74 Revert "use keys (#2167)" (#2188)
This reverts commit 974ed086f2.
2018-10-11 16:59:50 -04:00
Miek Gieben
c8fb66f8cc
Revert "plugin/log: Change time format to be consistent with pkg/log (#2135)" (#2179)
This reverts commit ae2a0c62b7.
2018-10-10 22:32:19 +01:00
Chris O'Haver
974ed086f2 use keys (#2167) 2018-10-10 12:28:45 -07:00
Can Yucel
8432f14207 plugin/route53: add split zone support (#2160)
Automatically submitted.
2018-10-10 17:55:54 +00:00
Miek Gieben
830e97f800
plugin/kubernetes: allow trimming down of cached items. (#2128)
* Convert to runtime.Object to smaller structs

This adds conversion for all the objects we want to keep in the cache.
It keeps the minimum for CoreDNS to function and throws away the rest.

The conversion:
api.Endpoints -> object.Endpoints
api.Pod       -> object.Pod
api.Serivce   -> object.Service

We needed to copy some client-go stuff to insert a conversion function
into NewIndexInformers.

Some unrelated cleanups in the watch functionality as that needed to be
touched because of the above translation of objects.

Signed-off-by: Miek Gieben <miek@miek.nl>

* Reduce test line-count

Signed-off-by: Miek Gieben <miek@miek.nl>

* ....and fix test

Signed-off-by: Miek Gieben <miek@miek.nl>

* Drop use of append

Signed-off-by: Miek Gieben <miek@miek.nl>

* cosmetic changes

Signed-off-by: Miek Gieben <miek@miek.nl>

* that was a typo

Signed-off-by: Miek Gieben <miek@miek.nl>

* re-introduce append here

We can't really use len() here because we don't know the number before
hand.

Signed-off-by: Miek Gieben <miek@miek.nl>

* comment in better place

Signed-off-by: Miek Gieben <miek@miek.nl>

* Make the timestamp a bool; thats where it is used for

Signed-off-by: Miek Gieben <miek@miek.nl>

* Set incoming object to nil

Explicataliy discard the converted object; we did a deep copy it's
not needed anymore.

Signed-off-by: Miek Gieben <miek@miek.nl>

* Per Chris's comment

Signed-off-by: Miek Gieben <miek@miek.nl>
2018-10-09 21:56:09 +01:00
Ruslan Drozhdzh
298b860a97 plugin/forward: fix healthchecker crash (#2165) 2018-10-09 20:50:30 +01:00
Nic Cope
8a9c6174fc Add request and response context to traces (#2162)
Automatically submitted.
2018-10-05 20:13:16 +00:00
John Belamaric
1018a8267a Add Kubernetes auth providers (#2147)
* Import auth providers for K8s

* Vendor updates for K8s auth providers

* Remove Azure since it is not compiling

* Update vendor to remove Azure dependencies
2018-10-02 18:50:35 +01:00
marqc
552aab723c Configurable zone reload interval in file plugin (#2110)
* Configurable zone reload interval in file plugin

* passing reload config from auto plugin to file plugin. removed noReload property from Zone struct. fixed tests based on short file reload hack
2018-09-29 16:50:49 +01:00
Brad Beam
a80ec6096f Benchmark for k8s services (#2107)
* Benchmark for k8s services

* Adding k8s.io/client-go/kubernetes/fake dep
2018-09-29 16:43:09 +01:00
Zach Eddy
fe5c731047 Support for kubeconfig files (#2053)
* Add support for authentication with kubeconfig files

* Update k8s plugin documentation

* Fix whitespace in README and tests

* Use clientcmd package to load kubeconfig file
2018-09-28 12:18:55 -07:00
Eugen Kleiner
ae2a0c62b7 plugin/log: Change time format to be consistent with pkg/log (#2135) 2018-09-27 07:52:08 +01:00
Can Yucel
8148408301 plugins/route53: add AWS credentials file support (#2118)
Automatically submitted.
2018-09-25 22:57:16 +00:00
Can Yucel
8d4378d712 plugin/route53: add fallthrough (#2132)
Automatically submitted.
2018-09-25 18:41:05 +00:00
Miek Gieben
6f966eed41
plugin/kubernetes: use struct{} was map values (#2125)
This takes less space than a bool, the value isn't used for anything
else than "present in map" any way.

Signed-off-by: Miek Gieben <miek@miek.nl>
2018-09-22 18:13:33 +01:00
Miek Gieben
f98db6b637 plugin/kubernetes: remove unnecessary checks (#2124)
These checks are not needed and also use a var for all obj errors.

Signed-off-by: Miek Gieben <miek@miek.nl>
2018-09-22 08:54:06 -07:00
Miek Gieben
79eec38afd
plugin/kubernetes: remove var namespace (#2122)
* WIP: trying stuff out

Signed-off-by: Miek Gieben <miek@miek.nl>

* Fixes

Signed-off-by: Miek Gieben <miek@miek.nl>

* Revert "WIP: trying stuff out"

This reverts commit a18a6ae123.
2018-09-22 16:08:21 +01:00
Miek Gieben
7b078a885f
plugin/rewrite: silence these tests (#2120)
* plugin/rewrite: silence these tests

The old Unix saying: no news, is good news.

Signed-off-by: Miek Gieben <miek@miek.nl>

* Fix da tests

Signed-off-by: Miek Gieben <miek@miek.nl>
2018-09-22 15:28:13 +01:00
Miek Gieben
9546b606cb
K8s remove string ops (#2119)
* plugin/kubernetes: remove bunch a string ops

This removes a bunch of appends to where not needed, makes dnsutil.Join
take variadic args which removes the need to wrap in a new string slice.

Signed-off-by: Miek Gieben <miek@miek.nl>

* Fix calls to dnsutil.Join

Signed-off-by: Miek Gieben <miek@miek.nl>

* Revert these

Signed-off-by: Miek Gieben <miek@miek.nl>
2018-09-22 15:12:02 +01:00