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
This commit is contained in:
parent
3b7b9b49d5
commit
ad2838b916
6 changed files with 194 additions and 47 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue