From 2e177ef9b28dab0b6eccc5d673d6ab32fdeddf46 Mon Sep 17 00:00:00 2001 From: Fabian Ruff Date: Wed, 22 Nov 2017 23:44:07 +0100 Subject: [PATCH 1/2] return routes for unknown next hops --- pkg/cloudprovider/providers/openstack/openstack_routes.go | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/pkg/cloudprovider/providers/openstack/openstack_routes.go b/pkg/cloudprovider/providers/openstack/openstack_routes.go index c5f0974dad..a73001b008 100644 --- a/pkg/cloudprovider/providers/openstack/openstack_routes.go +++ b/pkg/cloudprovider/providers/openstack/openstack_routes.go @@ -77,15 +77,9 @@ func (r *Routes) ListRoutes(clusterName string) ([]*cloudprovider.Route, error) var routes []*cloudprovider.Route for _, item := range router.Routes { - nodeName, ok := nodeNamesByAddr[item.NextHop] - if !ok { - // Not one of our routes? - glog.V(4).Infof("Skipping route with unknown nexthop %v", item.NextHop) - continue - } route := cloudprovider.Route{ Name: item.DestinationCIDR, - TargetNode: nodeName, + TargetNode: nodeNamesByAddr[item.NextHop], //empty if NextHop is unknown DestinationCIDR: item.DestinationCIDR, } routes = append(routes, &route) From 51a367f8061f638354023474e7d31eb34dc99ac7 Mon Sep 17 00:00:00 2001 From: Fabian Ruff Date: Wed, 29 Nov 2017 16:24:00 +0100 Subject: [PATCH 2/2] relax server list option, set Blackhole field --- pkg/cloudprovider/providers/openstack/openstack_routes.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/cloudprovider/providers/openstack/openstack_routes.go b/pkg/cloudprovider/providers/openstack/openstack_routes.go index a73001b008..7b2796799c 100644 --- a/pkg/cloudprovider/providers/openstack/openstack_routes.go +++ b/pkg/cloudprovider/providers/openstack/openstack_routes.go @@ -53,7 +53,7 @@ func (r *Routes) ListRoutes(clusterName string) ([]*cloudprovider.Route, error) glog.V(4).Infof("ListRoutes(%v)", clusterName) nodeNamesByAddr := make(map[string]types.NodeName) - err := foreachServer(r.compute, servers.ListOpts{Status: "ACTIVE"}, func(srv *servers.Server) (bool, error) { + err := foreachServer(r.compute, servers.ListOpts{}, func(srv *servers.Server) (bool, error) { addrs, err := nodeAddresses(srv) if err != nil { return false, err @@ -77,9 +77,11 @@ func (r *Routes) ListRoutes(clusterName string) ([]*cloudprovider.Route, error) var routes []*cloudprovider.Route for _, item := range router.Routes { + nodeName, foundNode := nodeNamesByAddr[item.NextHop] route := cloudprovider.Route{ Name: item.DestinationCIDR, - TargetNode: nodeNamesByAddr[item.NextHop], //empty if NextHop is unknown + TargetNode: nodeName, //empty if NextHop is unknown + Blackhole: !foundNode, DestinationCIDR: item.DestinationCIDR, } routes = append(routes, &route)