Add etcd middleware

This middleware acts in the same way as SkyDNS. We might add options
to allow it to be behave different, but for now it will suffice.

A Corefile like:
.:1053 {
    etcd miek.nl
    proxy . 8.8.8.8:53
}
will perform lookup in etcd and proxy everything not miek.nl to Google
for further resolution.

The internal etcd forwarding *also* uses the proxy infrastructure,
meaning you get health check and such for (almost) free
This commit is contained in:
Miek Gieben
2016-03-20 17:44:58 +00:00
parent 15518b5b6f
commit 8f9f2cd1ab
19 changed files with 1575 additions and 8 deletions

View File

@@ -53,10 +53,13 @@ var directiveOrder = []directive{
// Directives that inject handlers (middleware)
{"prometheus", setup.Prometheus},
{"rewrite", setup.Rewrite},
{"file", setup.File},
{"reflect", setup.Reflect},
{"log", setup.Log},
{"errors", setup.Errors},
{"etcd", setup.Etcd},
{"file", setup.File},
{"reflect", setup.Reflect},
{"proxy", setup.Proxy},
}