Commit Graph

559 Commits

Author SHA1 Message Date
Miek Gieben
bfaf9e0aec core: add more transports (#574)
* core: add listening for other protocols

Allow CoreDNS to listen for TLS request coming over port 853. This can
be enabled with `tls://` in the config file.

Implement listening for grps:// as well.

a Corefile like:

~~~
. tls://.:1853 {
    whoami
    tls
}
~~~

Means we listen on 1853 for tls requests, the `tls` config item allows
configuration for TLS parameters. We *might* be tempted to use Caddy's
Let's Encrypt implementation here.

* Refactor coredns/grpc into CoreDNS

This makes gRPC a first class citizen in CoreDNS. Add defines as being
just another server.

* some cleanups

* unexport the servers

* Move protobuf dir

* Hook up TLS properly

* Fix test

* listen for TLS as well. README updates

* disable test, fix package

* fix test

* Fix tests

* Fix remaining test

* Some tests

* Make the test work

* Add grpc test from #580

* fix crash

* Fix tests

* Close conn

* README cleanups

* README

* link RFC
2017-03-13 20:24:37 +00:00
John Belamaric
4985d698e2 Fix the deps build (#583)
The deps target needs to be dependent on the generated middleware code,
or you end up having to do make twice.
2017-03-13 15:55:44 +00:00
Miek Gieben
05dee778bd core: remove dns.ServeMux (#576)
We don't need to use the muxer in Go DNS s we only have one entry point
per server - and mux ourselves in ServeDNS. Also make ServeDNS take a
context, and make that the canonical way to call all middleware.
2017-03-09 09:11:59 +00:00
John Belamaric
72bc7e6278 Export ServeDNSWithContext for use by gRPC server middleware (#577) 2017-03-08 21:28:26 +00:00
John Belamaric
ef315ef3e2 Rewrite edns0 (#561)
* Add edns0 code rewrite

* check arg count

* change `new`; set EDNS0 if request doesn't have it set

* change set to replace_or_append

* change to append_or_replace

* return error in new

* update documents

* fixt UT

* return error

* go fmt

* Rework for more general EDNS0 use

Also changed how rules are created and validated. Implements
EDNS0 NSID in addition to local.

* go fmt

* README updates, NSID tests and fixes

* gofmt -s -w

* Fix tests for rewrite syntax change

* Add tests, fix error message

* Review nits

* Missed on nit

* More tests, integration test, fix edns0 parse issue

* Fix README, use RewriteIgnored

* go fmt
2017-03-06 21:32:17 +00:00
Miek Gieben
d1bb4ea130 Don't error log NXDOMAIN (#572)
In both etcd and k8s don't error log NXDOMAIN as this log spams the logs
for no good reason.

Fixes #568

Better long term solution is log rate limiting for both *log* and
*error*.
2017-03-06 11:43:23 +00:00
Miek Gieben
12678ac5e2 middleware/kubernetes: doc cleanup (#571)
Set of small cleanups.
2017-03-06 11:42:59 +00:00
Yong Tang
1e4ba588dc Enforce go lint check and fix several lint issues (#570)
This fix updates the Makefile to add the `go lint` check
for the build. This fix also fixes several go lint issues.

NOTE: This fix does not enforce `go lint` (suggestion only).
This fix also ignores the `go lint` error:
```
middleware/middleware.go:72:1: context.Context should be the first parameter of a function
```
as it requires too many changes in API.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2017-03-05 14:17:05 -08:00
Chris Aniszczyk
5eedb728df Add CNCF Code of Conduct (#565)
* Add CNCF Code of Conduct

Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>

* Fix reference to CNCF
2017-03-03 07:34:17 +00:00
Chris Aniszczyk
22c9289458 Add reference to CNCF in README (#567)
https://cncf.io
2017-03-02 22:16:31 +00:00
Miek Gieben
6966bce653 Fix resolving CNAME with no proxy (#564)
This fixes a crash when we resolve (or try to) an external CNAME
when no proxy is set.

Add test as well.
2017-03-02 19:35:44 +00:00
Miek Gieben
a3f7788686 Put docker release in Makefile.release (#562)
Make the docker release part of the normal CoreDNS release
2017-03-01 15:46:26 +00:00
John Belamaric
9ea8cde36e Grpc tracing (#544)
* checkpoint

* Pass context through ServeDNS, enable gRPC tracing

* Fix types and make tracer available to proxy. go fmt

* Fix imports

* Use the DoNotStartTrace option

* Change to SpanFilter from DoNotStartTrace

* Use new name (IncludeSpan)

* Final names

* Add tests; fix possible client/conn leaks in grpc

* go fmt
2017-03-01 10:41:54 -05:00
Jonathan Boulle
0a4903571e README: fix a couple of small typos (#560) 2017-02-27 10:51:18 -05:00
John Belamaric
838427c95d Remove deployment helpers that are now in coredns/deployment/kubernetes (#554) 2017-02-22 21:44:20 +00:00
Miek Gieben
703f516112 Release 006 v006 2017-02-22 21:22:11 +00:00
Yong Tang
43c2fcc1ef Add dependency of go fmt in Makefile (#553)
This fix adds the dependency of `go fmt` in `Makefile`
so that any new check in will have to properly fmt the source code
with `gofmt -s -w`.
2017-02-22 13:28:04 -05:00
Miek Gieben
4723fb9418 Gofmt all code (#552)
* Gofmt all code

* fmt
2017-02-22 16:06:20 +00:00
Yong Tang
682957cc29 Fix incorrect link of the CodeCov in README.md (#551)
This fix fixes incorrect link of the CodeCov in README.md.
2017-02-22 10:26:06 +00:00
Miek Gieben
bf82f007fa Fix test (#549) 2017-02-22 09:23:41 +00:00
Miek Gieben
c5224b1048 Golint (#548)
* linter fixes

* Golint and format code

* fmt
2017-02-22 07:25:58 +00:00
Yong Tang
81af74aad0 Fix import path github.com/miekg/coredns -> github.com/coredns/coredns (#547)
This fix fixes import path from
`github.com/miekg/coredns`
->
`github.com/coredns/coredns`
2017-02-22 06:51:47 +00:00
Yong Tang
5982337226 Fix badge in README.md (#545)
This fix fixes badge in README.md so that it will correctly reflect
github.com/coredns/coredns
2017-02-21 21:25:09 +00:00
Miek Gieben
d0303195c3 Makefile.release: move to coredns/coredns 2017-02-21 20:02:43 +00:00
Miek Gieben
81818e4866 Remove logo: live in logo repo
We now sit under coredns/coredns this means the logo can be in it's
repository.
2017-02-21 19:57:11 +00:00
Miek Gieben
7c59d39834 middleware/metrics: survive restart (#542)
* middleware/metrics: survive restart

Keep the handler running during restart. Stopping and starting the
handler results in "address in use" - sometimes, meaning the reload
will be flaky. In turn this behavior means any changes to the monitor
stanza are not picked up.

* remove resync
2017-02-21 19:34:40 +00:00
Miek Gieben
26242cef1b Document fallthrough and fix rewrite (#537)
* Document fallthrough and fix *reverse*

While documenting the fallthrough behavior and testing it I noticed
the did not properly work. This PR does a tiny bit too much as it

- Documents fallthrough
- Fixes fallthrough in reverse
- Makes directives_generate complain on duplicate priorities
- Moved reverse *before* file in middleware.cfg
- Add a test that tests the reverse fallthrough behavior with a file
  backend

Fixes #515

* ....and fix the tests
2017-02-20 21:00:00 +00:00
Miek Gieben
3e26398e08 middleware/file: additional section processing (#531)
Add additional section processing for MX and SRV records. Update the
tests.
2017-02-19 20:42:34 +00:00
Miek Gieben
ea38b642b8 All middleware equal (#535)
* all-middleware-equal

* Revert "all-middleware-equal"

This reverts commit ee77b2a981.

* middleware: treat external and local the same

Make the middleware generation simpler and also specify the local
middleware, meaning that it can now be removed as well. Simplify
the code a bit and regen everything.

* remove lineNR, not used
2017-02-19 20:34:29 +00:00
Miek Gieben
bcd9c8b0fb server: fix data race (#536)
* server: fix data race

This fixes the detected race.

Fixes #534

* Remove the listener and packetconn from Server

There does not seem a need to store the listener and packetconn again
in the Server structure. The dns.Servers already has access to them
and can also shutdown the handlers.
2017-02-19 20:34:09 +00:00
John Belamaric
5aa30308d9 Various trace improvements (#527) 2017-02-16 17:13:18 +00:00
John Belamaric
bd033ef6c7 Make go generate run whenever middleware.cfg is changed (#530) 2017-02-16 17:12:19 +00:00
John Belamaric
84fb9b8469 Fix make gen (#526)
When using an external middleware, the generated file was failing to compile.
The issue is a typo in directives_generate.go that left imports with an
unterminated string.
2017-02-15 16:38:55 +00:00
Miek Gieben
34db56a22e readme updates (#525) 2017-02-15 08:03:14 +00:00
John Belamaric
061b3fc1bd Client-side of gRPC proxy (#511)
* WIP: Client-side of gRPC proxy

* Add tests

* gofmt

* Implement OnShutdown; add a little logging

* Update for context in Exchange change

* go fmt

* Update README

* Review comments

* Compiling is good

* More README improvements
2017-02-14 22:20:20 -05:00
Miek Gieben
98c86f3f9f go gen improvements (#524)
Remove the "gen" directory and move directives_generate.go out of it.
Add a build ignore tag so it isn't build by default. Cleanup the go gen
invocations so there are not seen as package docs.

Simplify the code a bit and don't run go gen twice.
2017-02-14 19:23:18 +00:00
Miek Gieben
a5f3cb5fe5 La context (#521)
* middleware/proxy: give Exchange a context

Make context.Context the first paramater in the Exchange method.
This is inline with all other query functions.

* up the version
2017-02-11 16:56:04 +00:00
Miek Gieben
5f6c7682be core: make coredns.Server a caddy.GracefulServer (#520)
* core: make coredns.Server a caddy.GracefulServer

We needed to also implement the Address() method.

Fixes: #519

* Add compile time check if we implement caddy.GracefulServer

* Check if we should shutdown
2017-02-10 19:50:31 +00:00
Miek Gieben
3e196a6d57 middleware/reverse: random updates (#516)
* middleware/reverse: random updates

Make the documentation somewhat shorter (and hopefully clearer in the
process). Also to be on-par with the *auto* middleware, start counting
the referenced zones from 1 (instead of 0).
Some variable cleanups and use the NextOrFailure in the ServeDNS
function.

* More TODOs
2017-02-10 12:48:51 +00:00
John Belamaric
87a39a6353 Update to point to coredns/coredns image (#517) 2017-02-09 21:58:32 +00:00
Richard Hillmann
61afc6dbad Add middleware reverse (#452) 2017-02-09 19:39:48 +00:00
Miek Gieben
a7c9fd5d6b Release 005 v005 2017-02-09 18:47:21 +00:00
Bob Wasniak
22e39a072a Allow override of container name (#512) 2017-02-09 18:27:31 +00:00
Chris O'Haver
353c1c6487 Fix k8s chaining (#510)
* fix k8s next middleware chaining

* add chain to integration tests

* if nit
2017-02-08 12:53:55 -05:00
Bob Wasniak
fa1c90a479 Add field keywords to rewrite middleware (#497)
* Require Field for rewrite rules

* review feedback changes

* fix ut

* fix typo, add warning message
2017-02-07 21:53:16 +00:00
Miek Gieben
b8e75509cc Merge branch 'master' of github.com:miekg/coredns 2017-02-07 21:30:13 +00:00
Miek Gieben
fa0abe7473 middleware/proxy: sane(r) metrics
Add proxy_proto and re-instate proto to be the protocol of the incoming
query ("tcp" or "udp").
2017-02-07 21:28:47 +00:00
Chris O'Haver
4b6860fc81 Fix k8s PTR when all namespaces exposed (#507)
* check for no namespace filter

* integration test
2017-02-07 16:22:43 -05:00
Miek Gieben
89dc5720d0 And make it actually work (#508) 2017-02-07 21:03:17 +00:00
Chris O'Haver
fd4c5b5744 Fix no PTR records response for cidr ranges (#506)
* set zone for cidr based PTRs

* set zone to request
2017-02-07 13:58:52 -05:00