diff --git a/controllers/gce/controller/controller.go b/controllers/gce/controller/controller.go index 14f705c23..62ace16d1 100644 --- a/controllers/gce/controller/controller.go +++ b/controllers/gce/controller/controller.go @@ -291,7 +291,10 @@ func (lbc *LoadBalancerController) sync(key string) (err error) { } nodePorts := lbc.tr.toNodePorts(&paths) lbNames := lbc.ingLister.Store.ListKeys() - lbs, _ := lbc.ListRuntimeInfo() + lbs, err := lbc.ListRuntimeInfo() + if err != nil { + return err + } nodeNames, err := lbc.getReadyNodeNames() if err != nil { return err @@ -404,14 +407,17 @@ func (lbc *LoadBalancerController) updateIngressStatus(l7 *loadbalancers.L7, ing // ListRuntimeInfo lists L7RuntimeInfo as understood by the loadbalancer module. func (lbc *LoadBalancerController) ListRuntimeInfo() (lbs []*loadbalancers.L7RuntimeInfo, err error) { - for _, m := range lbc.ingLister.Store.List() { - ing := m.(*extensions.Ingress) - k, err := keyFunc(ing) + ingList, err := lbc.ingLister.List() + if err != nil { + return lbs, err + } + for _, ing := range ingList.Items { + k, err := keyFunc(&ing) if err != nil { glog.Warningf("Cannot get key for Ingress %v/%v: %v", ing.Namespace, ing.Name, err) continue } - tls, err := lbc.tlsLoader.load(ing) + tls, err := lbc.tlsLoader.load(&ing) if err != nil { glog.Warningf("Cannot get certs for Ingress %v/%v: %v", ing.Namespace, ing.Name, err) } diff --git a/controllers/gce/controller/utils.go b/controllers/gce/controller/utils.go index 298c17978..24dc97137 100644 --- a/controllers/gce/controller/utils.go +++ b/controllers/gce/controller/utils.go @@ -188,7 +188,10 @@ type StoreToIngressLister struct { // List lists all Ingress' in the store. func (s *StoreToIngressLister) List() (ing extensions.IngressList, err error) { for _, m := range s.Store.List() { - ing.Items = append(ing.Items, *(m.(*extensions.Ingress))) + newIng := m.(*extensions.Ingress) + if isGCEIngress(newIng) { + ing.Items = append(ing.Items, *newIng) + } } return ing, nil }