code: func (g *Cloud) ListRoutes(ctx context.Context, clusterName string) ([]*cloudprovider.Route, error) {
  	ctx, cancel := cloud.ContextWithCallTimeout()
  	defer cancel()
  
  	mc := newRoutesMetricContext("list")
  	prefix := truncateClusterName(clusterName)
  	f := filter.Regexp("name", prefix+"-.*").AndRegexp("network", g.NetworkURL()).AndRegexp("description", k8sNodeRouteTag)
  	routes, err := g.c.Routes().List(ctx, f)
  	if err != nil {
  		return nil, mc.Observe(err)
  	}
  	var croutes []*cloudprovider.Route
  	for _, r := range routes {
  		target := path.Base(r.NextHopInstance)
  		// TODO: Should we lastComponent(target) this?
  		targetNodeName := types.NodeName(target) // NodeName == Instance Name on GCE
  		croutes = append(croutes, &cloudprovider.Route{
  			Name:            r.Name,
  			TargetNode:      targetNodeName,
  			DestinationCIDR: r.DestRange,
  		})
  	}
  	return croutes, mc.Observe(nil)
  }
docs: // ListRoutes in the cloud environment.