diff options
Diffstat (limited to 'pkgs/servers/dns/coredns/pull-278.patch')
-rw-r--r-- | pkgs/servers/dns/coredns/pull-278.patch | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/pkgs/servers/dns/coredns/pull-278.patch b/pkgs/servers/dns/coredns/pull-278.patch new file mode 100644 index 000000000000..1323f898c785 --- /dev/null +++ b/pkgs/servers/dns/coredns/pull-278.patch @@ -0,0 +1,153 @@ +From 1158d4cb3a3cd43f1d0a72bd35c6dea9b1de345e Mon Sep 17 00:00:00 2001 +From: Manuel de Brito Fontes <aledbf@gmail.com> +Date: Wed, 21 Sep 2016 14:16:52 -0300 +Subject: [PATCH] Fix k8s build + +--- + contrib/kubernetes/testscripts/00_run_k8s.sh | 2 +- + contrib/kubernetes/testscripts/10_setup_kubectl.sh | 2 +- + middleware/kubernetes/controller.go | 38 ++++++++-------------- + middleware/kubernetes/kubernetes.go | 9 +++-- + 4 files changed, 20 insertions(+), 31 deletions(-) + +diff --git a/contrib/kubernetes/testscripts/00_run_k8s.sh b/contrib/kubernetes/testscripts/00_run_k8s.sh +index ef98a8e..7ff6811 100755 +--- a/contrib/kubernetes/testscripts/00_run_k8s.sh ++++ b/contrib/kubernetes/testscripts/00_run_k8s.sh +@@ -5,7 +5,7 @@ set -e + # Based on instructions at: http://kubernetes.io/docs/getting-started-guides/docker/ + + #K8S_VERSION=$(curl -sS https://storage.googleapis.com/kubernetes-release/release/latest.txt) +-K8S_VERSION="v1.2.4" ++K8S_VERSION="v1.3.7" + + ARCH="amd64" + +diff --git a/contrib/kubernetes/testscripts/10_setup_kubectl.sh b/contrib/kubernetes/testscripts/10_setup_kubectl.sh +index 1778671..a7cfc1e 100755 +--- a/contrib/kubernetes/testscripts/10_setup_kubectl.sh ++++ b/contrib/kubernetes/testscripts/10_setup_kubectl.sh +@@ -10,7 +10,7 @@ cd ${BASEDIR} + echo "Setting up kubectl..." + + if [ ! -e kubectl ]; then +- curl -O http://storage.googleapis.com/kubernetes-release/release/v1.2.4/bin/linux/amd64/kubectl ++ curl -O http://storage.googleapis.com/kubernetes-release/release/v1.3.7/bin/linux/amd64/kubectl + chmod u+x kubectl + fi + +diff --git a/middleware/kubernetes/controller.go b/middleware/kubernetes/controller.go +index 126d415..c7f9e9e 100644 +--- a/middleware/kubernetes/controller.go ++++ b/middleware/kubernetes/controller.go +@@ -55,12 +55,15 @@ func newdnsController(kubeClient *client.Client, resyncPeriod time.Duration, lse + }, + &api.Endpoints{}, resyncPeriod, cache.ResourceEventHandlerFuncs{}) + +- dns.svcLister.Store, dns.svcController = cache.NewInformer( ++ dns.svcLister.Indexer, dns.svcController = cache.NewIndexerInformer( + &cache.ListWatch{ + ListFunc: serviceListFunc(dns.client, namespace, dns.selector), + WatchFunc: serviceWatchFunc(dns.client, namespace, dns.selector), + }, +- &api.Service{}, resyncPeriod, cache.ResourceEventHandlerFuncs{}) ++ &api.Service{}, ++ resyncPeriod, ++ cache.ResourceEventHandlerFuncs{}, ++ cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) + + dns.nsLister.Store, dns.nsController = cache.NewInformer( + &cache.ListWatch{ +@@ -163,47 +166,34 @@ func (dns *dnsController) GetNamespaceList() *api.NamespaceList { + return &nsList + } + +-func (dns *dnsController) GetServiceList() *api.ServiceList { +- svcList, err := dns.svcLister.List() ++func (dns *dnsController) GetServiceList() []*api.Service { ++ svcs, err := dns.svcLister.List(labels.Everything()) + if err != nil { +- return &api.ServiceList{} ++ return []*api.Service{} + } +- +- return &svcList ++ return svcs + } + + // GetServicesByNamespace returns a map of + // namespacename :: [ kubernetesService ] + func (dns *dnsController) GetServicesByNamespace() map[string][]api.Service { + k8sServiceList := dns.GetServiceList() +- if k8sServiceList == nil { +- return nil +- } +- +- items := make(map[string][]api.Service, len(k8sServiceList.Items)) +- for _, i := range k8sServiceList.Items { ++ items := make(map[string][]api.Service, len(k8sServiceList)) ++ for _, i := range k8sServiceList { + namespace := i.Namespace +- items[namespace] = append(items[namespace], i) ++ items[namespace] = append(items[namespace], *i) + } +- + return items + } + + // GetServiceInNamespace returns the Service that matches + // servicename in the namespace + func (dns *dnsController) GetServiceInNamespace(namespace string, servicename string) *api.Service { +- svcKey := fmt.Sprintf("%v/%v", namespace, servicename) +- svcObj, svcExists, err := dns.svcLister.Store.GetByKey(svcKey) +- ++ svcObj, err := dns.svcLister.Services(namespace).Get(servicename) + if err != nil { + // TODO(...): should return err here + return nil + } + +- if !svcExists { +- // TODO(...): should return err here +- return nil +- } +- +- return svcObj.(*api.Service) ++ return svcObj + } +diff --git a/middleware/kubernetes/kubernetes.go b/middleware/kubernetes/kubernetes.go +index 0bd1dc7..eddc58b 100644 +--- a/middleware/kubernetes/kubernetes.go ++++ b/middleware/kubernetes/kubernetes.go +@@ -183,14 +183,14 @@ func (k *Kubernetes) Get(namespace string, nsWildcard bool, servicename string, + + var resultItems []api.Service + +- for _, item := range serviceList.Items { ++ for _, item := range serviceList { + if symbolMatches(namespace, item.Namespace, nsWildcard) && symbolMatches(servicename, item.Name, serviceWildcard) { + // If namespace has a wildcard, filter results against Corefile namespace list. + // (Namespaces without a wildcard were filtered before the call to this function.) + if nsWildcard && (len(k.Namespaces) > 0) && (!util.StringInSlice(item.Namespace, k.Namespaces)) { + continue + } +- resultItems = append(resultItems, item) ++ resultItems = append(resultItems, *item) + } + } + +@@ -216,12 +216,11 @@ func isKubernetesNameError(err error) bool { + } + + func (k *Kubernetes) getServiceRecordForIP(ip, name string) []msg.Service { +- svcList, err := k.APIConn.svcLister.List() ++ svcList, err := k.APIConn.svcLister.List(labels.Everything()) + if err != nil { + return nil + } +- +- for _, service := range svcList.Items { ++ for _, service := range svcList { + if service.Spec.ClusterIP == ip { + return []msg.Service{msg.Service{Host: ip}} + } |