mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-30 17:53:21 -04:00 
			
		
		
		
	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:
		| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user