diff options
Diffstat (limited to 'plugin/kubernetes')
-rw-r--r-- | plugin/kubernetes/README.md | 2 | ||||
-rw-r--r-- | plugin/kubernetes/setup.go | 16 | ||||
-rw-r--r-- | plugin/kubernetes/setup_test.go | 2 |
3 files changed, 14 insertions, 6 deletions
diff --git a/plugin/kubernetes/README.md b/plugin/kubernetes/README.md index 363b8b536..136b301f5 100644 --- a/plugin/kubernetes/README.md +++ b/plugin/kubernetes/README.md @@ -16,6 +16,8 @@ to deploy CoreDNS in Kubernetes](https://github.com/coredns/deployment/tree/mast [stubDomains and upstreamNameservers](http://blog.kubernetes.io/2017/04/configuring-private-dns-zones-upstream-nameservers-kubernetes.html) are implemented via the *proxy* plugin and kubernetes *upstream*. See example below. +This plugin can only be used once per Server Block. + ## Syntax ~~~ diff --git a/plugin/kubernetes/setup.go b/plugin/kubernetes/setup.go index 7d41fb64d..9eddadbb7 100644 --- a/plugin/kubernetes/setup.go +++ b/plugin/kubernetes/setup.go @@ -71,12 +71,18 @@ func (k *Kubernetes) RegisterKubeCache(c *caddy.Controller) { } func kubernetesParse(c *caddy.Controller) (*Kubernetes, error) { - var k8s *Kubernetes - var err error - for i := 1; c.Next(); i++ { - if i > 1 { - return nil, fmt.Errorf("only one kubernetes section allowed per server block") + var ( + k8s *Kubernetes + err error + ) + + i := 0 + for c.Next() { + if i > 0 { + return nil, plugin.ErrOnce } + i++ + k8s, err = ParseStanza(c) if err != nil { return k8s, err diff --git a/plugin/kubernetes/setup_test.go b/plugin/kubernetes/setup_test.go index 3ce837e98..63ea52f66 100644 --- a/plugin/kubernetes/setup_test.go +++ b/plugin/kubernetes/setup_test.go @@ -388,7 +388,7 @@ func TestKubernetesParse(t *testing.T) { `kubernetes coredns.local kubernetes cluster.local`, true, - "only one kubernetes section allowed per server block", + "this plugin", -1, 0, defaultResyncPeriod, |