aboutsummaryrefslogtreecommitdiff
path: root/plugin/kubernetes/setup.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/kubernetes/setup.go')
-rw-r--r--plugin/kubernetes/setup.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/plugin/kubernetes/setup.go b/plugin/kubernetes/setup.go
index fe3cc2a0a..c38626e9b 100644
--- a/plugin/kubernetes/setup.go
+++ b/plugin/kubernetes/setup.go
@@ -234,6 +234,18 @@ func ParseStanza(c *caddy.Controller) (*Kubernetes, error) {
continue
}
return nil, c.ArgErr()
+ case "namespace_labels":
+ args := c.RemainingArgs()
+ if len(args) > 0 {
+ namespaceLabelSelectorString := strings.Join(args, " ")
+ nls, err := meta.ParseToLabelSelector(namespaceLabelSelectorString)
+ if err != nil {
+ return nil, fmt.Errorf("unable to parse namespace_label selector value: '%v': %v", namespaceLabelSelectorString, err)
+ }
+ k8s.opts.namespaceLabelSelector = nls
+ continue
+ }
+ return nil, c.ArgErr()
case "fallthrough":
k8s.Fall.SetZonesFromArgs(c.RemainingArgs())
case "upstream":
@@ -293,6 +305,10 @@ func ParseStanza(c *caddy.Controller) (*Kubernetes, error) {
}
}
+ if len(k8s.Namespaces) != 0 && k8s.opts.namespaceLabelSelector != nil {
+ return nil, c.Errf("namespaces and namespace_labels cannot both be set")
+ }
+
return k8s, nil
}