diff options
author | 2016-08-12 20:44:08 -0700 | |
---|---|---|
committer | 2016-08-12 20:44:08 -0700 | |
commit | ad2838b916e9177d4a4580a6a32f0506e722e1fa (patch) | |
tree | e4510d84a1da36a91418aabf012529af9af14d3c /core/setup/kubernetes.go | |
parent | 3b7b9b49d5d4a94dcb924b90595bbfd976f0d87c (diff) | |
download | coredns-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.go | 15 |
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 |