Files
coredns/middleware/etcd/README.md

75 lines
2.3 KiB
Markdown
Raw Normal View History

2016-03-20 17:44:58 +00:00
# etcd
`etcd` enabled reading zone data from an etcd instance. The data in etcd has to be encoded as
a [message](https://github.com/skynetservices/skydns/blob/2fcff74cdc9f9a7dd64189a447ef27ac354b725f/msg/service.go#L26)
like [SkyDNS](https//github.com/skynetservices/skydns). It should also work just like SkyDNS.
2016-03-20 21:36:55 +00:00
The etcd middleware makes extensive use of the proxy middleware to forward and query other servers
in the network.
2016-03-20 17:44:58 +00:00
## Syntax
~~~
2016-03-22 11:32:12 +00:00
etcd [zones...]
2016-03-20 17:44:58 +00:00
~~~
* `zones` zones etcd should be authoritative for.
2016-03-20 17:44:58 +00:00
The path will default to `/skydns` the local etcd proxy (http://localhost:2379).
2016-03-22 11:32:12 +00:00
If no zones are specified the block's zone will be used as the zone.
2016-03-20 17:44:58 +00:00
2016-03-24 17:55:46 +00:00
If you want to `round robin` A and AAAA responses look at the `loadbalance` middleware.
2016-03-20 21:36:55 +00:00
2016-03-20 17:44:58 +00:00
~~~
etcd [zones...] {
stubzones
2016-03-20 17:44:58 +00:00
path /skydns
2016-03-22 11:04:56 +00:00
endpoint endpoint...
upstream address...
tls cert key cacert
debug
2016-03-20 17:44:58 +00:00
}
~~~
* `stubzones` enable the stub zones feature. The stubzone is *only* done in the etcd tree located
under the *first* zone specified.
* `path` the path inside etcd, defaults to "/skydns".
* `endpoint` the etcd endpoints, default to "http://localhost:2397".
* `upstream` upstream resolvers to be used resolve external names found in etcd, think CNAMEs
pointing to external names. If you want CoreDNS to act as a proxy for clients you'll need to add
the proxy middleware.
2016-03-26 16:32:36 +00:00
* `tls` followed the cert, key and the CA's cert filenames.
* `debug` allow debug queries. Prefix the name with `o-o.debug.` to retrieve extra information in the
additional section of the reply in the form of text records:
skydns.test.skydns.dom.a. 300 CH TXT "127.0.0.1:0(10,0,,false)[0,]"
This shows the complete key as the owername, the rdata of the TXT record has:
`host:port(priority,weight,txt content,mail)[targetstrip,group]`.
2016-03-20 18:17:07 +00:00
Any errors seen doing parsing will show up like this:
. 0 CH TXT "/skydns/local/skydns/r/a: invalid character '.' after object key:value pair"
which shows `a.r.skydns.local.` has a json encoding problem.
2016-03-20 17:44:58 +00:00
## Examples
This is the default SkyDNS setup, with everying specified in full:
~~~
.:53 {
etcd skydns.local {
stubzones
path /skydns
endpoint http://localhost:2379
upstream 8.8.8.8:53 8.8.4.4:53
}
prometheus
cache 160 skydns.local
loadbalance
proxy . 8.8.8.8:53 8.8.4.4:53
}
~~~