code: func (c *Cloud) ListRoutes(ctx context.Context, clusterName string) ([]*cloudprovider.Route, error) {
  	table, err := c.findRouteTable(clusterName)
  	if err != nil {
  		return nil, err
  	}
  
  	var routes []*cloudprovider.Route
  	var instanceIDs []*string
  
  	for _, r := range table.Routes {
  		instanceID := aws.StringValue(r.InstanceId)
  
  		if instanceID == "" {
  			continue
  		}
  
  		instanceIDs = append(instanceIDs, &instanceID)
  	}
  
  	instances, err := c.getInstancesByIDs(instanceIDs)
  	if err != nil {
  		return nil, err
  	}
  
  	for _, r := range table.Routes {
  		destinationCIDR := aws.StringValue(r.DestinationCidrBlock)
  		if destinationCIDR == "" {
  			continue
  		}
  
  		route := &cloudprovider.Route{
  			Name:            clusterName + "-" + destinationCIDR,
  			DestinationCIDR: destinationCIDR,
  		}
  
  		// Capture blackhole routes
  		if aws.StringValue(r.State) == ec2.RouteStateBlackhole {
  			route.Blackhole = true
  			routes = append(routes, route)
  			continue
  		}
  
  		// Capture instance routes
  		instanceID := aws.StringValue(r.InstanceId)
  		if instanceID != "" {
  			instance, found := instances[instanceID]
  			if found {
  				route.TargetNode = mapInstanceToNodeName(instance)
  				routes = append(routes, route)
  			} else {
  				klog.Warningf("unable to find instance ID %s in the list of instances being routed to", instanceID)
  			}
  		}
  	}
  
  	return routes, nil
  }
docs: // ListRoutes implements Routes.ListRoutes
  // List all routes that match the filter