aboutsummaryrefslogtreecommitdiff
path: root/core/setup/kubernetes.go
diff options
context:
space:
mode:
authorGravatar Michael Richmond <mrichmon@users.noreply.github.com> 2016-08-12 20:44:08 -0700
committerGravatar GitHub <noreply@github.com> 2016-08-12 20:44:08 -0700
commitad2838b916e9177d4a4580a6a32f0506e722e1fa (patch)
treee4510d84a1da36a91418aabf012529af9af14d3c /core/setup/kubernetes.go
parent3b7b9b49d5d4a94dcb924b90595bbfd976f0d87c (diff)
downloadcoredns-ad2838b916e9177d4a4580a6a32f0506e722e1fa.tar.gz
coredns-ad2838b916e9177d4a4580a6a32f0506e722e1fa.tar.zst
coredns-ad2838b916e9177d4a4580a6a32f0506e722e1fa.zip
Adding label selector support to Corefile (#208)
* Adding parsing for label selector to Corefile * Updating comment typo in k8sCorefile * Adding implementation of label support to filter exposed objects * Updating TODO list
Diffstat (limited to 'core/setup/kubernetes.go')
-rw-r--r--core/setup/kubernetes.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/core/setup/kubernetes.go b/core/setup/kubernetes.go
index 17b37e00e..7439a9f1b 100644
--- a/core/setup/kubernetes.go
+++ b/core/setup/kubernetes.go
@@ -10,6 +10,7 @@ import (
"github.com/miekg/coredns/middleware"
"github.com/miekg/coredns/middleware/kubernetes"
"github.com/miekg/coredns/middleware/kubernetes/nametemplate"
+ unversionedapi "k8s.io/kubernetes/pkg/api/unversioned"
)
const (
@@ -109,6 +110,20 @@ func kubernetesParse(c *Controller) (kubernetes.Kubernetes, error) {
log.Printf("[debug] 'resyncperiod' keyword provided without any duration value.")
return kubernetes.Kubernetes{}, c.ArgErr()
}
+ case "labels":
+ args := c.RemainingArgs()
+ if len(args) != 0 {
+ labelSelectorString := strings.Join(args, " ")
+ k8s.LabelSelector, err = unversionedapi.ParseToLabelSelector(labelSelectorString)
+ if err != nil {
+ err = errors.New(fmt.Sprintf("Unable to parse label selector. Value provided was '%v'. Error was: %v", labelSelectorString, err))
+ log.Printf("[ERROR] %v", err)
+ return kubernetes.Kubernetes{}, err
+ }
+ } else {
+ log.Printf("[debug] 'labels' keyword provided without any selector value.")
+ return kubernetes.Kubernetes{}, c.ArgErr()
+ }
}
}
return k8s, nil