Commit graph

588 commits

Author SHA1 Message Date
Miek Gieben
be1ac9fed4
plugins: remove upstream [ADDRESS] from docs (#2772)
Various plugins still had this documented, the setup functions still
allow it (which is fine), but update the docs that this arguments isn't
there any more.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-04-08 16:45:29 +01:00
Kun Chang
be8b29cd4d [plugin/cache] cache failures (#2720)
* cache failures

* use ServerError
2019-04-08 11:15:05 +01:00
Miek Gieben
58c703f5ef
Run gofmt -w -s on codebase (#2773)
This formats and simplifies all code by running gofmt -w -s on all Go
files.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-04-08 11:13:46 +01:00
Miek Gieben
5a4e4d92ef
Doc tweaks (#2763)
* fix date on 150 release notes
* fix syntax in route53 plugin

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-04-06 08:43:19 +01:00
Miek Gieben
663271a7ca plugin/forward: remove proxy comparison (#2760)
*proxy* is removed, so this is moot

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-04-04 13:36:17 -07:00
John Belamaric
2418a6b2d2
plugin/kubernetes: Disable resync by default (#2752)
* Disable resync by default

* Document default resync
2019-04-02 14:55:25 -07:00
Fernando Ripoll
6f5b294d7e Add all policies to forward plugin docs (#2751) 2019-04-02 18:24:54 +01:00
John Belamaric
aea98acf2f
Bump the resync period to five hours (#2748) 2019-04-01 16:24:55 -07:00
Chris O'Haver
67fdd7f23f
Update README.md (#2747) 2019-04-01 10:38:17 -04:00
Xiao An
cb96ab9f4f Fully deprecate TIMEOUT and NO_RELOAD (#2742)
* Fully deprecate NO_RELOAD

Signed-off-by: Xiao An <hac@zju.edu.cn>

* Fully deprecate TIMEOUT

Signed-off-by: Xiao An <hac@zju.edu.cn>

* Update CI tests to adapt to the deprecation of TIMEOUT

Signed-off-by: Xiao An <hac@zju.edu.cn>

* Add documents for directive transfer in plugin auto

Signed-off-by: Xiao An <hac@zju.edu.cn>
2019-04-01 07:28:01 +01:00
Miek Gieben
99c3d065bc plugin/chaos: add default list of authors (#2737)
* plugin/chaos: add default list of authors

Add a owners_generate.go that generates a Owners variables for use in
the chaos plugin.

Add a default list of authors in the authors.bind CH zone. When doing a
query this now returns:

~~~ sh
% dig authors.bind TXT CH

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5456
;; flags: qr rd; QUERY: 1, ANSWER: 22, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;authors.bind.			CH	TXT

;; ANSWER SECTION:
authors.bind.		0	CH	TXT	"bradbeam"
authors.bind.		0	CH	TXT	"chrisohaver"
authors.bind.		0	CH	TXT	"dilyevsky"
authors.bind.		0	CH	TXT	"ekleiner"
authors.bind.		0	CH	TXT	"fastest963"
authors.bind.		0	CH	TXT	"fturib"
authors.bind.		0	CH	TXT	"greenpau"
authors.bind.		0	CH	TXT	"grobie"
authors.bind.		0	CH	TXT	"inigohu"
authors.bind.		0	CH	TXT	"isolus"
authors.bind.		0	CH	TXT	"johnbelamaric"
authors.bind.		0	CH	TXT	"miekg"
authors.bind.		0	CH	TXT	"nchrisdk"
authors.bind.		0	CH	TXT	"nitisht"
authors.bind.		0	CH	TXT	"pmoroney"
authors.bind.		0	CH	TXT	"rajansandeep"
authors.bind.		0	CH	TXT	"rdrozhdzh"
authors.bind.		0	CH	TXT	"rtreffer"
authors.bind.		0	CH	TXT	"stp-ip"
authors.bind.		0	CH	TXT	"superq"
authors.bind.		0	CH	TXT	"varyoo"
authors.bind.		0	CH	TXT	"yongtang"
~~~

This was hard to do previously as we didn't hardcode this in the source,
but now with OWNERS files we can just generate this list.

Privacy wise this isn't worse than being listed in OWNERS file in the
first place. And it's a nice hat tip to the people making CoreDNS
better.

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

* Sticklet bot comments

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-31 11:01:11 -07:00
dilyevsky
1e150674c5 [plugin/route53]: Do not return NXDOMAIN where it should be NODATA. (#2734)
* [plugin/route53]: Do not return NXDOMAIN where it should be NODATA.

Signed-off-by: Dmitry Ilyevskiy <dmitry.ilyevskiy@getcruise.com>

* Fix bad merge.

Signed-off-by: Dmitry Ilyevskiy <dmitry.ilyevskiy@getcruise.com>
2019-03-31 10:12:33 -07:00
Miek Gieben
ba87a0e6ba
plugin/cancel: add context cancelation plugin (#2711)
* plugin/cancel: add context cancelation plugin

Per review comments on #2704, move this into a plugin that gets called.
Add the most minimal plugin, tests and documenation.

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

* plugin/cache: add timeout option

review feedback: add option to set custom timeout.

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

* spelling

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-29 19:40:23 +00:00
Miek Gieben
fcb49fe016
plugin/pprof: spice up the readme (#2731)
Rework this a little to be more inline with the other READMEs

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-29 12:47:59 +00:00
Francois Tur
c144da2524 plugin/pprof - add option to enable block profiling (#2729)
* - add an option for block profiling to plugin pprof

* - move option block into nested block
2019-03-29 06:37:17 +00:00
Chris O'Haver
f6eb2a4c14 restore change detection (#2696) 2019-03-26 15:26:19 +00:00
Miek Gieben
53f3f0b666
Remove context.Context from request.Request (#2726)
* Remove context.Context from request.Request

This removes the context from request.Request and makes all the changes
in the code to make it compile again. It's all mechanical. It did
unearth some weirdness in that the context was kept in handler structs
which may cause havoc with concurrently handling of requests.

Fixes #2721

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

* Make test compile

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-26 14:37:30 +00:00
Miek Gieben
6492f777cd
pkg/response: add extra test for impossible msg (#2727)
Add another test case for impossible DNS messages which should not be
cached. This adds a check for a message that denies its own existence.

Fixes #2724.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-26 14:36:20 +00:00
Miek Gieben
93f635023a
Don't double report metrics on error (#2719)
* Don't double report metrics on error

When there is an error use a different function to report the metrics,
in case the plugin chain handled the request the metrics are already
reported.

Fixes: #2717

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

* Compile again

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-25 19:04:03 +00:00
Miek Gieben
9a8c301a42 Remove server addr from the context (#2722)
* more

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

* Remove server addr from the context

This was added twice, just leave the server which also holds the
address.

Conflicts with #2719 but should be easy to fix.

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

* doesn't need server context

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-25 10:46:44 -07:00
Miek Gieben
45624a0c0a plugin/log: remove ErrorFunc (#2716)
The server handles this case no need to also do it in the log plugin.

Means DefaultErrorFunc can be private to the dnsserver and is now
renamed to just errorFunc

Fixes: #2715

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-25 11:36:46 +08:00
Miek Gieben
f08f7e24d6
request.Request: remove useless function (#2714)
ErrorMessage was a very shallow function that didn't add anything.
Remove it and remove its usage.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-24 13:26:15 +00:00
peiranliushop
403d42ce20 Support logging to dnstap in forward plugin (#2703) 2019-03-23 09:45:20 +00:00
Jiacheng Xu
0e137b23f1 plugin/metrics: Add a metric to monitor which plugin(s) is(are) enabled (#2700)
* Add a GaugeVec for enabled plugins monitoring.

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

* Add server label and zone label for enable_plugin matric.

* Add a test for PluginEnabled metric

* Add description for enabledPlugin metric.

* Change the description for the enabledPlugin metric.

* Reset the enabledPlugin metric when restart the server.

* Add the bug session for enabledPlugin metric.

* Remove the resolveTCPAddr
2019-03-23 09:43:15 +00:00
Matt Greenfield
a3dd8cdf8d Add namespace_labels configuration for kubernetes plugin (#2707) 2019-03-22 14:32:40 +00:00
Miek Gieben
43c3e0ab68 plugin/kubernetes: add ready function (#2709)
* plugin/kubernetes: add ready function

Add ready function as the health function is now gone.

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

* Fix readme

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-20 09:32:23 -04:00
MengZeLee
4405661520 patch setup (#2675)
* patch setup

Use a more streamlined grammar

* fix break

No need to break out in this for loop
2019-03-18 07:17:46 +00:00
Iñigo
287e280106 plugin/grpc: bugfix setup parser (#2697)
Fix setup parser. Config params are not being setting.
2019-03-15 07:55:26 +00:00
Iñigo
7b6cb76237 plugin/grpc: New gRPC plugin (#2667)
* plugin/grpc: New gRPC plugin

* some changes after the first review:

- remove healthcheck. gRPC already has this implicitly implemented
- some naming and stetic changes
- fix some comments
- other minor fixes

* plugin/grpc: New gRPC plugin

* some changes after the first review:

- remove healthcheck. gRPC already has this implicitly implemented
- some naming and stetic changes
- fix some comments
- other minor fixes

* add OWNERS file and change plugin order

* remove Rcode checker
2019-03-14 07:12:28 +00:00
dilyevsky
0d8e1cf8b4 [plugin/route53] Support wildcards and other escaped chars. (#2352)
* [plugin/route53] Support wildcards and other escaped chars.

* Fix multiple issues. Add tests.

* Cleanup some comments.
2019-03-13 18:46:30 +00:00
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