From 82854bf09875ec9c06eba7efd5c30ee65d47c759 Mon Sep 17 00:00:00 2001 From: Chris O'Haver Date: Wed, 7 Feb 2018 11:31:08 -0500 Subject: plugin/kubernetes: Allow only one k8s section (#1497) * allow only one k8s section * add test --- plugin/kubernetes/setup.go | 5 ++++- plugin/kubernetes/setup_test.go | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/plugin/kubernetes/setup.go b/plugin/kubernetes/setup.go index 86221a182..e8fc484bf 100644 --- a/plugin/kubernetes/setup.go +++ b/plugin/kubernetes/setup.go @@ -74,7 +74,10 @@ func kubernetesParse(c *caddy.Controller) (*Kubernetes, dnsControlOpts, error) { resyncPeriod: defaultResyncPeriod, } - for c.Next() { + for i := 1; c.Next(); i++ { + if i > 1 { + return nil, opts, fmt.Errorf("only one kubernetes section allowed per server block") + } zones := c.RemainingArgs() if len(zones) != 0 { diff --git a/plugin/kubernetes/setup_test.go b/plugin/kubernetes/setup_test.go index 24d68f412..fed8513cf 100644 --- a/plugin/kubernetes/setup_test.go +++ b/plugin/kubernetes/setup_test.go @@ -382,6 +382,20 @@ func TestKubernetesParse(t *testing.T) { fall.Zero, nil, }, + // More than one Kubernetes not allowed + { + `kubernetes coredns.local +kubernetes cluster.local`, + true, + "only one kubernetes section allowed per server block", + -1, + 0, + defaultResyncPeriod, + "", + podModeDisabled, + fall.Zero, + nil, + }, } for i, test := range tests { -- cgit v1.2.3