func CreateRouteConfigurationForEnvoyGRPCListener()

in grpc-xds/control-plane-go/pkg/xds/rds/route_envoy.go [27:59]


func CreateRouteConfigurationForEnvoyGRPCListener(clusterNames []string) (*routev3.RouteConfiguration, error) {
	var virtualHosts []*routev3.VirtualHost
	for _, clusterName := range clusterNames {
		if strings.HasPrefix(clusterName, "xdstp://") {
			continue // skip clusters added for xDS federation
		}
		virtualHosts = append(virtualHosts, &routev3.VirtualHost{
			Name:    clusterName,
			Domains: []string{clusterName, clusterName + ".example.com", clusterName + ".xds.example.com"},
			Routes: []*routev3.Route{
				{
					Match: &routev3.RouteMatch{
						PathSpecifier: &routev3.RouteMatch_Prefix{
							Prefix: "",
						},
					},
					Action: &routev3.Route_Route{
						Route: &routev3.RouteAction{
							ClusterSpecifier: &routev3.RouteAction_Cluster{
								Cluster: clusterName,
							},
						},
					},
				},
			},
		})
	}
	routeConfiguration := routev3.RouteConfiguration{
		Name:         lds.EnvoyGRPCListenerRouteConfigurationName,
		VirtualHosts: virtualHosts,
	}
	return &routeConfiguration, nil
}