From 264c89d7ad84396853ba0462ed100c704bbd025a Mon Sep 17 00:00:00 2001 From: Nitish Tiwari Date: Sun, 1 Jul 2018 12:02:16 +0530 Subject: [PATCH] Document two lookups by CoreDNS etcdv3 plugin (#1918) --- plugin/etcd/README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plugin/etcd/README.md b/plugin/etcd/README.md index e60292a6d..8153653c0 100644 --- a/plugin/etcd/README.md +++ b/plugin/etcd/README.md @@ -59,6 +59,13 @@ etcd [ZONES...] { file - if the server certificate is not signed by a system-installed CA and client certificate is needed. +## Special Behaviour +CoreDNS etcd plugin leverages directory structure to look for related entries. For example an entry `/skydns/test/skydns/mx` would have entries like `/skydns/test/skydns/mx/a`, `/skydns/test/skydns/mx/b` and so on. Similarly a directory `/skydns/test/skydns/mx1` will have all `mx1` entries. + +With etcd3, support for [hierarchial keys are dropped](https://coreos.com/etcd/docs/latest/learning/api.html). This means there are no directories but only flat keys with prefixes in etcd3. To accomodate lookups, etcdv3 plugin now does a lookup on prefix `/skydns/test/skydns/mx/` to search for entries like `/skydns/test/skydns/mx/a` etc, and if there is nothing found on `/skydns/test/skydns/mx/`, it looks for `/skydns/test/skydns/mx` to find entries like `/skydns/test/skydns/mx1`. + +This causes two lookups from CoreDNS to etcdv3 in certain cases. + ## Examples This is the default SkyDNS setup, with everying specified in full: