mirror of https://github.com/grpc/grpc-go.git
xds/clusterresolver: set ClusterName for DNS child (#5119)
This commit is contained in:
parent
9353ae3bb4
commit
b49c0c99e4
|
@ -328,6 +328,7 @@ func (b *cdsBalancer) handleWatchUpdate(update clusterHandlerUpdate) {
|
|||
case xdsresource.ClusterTypeLogicalDNS:
|
||||
dms[i] = clusterresolver.DiscoveryMechanism{
|
||||
Type: clusterresolver.DiscoveryMechanismTypeLogicalDNS,
|
||||
Cluster: cu.ClusterName,
|
||||
DNSHostname: cu.DNSHostName,
|
||||
}
|
||||
default:
|
||||
|
|
|
@ -43,6 +43,7 @@ const (
|
|||
defaultTestShortTimeout = 10 * time.Millisecond
|
||||
testEDSServcie = "test-eds-service-name"
|
||||
testClusterName = "test-cluster-name"
|
||||
testClusterName2 = "google_cfe_some-name"
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
|
@ -135,7 +135,7 @@ func buildPriorityConfig(priorities []priorityConfig, xdsLBPolicy *internalservi
|
|||
}
|
||||
retAddrs = append(retAddrs, addrs...)
|
||||
case DiscoveryMechanismTypeLogicalDNS:
|
||||
name, config, addrs := buildClusterImplConfigForDNS(i, p.addresses)
|
||||
name, config, addrs := buildClusterImplConfigForDNS(i, p.addresses, p.mechanism)
|
||||
retConfig.Priorities = append(retConfig.Priorities, name)
|
||||
retConfig.Children[name] = &priority.Child{
|
||||
Config: &internalserviceconfig.BalancerConfig{Name: clusterimpl.Name, Config: config},
|
||||
|
@ -149,7 +149,7 @@ func buildPriorityConfig(priorities []priorityConfig, xdsLBPolicy *internalservi
|
|||
return retConfig, retAddrs, nil
|
||||
}
|
||||
|
||||
func buildClusterImplConfigForDNS(parentPriority int, addrStrs []string) (string, *clusterimpl.LBConfig, []resolver.Address) {
|
||||
func buildClusterImplConfigForDNS(parentPriority int, addrStrs []string, mechanism DiscoveryMechanism) (string, *clusterimpl.LBConfig, []resolver.Address) {
|
||||
// Endpoint picking policy for DNS is hardcoded to pick_first.
|
||||
const childPolicy = "pick_first"
|
||||
retAddrs := make([]resolver.Address, 0, len(addrStrs))
|
||||
|
@ -157,7 +157,10 @@ func buildClusterImplConfigForDNS(parentPriority int, addrStrs []string) (string
|
|||
for _, addrStr := range addrStrs {
|
||||
retAddrs = append(retAddrs, hierarchy.Set(resolver.Address{Addr: addrStr}, []string{pName}))
|
||||
}
|
||||
return pName, &clusterimpl.LBConfig{ChildPolicy: &internalserviceconfig.BalancerConfig{Name: childPolicy}}, retAddrs
|
||||
return pName, &clusterimpl.LBConfig{
|
||||
Cluster: mechanism.Cluster,
|
||||
ChildPolicy: &internalserviceconfig.BalancerConfig{Name: childPolicy},
|
||||
}, retAddrs
|
||||
}
|
||||
|
||||
// buildClusterImplConfigForEDS returns a list of cluster_impl configs, one for
|
||||
|
|
|
@ -199,7 +199,8 @@ func TestBuildPriorityConfig(t *testing.T) {
|
|||
},
|
||||
{
|
||||
mechanism: DiscoveryMechanism{
|
||||
Type: DiscoveryMechanismTypeLogicalDNS,
|
||||
Cluster: testClusterName2,
|
||||
Type: DiscoveryMechanismTypeLogicalDNS,
|
||||
},
|
||||
addresses: testAddressStrs[4],
|
||||
},
|
||||
|
@ -277,6 +278,7 @@ func TestBuildPriorityConfig(t *testing.T) {
|
|||
Config: &internalserviceconfig.BalancerConfig{
|
||||
Name: clusterimpl.Name,
|
||||
Config: &clusterimpl.LBConfig{
|
||||
Cluster: testClusterName2,
|
||||
ChildPolicy: &internalserviceconfig.BalancerConfig{Name: "pick_first"},
|
||||
},
|
||||
},
|
||||
|
@ -307,9 +309,10 @@ func TestBuildPriorityConfig(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestBuildClusterImplConfigForDNS(t *testing.T) {
|
||||
gotName, gotConfig, gotAddrs := buildClusterImplConfigForDNS(3, testAddressStrs[0])
|
||||
gotName, gotConfig, gotAddrs := buildClusterImplConfigForDNS(3, testAddressStrs[0], DiscoveryMechanism{Cluster: testClusterName2, Type: DiscoveryMechanismTypeLogicalDNS})
|
||||
wantName := "priority-3"
|
||||
wantConfig := &clusterimpl.LBConfig{
|
||||
Cluster: testClusterName2,
|
||||
ChildPolicy: &internalserviceconfig.BalancerConfig{
|
||||
Name: "pick_first",
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue