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
}