Commit Graph

608 Commits

Author SHA1 Message Date
Stefan Budeanu
f798d18bdd Fix context passing (#2681) 2019-03-13 18:08:33 +00:00
Miek Gieben
5cff7d5790 Remove etcd unit testing from travis (#2672)
* Remove etcd unit testing from travis

Remove these from the travis unit testing. (to speed up travis)

See #2671

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

* Add build tag

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-13 07:33:38 +00:00
Miek Gieben
d652f72fa7 plugin/metadata: tweak the docs a little (#2685)
Add a simpler example that returns a static string the for metadata.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-13 07:26:29 +00:00
Miek Gieben
b602f3ed06 Remove pkg/healthcheck (#2678)
This now lives on coredns/proxy

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-12 12:51:34 +00:00
Miek Gieben
91d6451684 plugin/trace: update datadog import (#2676)
Use gopkg.in/DataDog/dd-trace-go.v0 as this is the new home for it

Fixes: #2282

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-12 11:01:47 +00:00
Yong Tang
162c3dd95d Remove proxy from kubernetes file (#2668)
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2019-03-11 19:47:29 +00:00
Miek Gieben
c778b3a67c plugin/health: remove ability to poll other plugins (#2547)
* plugin/health: remove ability to poll other plugins

This mechanism defeats the purpose any plugin (mostly) caching can still
be alive, we can probably forward queries still. Don't poll plugins,
just tell the world we're up and running.

It was only actually used in kubernetes; and there specifically would
mean any network hiccup would NACK the entire server health.

Fixes: #2534

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

* update docs based on feedback

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-07 22:13:47 +00:00
Miek Gieben
db0b16b615 Add *ready* plugin (#2616)
Add a ready plugin that allows plugin to signal when they are ready.
Once a plugin is ready it is not queried again.

This uses same mechanism as the health plugin: each plugin needs to
implement an interface.

Implement readines for the *erratic* plugin to aid in testing.

Add README.md and tests moduled after the health plugin; which will be
relegated to just providing process health. In similar vein to health
this is a process wide setting.

With this Corefile:
~~~
. {
    erratic
    whoami
    ready
}

bla {
    erratic
    whoami
}
~~~

ready will lead to:

~~~ sh
% curl localhost:8181/ready
% dig @localhost -p 1053 mx example.org
% curl localhost:8181/ready
OK%
~~~

Meanwhile CoreDNS logs:

~~~
.:1053
bla.:1053
2019-02-26T20:59:07.137Z [INFO] CoreDNS-1.3.1
2019-02-26T20:59:07.137Z [INFO] linux/amd64, go1.11.4,
CoreDNS-1.3.1
linux/amd64, go1.11.4,
2019-02-26T20:59:11.415Z [INFO] plugin/ready: Still waiting on: "erratic"
2019-02-26T20:59:13.510Z [INFO] plugin/ready: Still waiting on: "erratic"
~~~

*ready* can be used in multiple server blocks and will do the right
thing; query all those plugins from all server blocks for readiness.
This does a similar thing to the prometheus plugin.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-07 20:35:16 +00:00
Ruslan Drozhdzh
18d305f4b3 plugin/errors: remove cLogger and eLogger (#2657) 2019-03-07 20:14:09 +00:00
Xiao An
89a4b9bd45 Add deprecation notice for NO_RELOAD (#2643)
Signed-off-by: Xiao An <hac@zju.edu.cn>
2019-03-07 20:12:54 +00:00
Yong Tang
9dd288943a Move *proxy* to external (#2651)
* Move *proxy* to external

move the proxy plugin into coredns/proxy and remove it as a default
plugin. Link the proxy to deprecated in plugin.cfg

coredns/proxy doesn't compile because of the vendoring :(

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

* Add github.com/coredns/proxy

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2019-03-04 07:32:38 +00:00
Miek Gieben
824367e8e6 plugin/reload: add bug text about import (#2638)
Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-02 09:03:25 +00:00
Ruslan Drozhdzh
e3e3249016 plugin/forward: check message Id when reading from upstream server (#2637) 2019-03-01 14:40:52 +00:00
JoeWrightss
352a042362 Fix some misspells in comment (#2634)
Signed-off-by: zhoulin xie <zhoulin.xie@daocloud.io>
2019-03-01 10:49:22 +00:00
Nguyen Quang Huy
42cf6606fc Fix error string should not be capitalized (#2608)
From [Golang coding convention](https://github.com/golang/go/wiki/CodeReviewComments#error-strings)

Co-Authored-By: Nguyen Van Trung [trungnvfet@outlook.com](mailto:trungnvfet@outlook.com)
Signed-off-by: Nguyen Quang Huy [huynq0911@gmail.com](mailto:huynq0911@gmail.com)
2019-02-27 08:25:02 -05:00
Miek Gieben
47cce40d19 Add benchmark test (#2610)
Signed-off-by: Miek Gieben <miek@miek.nl>
2019-02-25 06:57:27 -08:00
LongKB
780a433de8 Update deprecated link in doc (#2607)
Currently, the modified link is out of date. This patch aims to update
this link to the working one that user can access.

Co-Authored-By: Nguyen Phuong An <AnNP@vn.fujitsu.com>
Signed-off-by: Kim Bao Long <longkb@vn.fujitsu.com>
2019-02-24 18:17:52 -08:00
Miek Gieben
78b26c4678 plugin/kubernetes: create dns.Msg later (#2604)
There is no need to do this at the top of the handler, move this
down into the function.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-02-24 08:04:07 -08:00
Darshan Chaudhary
70fcbbf6ba refactor tests to remove duplicate code (#2602)
Signed-off-by: darshanime <deathbullet@gmail.com>
2019-02-23 09:02:58 -08:00
JoeWrightss
92b7136684 Fix some typos in comment (#2599)
Signed-off-by: zhoulin xie <zhoulin.xie@daocloud.io>
2019-02-22 09:14:03 -05:00
Nguyen Hai Truong
9ce9308f5c Trivial fix typo (#2590)
Although it is spelling mistakes, it might make an affects
while reading.

Signed-off-by: Nguyen Hai Truong <truongnh@vn.fujitsu.com>
2019-02-21 07:23:34 +00:00
LongKB
c8ba2d3ca8 Replacing 'HTTP' by 'HTTPS' for securing links (#2591)
Currently, there are some links that we access with **HTTP**, it is
redirected to **HTTPS** automatically. So this commit aims to
replace **http://...** by **https://...** for security.

Co-Authored-By: Nguyen Phuong An <AnNP@vn.fujitsu.com>
Signed-off-by: Kim Bao Long <longkb@vn.fujitsu.com>
2019-02-21 07:21:25 +00:00
Xiao An
05c0f7161b Fix some typos in documents (#2592)
Signed-off-by: Xiao An <hac@zju.edu.cn>
2019-02-21 07:15:17 +00:00
Miek Gieben
34f17b276a Fix typo: rrflags -> rflags (#2587)
Signed-off-by: Miek Gieben <miek@miek.nl>
2019-02-21 07:13:05 +00:00
Guillaume Gelin
8691edd69d Fix typos (#2584) 2019-02-20 18:22:01 -08:00
Nguyen Hai Truong
39b0b91d6c Remove redundant words in comments (#2589)
Although it is spelling mistakes, it might make an affects
while reading.

Signed-off-by: Nguyen Hai Truong <truongnh@vn.fujitsu.com>
2019-02-20 18:20:48 -08:00
Nguyen Phuong An
e78d9a7893 Remove some duplicate worlds (#2582)
Signed-off-by: Nguyen Phuong An <AnNP@vn.fujitsu.com>
2019-02-20 07:12:21 -05:00
Uladzimir Trehubenka
4651cc621d plugin/forward: fixed debug dump output on FORMERR (#2576) 2019-02-18 07:12:14 +00:00
Miek Gieben
6d2189201e plugin/hosts: fix data race on h.size (#2573)
Guard the access of h.size as this is now a data race.

Fixes #2571

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-02-17 11:34:07 -08:00
Miek Gieben
a72f3a161c plugin/reload: fix data races (#2567)
Reload didn't take proper care to protect the fields from use in
different goroutines. Add a mutex and add helpers for usage and
interval.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-02-17 14:57:36 +00:00
mrasu
362d7e96dc plugin/auto: Reload zones every one minute (#2516)
Automatically submitted.
2019-02-17 14:51:47 +00:00
Sandeep Rajan
d42d80c4f6 cleanup by fmt and remove redundant type declarations (#2563) 2019-02-17 08:32:28 +00:00
DO ANH TUAN
1fe66443a7 Remove unused test case (#2562) 2019-02-17 08:31:58 +00:00
Nguyen Quang Huy
8d09cb243f Fix some typos (#2560)
* Fix some typos

Corect some words for reading more easily

* Update NOERROR response code

NOERROR is a response code so I revert the typo checking for it
2019-02-17 08:31:12 +00:00
Brian Bao
871bce3a23 Update A/PTR template README examples (#2553) 2019-02-17 08:29:16 +00:00
Nguyen Van Trung
de2f63d787 Change http to https for security links (#2559)
Signed-off-by: Nguyen Van Trung <trungnv@vn.fujitsu.com>
2019-02-14 20:18:32 -08:00
Anders Ingemann
008f9eb8b9 Adjust docs for [ADDRESS] in metrics plugin (#2555)
The [ADDRESS] field in the metrics plugin is not explained in a manner
that makes it immediately obvious, that what we are talking about here
is a listening address.
2019-02-12 09:54:54 -08:00
Thomas Mangin
4b402e000d plugin/hosts provide more configuration flexibility (#2535)
* plugin/hosts provide more configuration flexibility

This patch adds few features to the host plugin
 * no-reverse (both as first argument on the plugin line and inline)
   disable the automatic generation of reserve entries for hosts
 * ttl <duration> (inline only atm)
   allows to change the default ttl (default 5 minutes)
 * reload <duration> (inline only atm)
   allows to change the reloading interval (default 5s)

* plugin/hosts remove superfluous parameters to parse
2019-02-12 09:09:33 -07:00
Miek Gieben
e47d881461 pkg/replace: make it more efficient. (#2544)
* pkg/replace: make it more efficient.

Remove the map that is allocated on every write and make it more static,
but just defining a function that gets called for a label and returns
its value.

Remove the interface definition and just implement what is needed in our
case. Add benchmark test for replace as well.

Extend metadata test to test multiple values (pretty sure this didn't
work, but there wasn't a test for it, so can't be sure).

Update all callers to use it - concurrent use should be fine as we pass
everything by value.

Benchmarks in replacer:

new: BenchmarkReplacer-4   300000      4717 ns/op     240 B/op       8 allocs/op
old: BenchmarkReplacer-4   300000      4368 ns/op     384 B/op      11 allocs/op

Added benchmark function to the old code to test it.

~~~
func BenchmarkReplacer(b *testing.B) {
	w := dnstest.NewRecorder(&test.ResponseWriter{})
	r := new(dns.Msg)
	r.SetQuestion("example.org.", dns.TypeHINFO)
	r.MsgHdr.AuthenticatedData = true
	b.ResetTimer()
	b.ReportAllocs()
	repl := New(context.TODO(), r, w, "")
	for i := 0; i < b.N; i++ {
		repl.Replace("{type} {name} {size}")
	}
}
~~~

New code contains (of course a different one). The amount of ops is
more, which might be good to look at some more. For all the allocations
is seems it was quite performant.

This looks to be 50% faster, and there is less allocations in log
plugin:

old: BenchmarkLogged-4   	   20000	     70526 ns/op
new: BenchmarkLogged-4   	   30000	     57558 ns/op

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

* Stickler bot

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

* Improve test coverage

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

* typo

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

* Add test for malformed log lines

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-02-12 07:38:49 +00:00
Miek Gieben
29cb00aada Remove grpc watch functionality (#2549)
This was added, but didn't see any use. For a large, complex chunk of
code we should have some users of it.

Remove all watch functionally from plugins, servers and packages.

Fixes: #2548

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-02-11 14:46:53 +00:00
JoeWrightss
f69819387d Fix t.Error error message (#2551)
Signed-off-by: zhoulin xie <zhoulin.xie@daocloud.io>
2019-02-11 07:23:05 +00:00
JoeWrightss
06d945fc32 Fix some spelling errors in comment (#2533)
Signed-off-by: zhoulin xie <zhoulin.xie@daocloud.io>
2019-02-07 11:27:27 -05:00
Guy Templeton
39cf482348 Set klog's logtostderr flag (#2529)
* Parse as well as  setlogtostderr flag

* Enforce setting of logtostderr for klog

* Clearup comment on klog
2019-02-07 07:33:30 +00:00
Christophe de Carvalho
d878eeebbb support etcd credentials in etcd plugin (#2442)
* support etcd credentials in etcd plugin

fixes #2441

* try to fix cleanup of authentication
2019-02-01 15:30:53 +00:00
JoeWrightss
b455f86824 Fix some typos in comment (#2520)
Signed-off-by: zhoulin xie <zhoulin.xie@daocloud.io>
2019-02-01 19:22:43 +08:00
ckcd
2b651129fb plugin/log: add test and benchmark (#2515) 2019-01-30 11:12:26 +00:00
Chris O'Haver
68e09f00a4 skip pushing watch updates when there are no watches (#2513) 2019-01-29 11:15:49 -08:00
Ye Ben
0eff7f3797 some typo fix (#2512)
Signed-off-by: yeya24 <ben.ye@daocloud.io>
2019-01-29 10:21:19 -05:00
Carl-Magnus Björkell
a84c26d78b plugin/etcd: Filter empty host field by qtype (#2499)
When a query, different from a TXT lookup is performed, all services
with a missing `Host` field should be filtered out, as these otherwize
cause a line in the answer section with a single dot (`.`) as the
result. This behavior manifests for example when a TXT record is present
on a domain, eg. an A or SRV lookup is performed on said domain.

If there are no services containing a `Host` field, a `NODATA` response
should be given. If there are other Services, these alone should be
returned for the query.

Filter any service that has an empty Host field from all lookup types
other than TXT to solve this issue. At the same time the check for empty
`Text` fields in TXT queries are also moved to the same check in the
etcd ServiceBackend.
2019-01-28 16:38:27 +00:00
Thomas Mangin
e343556687 plugin/hosts: fix for ipv4-in-ipv6 (#2506)
* fix for ipv4-in-ipv6

* update comment as requested
2019-01-28 16:36:34 +00:00