From 0b1d5488796f07b03b9ae9c60ef488d84fabe0ad Mon Sep 17 00:00:00 2001 From: Shyam Jeedigunta Date: Thu, 17 Aug 2017 20:13:34 +0200 Subject: [PATCH] Make route-controller list only relevant routes instead of all of them --- pkg/cloudprovider/providers/gce/gce_routes.go | 20 ++++++------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/pkg/cloudprovider/providers/gce/gce_routes.go b/pkg/cloudprovider/providers/gce/gce_routes.go index c5d3a37c245..1e0d82661b5 100644 --- a/pkg/cloudprovider/providers/gce/gce_routes.go +++ b/pkg/cloudprovider/providers/gce/gce_routes.go @@ -20,7 +20,6 @@ import ( "fmt" "net/http" "path" - "strings" "time" "k8s.io/apimachinery/pkg/types" @@ -46,7 +45,12 @@ func (gce *GCECloud) ListRoutes(clusterName string) ([]*cloudprovider.Route, err listCall := gce.service.Routes.List(gce.projectID) prefix := truncateClusterName(clusterName) - listCall = listCall.Filter("name eq " + prefix + "-.*") + // Filter for routes starting with clustername AND belonging to the + // relevant gcp network AND having description = "k8s-node-route". + filter := "(name eq " + prefix + "-.*) " + filter = filter + "(network eq " + gce.networkURL + ") " + filter = filter + "(description eq " + k8sNodeRouteTag + ")" + listCall = listCall.Filter(filter) if pageToken != "" { listCall = listCall.PageToken(pageToken) } @@ -58,18 +62,6 @@ func (gce *GCECloud) ListRoutes(clusterName string) ([]*cloudprovider.Route, err } pageToken = res.NextPageToken for _, r := range res.Items { - if r.Network != gce.networkURL { - continue - } - // Not managed if route description != "k8s-node-route" - if r.Description != k8sNodeRouteTag { - continue - } - // Not managed if route name doesn't start with - if !strings.HasPrefix(r.Name, prefix) { - continue - } - target := path.Base(r.NextHopInstance) // TODO: Should we lastComponent(target) this? targetNodeName := types.NodeName(target) // NodeName == Instance Name on GCE