plugin/kubernetes: Allow only one k8s section (#1497)

* allow only one k8s section

* add test
This commit is contained in:
Chris O'Haver 2018-02-07 11:31:08 -05:00 committed by Miek Gieben
parent f636930c5c
commit 82854bf098
2 changed files with 18 additions and 1 deletions

View file

@ -74,7 +74,10 @@ func kubernetesParse(c *caddy.Controller) (*Kubernetes, dnsControlOpts, error) {
resyncPeriod: defaultResyncPeriod, 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() zones := c.RemainingArgs()
if len(zones) != 0 { if len(zones) != 0 {

View file

@ -382,6 +382,20 @@ func TestKubernetesParse(t *testing.T) {
fall.Zero, fall.Zero,
nil, 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 { for i, test := range tests {