Commit Graph

1990 Commits

Author SHA1 Message Date
Miek Gieben
118b0c9408 plugin/metrcs: fix datarace on listeners (#2835)
This fixes a data race on the listener(s) that get started in the
metrics plugins.

It also restore pkg/uniq to its former glory and removes and state being
carried in there; this means for metrics that registry.go was to
replicate that behavior *with* locking (as pkg/uniq doesn't do, or need
that).

Also renamed uniqAddr to just u, to make it slightly shorter.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-05-18 18:34:46 +01:00
Miek Gieben
d41e9ff7b7 pkg/log: reset the buffer in the tests (#2828)
Reset the buf otherwise we're not checking the new value.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-05-18 09:08:34 +01:00
Miek Gieben
2ef55f805e plugin/metrics: fix failed reload (#2816)
Fix metrics endpoint on a failed reload, follows the same lines as the
previous PRs, see for e.g. 076b8d4f. Test with a Corefile with 2 server
blocks and metrics enabled and then introducing a syntax error:

~~~
[ERROR] Restart failed: Corefile:5 - Error during parsing: Unknown directive 'jfkdjk'
[ERROR] SIGUSR1: starting with listener file descriptors: Corefile:5 - Error during parsing: Unknown directive 'jfkdjk'
~~~

And then curl-ing the metrics endpoint.

See #2659 and as this is the last one.

Fixes: #2659

Getting this all right turns out to be tricky, also it's not easy
testable which is something I should fix.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-05-13 04:26:05 -07:00
Chris O'Haver
c147e20373 make ignore empty work with ext svc types (#2823) 2019-05-07 17:31:50 -07:00
Yong Tang
6e1c57acfa Rename middleware -> plugin in comment (#2818)
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2019-05-05 17:31:55 +00:00
Miek Gieben
fd165e94d5 plugin/autopath docs: remove last use of middleware (#2817)
This has somehow survived; the docs still used Middleware instead of
Plugins.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-05-05 18:02:59 +01:00
Miek Gieben
0c2dbed82a docs: plugin.md (#2813)
Update this file, give Readiness its own section and remove the talk
about the *reverse* plugin as it does not exist in the main tree
anymore.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-05-05 12:51:51 -04:00
Miek Gieben
076b8d4fba plugin/health: add OnRestartFailed (#2812)
Add OnReStartFailed which makes the health plugin stay up if the
Corefile is corrupt and we revert to the previous version.

Also needs a fix for the channel handling

See #2659

Testing it will log the following when restarting with a corrupted
Corefile

~~~
2019-05-04T18:01:59.431Z [INFO] linux/amd64, go1.12.4,
CoreDNS-1.5.0
linux/amd64, go1.12.4,
[INFO] SIGUSR1: Reloading
[INFO] Reloading
[ERROR] Restart failed: Corefile:5 - Error during parsing: Unknown directive 'bdhfhdhj'
[ERROR] SIGUSR1: starting with listener file descriptors: Corefile:5 - Error during parsing: Unknown directive 'bdhfhdhj'
~~~

After which the curl still works.

This also needed a change to reset the channel used for the metrics
go-routine which gets closed on shutdown, otherwise you'll see:

~~~
^C[INFO] SIGINT: Shutting down
panic: close of closed channel

goroutine 90 [running]:
github.com/coredns/coredns/plugin/health.(*health).OnFinalShutdown(0xc000089bc0, 0xc000063d88, 0x4afe6d)
~~~

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-05-04 16:06:25 -04:00
Miek Gieben
890cdb5cab plugin/health: cleanups (#2811)
Small, trivial cleanup: got triggered because I saw a comment on how
health plugins polls other plugins which isn't true.

* Remove useless newHealth function
* healthParse -> parse
* Remove useless constants

Net deletion of code.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-05-04 16:06:04 -04:00
Billie Cleek
e178291ed6 kubernetes: never respond with NXDOMAIN for authority label (#2769)
* kubernetes: never respond with NXDOMAIN for authority label

Return a nodata response when trying to resolve the authority's label
for a record type that doesn't match the record type of the authority.

This guards against poisoning the authority record by requesting the
wrong record type for the authority label. For instance, given an
authoritative resolver that uses subdomain delegation for Kubernetes
services of a cluster that's configured to use IPv4, the parent may be
poisoned by querying it for the authority label of the cluster subdomain
with a AAAA record type, which would otherwise (i.e. without this
change) return an NXDOMAIN. That is, given
	cluster.example.com        NS 10800 ns.dns.cluster.example.com
	ns.dns.cluster.example.com A  10800 10.0.1.2
The parent may be poisoned for the SOA TTL by querying it for a AAAA
record of ns.dns.cluster.example.com, causing the parent to fail
delegate properly until the SOA TTL lapses.

* kubernetes: add tests for authority queries
2019-05-01 10:42:38 -04:00
Cricket Liu
b4485b48d9 Update README.md (#2808)
Minor grammatical fixes.
2019-04-30 13:49:53 -04:00
Chris O'Haver
ab1c0bb425 plugin/loop: Update troubleshooting step (#2804)
* Update README.md
2019-04-30 08:42:14 -04:00
Yong Tang
82862b44a3 Remove trailing whitespaces (#2806)
While running make notices the following:
```
** presubmit/trailing-whitespace
plugin/grpc/README.md:Multiple upstreams are randomized (see `policy`) on first use. When a proxy returns an error
plugin/pprof/setup_test.go:		{`pprof :1234 {
plugin/pprof/setup_test.go:		{`pprof {
** presubmit/trailing-whitespace: please remove any trailing white space
```

This fix removes the whitespaces

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2019-04-29 13:51:45 -04:00
Miek Gieben
39bc2af509 Add any plugin (#2801)
* Add any plugin

This adds the any plugin, a plain copy of coredns/any documented here
https://coredns.io/explugins/any/ as an external plugin.

Fixes: #2785

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

* Stickler bot nit

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-04-28 11:46:45 +01:00
Michael Grosser
4f7fb98284 Upgrade to Caddy v1 (#2800)
Automatically submitted.
2019-04-27 07:42:35 +00:00
Cricket Liu
72a633ba09 Update README.md (#2799)
s/from/form
2019-04-24 07:01:44 +01:00
Miek Gieben
3adfeaa857 plugin/chaos: randomize author list (#2794)
Randomize the author list on request; keep the zowners.go file stable so
a 'go generate' remain stable.

chaos.Owners could potentially be a map and be randomized by ranging
over it, but this seems simpler and fewer lines of code.

Bit of Easter hacking; seems more fair to randomize this list.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-04-23 23:21:28 +08:00
Miek Gieben
2c418b9fd5 Doc update (#2792)
* Fix spelling in coredns.1 and corefile.7 md files
* Run make -f Makefile.doc

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-04-22 05:38:40 +08:00
Miek Gieben
98c7a6effb plugin/health: clarify use a bit (#2791)
Make clearer how health works and that is it process wide.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-04-18 09:21:02 -07:00
varyoo
5aafa987b2 Remove varyoo from OWNERS
Bye for now :-)
2019-04-11 19:49:45 +02:00
Miek Gieben
a6dbc837b3 upgrade miekg/dns to 1.1.8 (#2774)
Upgrade miekg/dns to 1.1.8

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-04-08 09:58:54 -07:00
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
e3f9a80b1d WIP: travis changes (#2766)
* WIP: travis changes

Simplify Travis so it fails less often.

We don't need docker any more, let alone trusty and sudo, so simplifies
this, to just os: linux.

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

* This?

Signed-off-by: Miek Gieben <miek@miek.nl>
v1.5.0
2019-04-06 14:38:51 +01:00
Miek Gieben
0e2467d3ed Bump version to 1.5.0 (#2765)
Signed-off-by: Miek Gieben <miek@miek.nl>
2019-04-06 14:11:03 +01:00
Miek Gieben
b780f49ccf manpages: chop off first header (#2764)
each readme starts with the plugin's name as a header, this needs to be
chopped off to provide a good manual page.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-04-06 14:09:05 +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
f8aa208cc0 docs: Regenerate all manpages using mmark (#2762)
Mmark recently became able to create manual pages. This removed the
dependency on 'ronn' and just uses mmark (Go program).

Re-hookup Makefile.doc to generate the correct header mmark needs to
see and regenate them all.

Spot checking a few pages suggest they look good and actually better
than rendered with ronn, esp. lists in lists.

Fixes #2757

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-04-06 08:42:40 +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
Chris O'Haver
75bd6290c8 Update coredns-1.5.0.md (#2759) 2019-04-04 07:18:01 +01:00
John Belamaric
90c6d37481 Update k8s line and add deprecations (#2758) 2019-04-03 19:26:54 +01:00
Miek Gieben
1cb94e0ed9 ore release notes: k8s plugin and chaos (#2755)
Signed-off-by: Miek Gieben <miek@miek.nl>
2019-04-03 11:30:01 +01:00
Miek Gieben
b92bfd8366 Fix coredns.1 manpage (#2756)
Signed-off-by: Miek Gieben <miek@miek.nl>
2019-04-03 11:28:53 +01:00
Chris O'Haver
7ef4e1be5a manifest-tool doesn't support mips (#2753)
* remove mips from manifest

* derp

* add comment
2019-04-03 07:27:03 +01: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
Miek Gieben
da1fa85505 notes/150: spell check and expand it a little (#2749)
Signed-off-by: Miek Gieben <miek@miek.nl>
2019-04-02 09:20:05 +01:00
John Belamaric
aea98acf2f Bump the resync period to five hours (#2748) 2019-04-01 16:24:55 -07:00
Miek Gieben
537ed9ecd5 release: add 1.5.0 release notes (#2741)
* release: add 1.5.0 release notes

Add the release notes to the notes/ directory to prepare for a release.

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

* Update notes/coredns-1.5.0.md

Co-Authored-By: miekg <miek@miek.nl>

* More

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

* Update notes/coredns-1.5.0.md

Co-Authored-By: miekg <miek@miek.nl>
2019-04-01 18:57:39 +01:00
Chris O'Haver
67fdd7f23f Update README.md (#2747) 2019-04-01 10:38:17 -04:00
spigell
b9766ae515 add mips to released ARCH (#2746) 2019-04-01 14:58:56 +01:00
Miek Gieben
a6cc88756c proxy: remove from config (#2744)
fully remove proxy and make it completely external.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-04-01 07:52:47 +01:00
Miek Gieben
c21f0c9651 README: minimal changes to say we're a DNS server (#2743)
Small tweaks, tell we're a DNS server.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-04-01 07:52:37 +01: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
db34c10589 server: small cleanups (#2740)
Rename connTimeout to graceTimeout to be more instructive on it's use,
some whitespace for imports lines.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-31 08:32:55 +01:00
Miek Gieben
c5bad4f81d Doc: regenerate the man-pages (#2739)
A 'make -f Makefile.doc clean all'.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-30 13:56:52 +00:00
Miek Gieben
b75478e73b server: remove if registry != nil code (#2735)
I can't find what's this code should be doing and it looks like it's
not doing anything.

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-30 11:50:19 +00:00