mirror of https://github.com/grpc/grpc-go.git
xds/internal/xdsclient: Emit unknown for CSM Labels if not present in CDS (#7309)
This commit is contained in:
parent
e40eb2e2c1
commit
e2e7a51601
|
|
@ -33,6 +33,7 @@ import (
|
|||
"google.golang.org/grpc/internal/testutils/xds/e2e"
|
||||
"google.golang.org/grpc/serviceconfig"
|
||||
"google.golang.org/grpc/status"
|
||||
"google.golang.org/grpc/xds/internal"
|
||||
"google.golang.org/grpc/xds/internal/balancer/clusterresolver"
|
||||
|
||||
v3clusterpb "github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3"
|
||||
|
|
@ -85,6 +86,7 @@ func (s) TestAggregateClusterSuccess_LeafNode(t *testing.T) {
|
|||
Type: clusterresolver.DiscoveryMechanismTypeEDS,
|
||||
EDSServiceName: serviceName,
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
}},
|
||||
XDSLBPolicy: json.RawMessage(`[{"xds_wrr_locality_experimental": {"childPolicy": [{"round_robin": {}}]}}]`),
|
||||
},
|
||||
|
|
@ -94,6 +96,7 @@ func (s) TestAggregateClusterSuccess_LeafNode(t *testing.T) {
|
|||
Type: clusterresolver.DiscoveryMechanismTypeEDS,
|
||||
EDSServiceName: serviceName + "-new",
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
}},
|
||||
XDSLBPolicy: json.RawMessage(`[{"xds_wrr_locality_experimental": {"childPolicy": [{"round_robin": {}}]}}]`),
|
||||
},
|
||||
|
|
@ -108,6 +111,7 @@ func (s) TestAggregateClusterSuccess_LeafNode(t *testing.T) {
|
|||
Type: clusterresolver.DiscoveryMechanismTypeLogicalDNS,
|
||||
DNSHostname: "dns_host:8080",
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
}},
|
||||
XDSLBPolicy: json.RawMessage(`[{"xds_wrr_locality_experimental": {"childPolicy": [{"round_robin": {}}]}}]`),
|
||||
},
|
||||
|
|
@ -117,6 +121,7 @@ func (s) TestAggregateClusterSuccess_LeafNode(t *testing.T) {
|
|||
Type: clusterresolver.DiscoveryMechanismTypeLogicalDNS,
|
||||
DNSHostname: "dns_host_new:8080",
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
}},
|
||||
XDSLBPolicy: json.RawMessage(`[{"xds_wrr_locality_experimental": {"childPolicy": [{"round_robin": {}}]}}]`),
|
||||
},
|
||||
|
|
@ -211,12 +216,14 @@ func (s) TestAggregateClusterSuccess_ThenUpdateChildClusters(t *testing.T) {
|
|||
Type: clusterresolver.DiscoveryMechanismTypeEDS,
|
||||
EDSServiceName: serviceName,
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
{
|
||||
Cluster: dnsClusterName,
|
||||
Type: clusterresolver.DiscoveryMechanismTypeLogicalDNS,
|
||||
DNSHostname: fmt.Sprintf("%s:%d", dnsHostName, dnsPort),
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
},
|
||||
XDSLBPolicy: json.RawMessage(`[{"xds_wrr_locality_experimental": {"childPolicy": [{"round_robin": {}}]}}]`),
|
||||
|
|
@ -247,12 +254,14 @@ func (s) TestAggregateClusterSuccess_ThenUpdateChildClusters(t *testing.T) {
|
|||
Type: clusterresolver.DiscoveryMechanismTypeEDS,
|
||||
EDSServiceName: serviceName,
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
{
|
||||
Cluster: dnsClusterNameNew,
|
||||
Type: clusterresolver.DiscoveryMechanismTypeLogicalDNS,
|
||||
DNSHostname: fmt.Sprintf("%s:%d", dnsHostNameNew, dnsPort),
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
},
|
||||
XDSLBPolicy: json.RawMessage(`[{"xds_wrr_locality_experimental": {"childPolicy": [{"round_robin": {}}]}}]`),
|
||||
|
|
@ -298,12 +307,14 @@ func (s) TestAggregateClusterSuccess_ThenChangeRootToEDS(t *testing.T) {
|
|||
Type: clusterresolver.DiscoveryMechanismTypeEDS,
|
||||
EDSServiceName: serviceName,
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
{
|
||||
Cluster: dnsClusterName,
|
||||
Type: clusterresolver.DiscoveryMechanismTypeLogicalDNS,
|
||||
DNSHostname: fmt.Sprintf("%s:%d", dnsHostName, dnsPort),
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
},
|
||||
XDSLBPolicy: json.RawMessage(`[{"xds_wrr_locality_experimental": {"childPolicy": [{"round_robin": {}}]}}]`),
|
||||
|
|
@ -329,6 +340,7 @@ func (s) TestAggregateClusterSuccess_ThenChangeRootToEDS(t *testing.T) {
|
|||
Type: clusterresolver.DiscoveryMechanismTypeEDS,
|
||||
EDSServiceName: serviceName,
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
}},
|
||||
XDSLBPolicy: json.RawMessage(`[{"xds_wrr_locality_experimental": {"childPolicy": [{"round_robin": {}}]}}]`),
|
||||
}
|
||||
|
|
@ -363,6 +375,7 @@ func (s) TestAggregatedClusterSuccess_SwitchBetweenLeafAndAggregate(t *testing.T
|
|||
Type: clusterresolver.DiscoveryMechanismTypeEDS,
|
||||
EDSServiceName: serviceName,
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
}},
|
||||
XDSLBPolicy: json.RawMessage(`[{"xds_wrr_locality_experimental": {"childPolicy": [{"round_robin": {}}]}}]`),
|
||||
}
|
||||
|
|
@ -391,12 +404,14 @@ func (s) TestAggregatedClusterSuccess_SwitchBetweenLeafAndAggregate(t *testing.T
|
|||
Type: clusterresolver.DiscoveryMechanismTypeEDS,
|
||||
EDSServiceName: serviceName,
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
{
|
||||
Cluster: dnsClusterName,
|
||||
Type: clusterresolver.DiscoveryMechanismTypeLogicalDNS,
|
||||
DNSHostname: fmt.Sprintf("%s:%d", dnsHostName, dnsPort),
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
},
|
||||
XDSLBPolicy: json.RawMessage(`[{"xds_wrr_locality_experimental": {"childPolicy": [{"round_robin": {}}]}}]`),
|
||||
|
|
@ -420,6 +435,7 @@ func (s) TestAggregatedClusterSuccess_SwitchBetweenLeafAndAggregate(t *testing.T
|
|||
Type: clusterresolver.DiscoveryMechanismTypeEDS,
|
||||
EDSServiceName: serviceName,
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
}},
|
||||
XDSLBPolicy: json.RawMessage(`[{"xds_wrr_locality_experimental": {"childPolicy": [{"round_robin": {}}]}}]`),
|
||||
}
|
||||
|
|
@ -572,6 +588,7 @@ func (s) TestAggregatedClusterSuccess_DiamondDependency(t *testing.T) {
|
|||
Type: clusterresolver.DiscoveryMechanismTypeEDS,
|
||||
EDSServiceName: serviceName,
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
}},
|
||||
XDSLBPolicy: json.RawMessage(`[{"xds_wrr_locality_experimental": {"childPolicy": [{"round_robin": {}}]}}]`),
|
||||
}
|
||||
|
|
@ -639,12 +656,14 @@ func (s) TestAggregatedClusterSuccess_IgnoreDups(t *testing.T) {
|
|||
Type: clusterresolver.DiscoveryMechanismTypeEDS,
|
||||
EDSServiceName: serviceName,
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
{
|
||||
Cluster: clusterNameD,
|
||||
Type: clusterresolver.DiscoveryMechanismTypeEDS,
|
||||
EDSServiceName: serviceName,
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
},
|
||||
XDSLBPolicy: json.RawMessage(`[{"xds_wrr_locality_experimental": {"childPolicy": [{"round_robin": {}}]}}]`),
|
||||
|
|
@ -727,6 +746,7 @@ func (s) TestAggregatedCluster_NodeChildOfItself(t *testing.T) {
|
|||
Type: clusterresolver.DiscoveryMechanismTypeEDS,
|
||||
EDSServiceName: serviceName,
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
}},
|
||||
XDSLBPolicy: json.RawMessage(`[{"xds_wrr_locality_experimental": {"childPolicy": [{"round_robin": {}}]}}]`),
|
||||
}
|
||||
|
|
@ -832,6 +852,7 @@ func (s) TestAggregatedCluster_CycleWithLeafNode(t *testing.T) {
|
|||
Type: clusterresolver.DiscoveryMechanismTypeEDS,
|
||||
EDSServiceName: serviceName,
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
}},
|
||||
XDSLBPolicy: json.RawMessage(`[{"xds_wrr_locality_experimental": {"childPolicy": [{"round_robin": {}}]}}]`),
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ import (
|
|||
"google.golang.org/grpc/resolver/manual"
|
||||
"google.golang.org/grpc/serviceconfig"
|
||||
"google.golang.org/grpc/status"
|
||||
xdsinternal "google.golang.org/grpc/xds/internal"
|
||||
"google.golang.org/grpc/xds/internal/balancer/clusterresolver"
|
||||
"google.golang.org/grpc/xds/internal/xdsclient"
|
||||
"google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
|
||||
|
|
@ -456,6 +457,7 @@ func (s) TestClusterUpdate_Success(t *testing.T) {
|
|||
EDSServiceName: serviceName,
|
||||
MaxConcurrentRequests: newUint32(512),
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: xdsinternal.UnknownCSMLabels,
|
||||
}},
|
||||
XDSLBPolicy: json.RawMessage(`[{"xds_wrr_locality_experimental": {"childPolicy": [{"round_robin": {}}]}}]`),
|
||||
},
|
||||
|
|
@ -483,6 +485,7 @@ func (s) TestClusterUpdate_Success(t *testing.T) {
|
|||
Type: clusterresolver.DiscoveryMechanismTypeEDS,
|
||||
EDSServiceName: serviceName,
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: xdsinternal.UnknownCSMLabels,
|
||||
}},
|
||||
XDSLBPolicy: json.RawMessage(`[{"ring_hash_experimental": {"minRingSize":100, "maxRingSize":1000}}]`),
|
||||
},
|
||||
|
|
@ -505,6 +508,7 @@ func (s) TestClusterUpdate_Success(t *testing.T) {
|
|||
Type: clusterresolver.DiscoveryMechanismTypeEDS,
|
||||
EDSServiceName: serviceName,
|
||||
OutlierDetection: json.RawMessage(`{"successRateEjection":{}}`),
|
||||
TelemetryLabels: xdsinternal.UnknownCSMLabels,
|
||||
}},
|
||||
XDSLBPolicy: json.RawMessage(`[{"ring_hash_experimental": {"minRingSize":1024, "maxRingSize":8388608}}]`),
|
||||
},
|
||||
|
|
@ -557,6 +561,7 @@ func (s) TestClusterUpdate_Success(t *testing.T) {
|
|||
"requestVolume": 50
|
||||
}
|
||||
}`),
|
||||
TelemetryLabels: xdsinternal.UnknownCSMLabels,
|
||||
}},
|
||||
XDSLBPolicy: json.RawMessage(`[{"ring_hash_experimental": {"minRingSize":1024, "maxRingSize":8388608}}]`),
|
||||
},
|
||||
|
|
@ -609,6 +614,7 @@ func (s) TestClusterUpdate_SuccessWithLRS(t *testing.T) {
|
|||
EDSServiceName: serviceName,
|
||||
LoadReportingServer: lrsServerCfg,
|
||||
OutlierDetection: json.RawMessage(`{}`),
|
||||
TelemetryLabels: xdsinternal.UnknownCSMLabels,
|
||||
}},
|
||||
XDSLBPolicy: json.RawMessage(`[{"xds_wrr_locality_experimental": {"childPolicy": [{"round_robin": {}}]}}]`),
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ import (
|
|||
"google.golang.org/grpc/resolver/manual"
|
||||
"google.golang.org/grpc/serviceconfig"
|
||||
"google.golang.org/grpc/status"
|
||||
xdsinternal "google.golang.org/grpc/xds/internal"
|
||||
"google.golang.org/grpc/xds/internal/balancer/clusterimpl"
|
||||
"google.golang.org/grpc/xds/internal/balancer/outlierdetection"
|
||||
"google.golang.org/grpc/xds/internal/balancer/priority"
|
||||
|
|
@ -400,8 +401,9 @@ func (s) TestOutlierDetectionConfigPropagationToChildPolicy(t *testing.T) {
|
|||
ChildPolicy: &iserviceconfig.BalancerConfig{
|
||||
Name: clusterimpl.Name,
|
||||
Config: &clusterimpl.LBConfig{
|
||||
Cluster: clusterName,
|
||||
EDSServiceName: edsServiceName,
|
||||
Cluster: clusterName,
|
||||
EDSServiceName: edsServiceName,
|
||||
TelemetryLabels: xdsinternal.UnknownCSMLabels,
|
||||
ChildPolicy: &iserviceconfig.BalancerConfig{
|
||||
Name: wrrlocality.Name,
|
||||
Config: &wrrlocality.LBConfig{
|
||||
|
|
|
|||
|
|
@ -83,3 +83,10 @@ func SetLocalityID(addr resolver.Address, l LocalityID) resolver.Address {
|
|||
|
||||
// ResourceTypeMapForTesting maps TypeUrl to corresponding ResourceType.
|
||||
var ResourceTypeMapForTesting map[string]any
|
||||
|
||||
// UnknownCSMLabels are TelemetryLabels emitted from CDS if CSM Telemetry Label
|
||||
// data is not present in the CDS Resource.
|
||||
var UnknownCSMLabels = map[string]string{
|
||||
"csm.service_name": "unknown",
|
||||
"csm.service_namespace_name": "unknown",
|
||||
}
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ func verifyClusterUpdate(ctx context.Context, updateCh *testutils.Channel, wantU
|
|||
return fmt.Errorf("received update with error type %v, want %v", gotType, wantType)
|
||||
}
|
||||
}
|
||||
cmpOpts := []cmp.Option{cmpopts.EquateEmpty(), cmpopts.IgnoreFields(xdsresource.ClusterUpdate{}, "Raw", "LBPolicy")}
|
||||
cmpOpts := []cmp.Option{cmpopts.EquateEmpty(), cmpopts.IgnoreFields(xdsresource.ClusterUpdate{}, "Raw", "LBPolicy", "TelemetryLabels")}
|
||||
if diff := cmp.Diff(wantUpdate.update, got.update, cmpOpts...); diff != "" {
|
||||
return fmt.Errorf("received unexpected diff in the cluster resource update: (-want, got):\n%s", diff)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -875,7 +875,7 @@ func (s) TestHandleClusterResponseFromManagementServer(t *testing.T) {
|
|||
}
|
||||
cmpOpts := []cmp.Option{
|
||||
cmpopts.EquateEmpty(),
|
||||
cmpopts.IgnoreFields(xdsresource.ClusterUpdate{}, "Raw", "LBPolicy"),
|
||||
cmpopts.IgnoreFields(xdsresource.ClusterUpdate{}, "Raw", "LBPolicy", "TelemetryLabels"),
|
||||
}
|
||||
if diff := cmp.Diff(test.wantUpdate, gotUpdate, cmpOpts...); diff != "" {
|
||||
t.Fatalf("Unexpected diff in metadata, diff (-want +got):\n%s", diff)
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ import (
|
|||
"google.golang.org/grpc/internal/testutils/xds/e2e"
|
||||
"google.golang.org/grpc/internal/xds/bootstrap"
|
||||
"google.golang.org/grpc/serviceconfig"
|
||||
"google.golang.org/grpc/xds/internal"
|
||||
"google.golang.org/grpc/xds/internal/balancer/ringhash"
|
||||
"google.golang.org/grpc/xds/internal/balancer/wrrlocality"
|
||||
"google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
|
||||
|
|
@ -141,9 +142,10 @@ func (s) TestValidateCluster_Success(t *testing.T) {
|
|||
},
|
||||
},
|
||||
wantUpdate: xdsresource.ClusterUpdate{
|
||||
ClusterName: clusterName,
|
||||
ClusterType: xdsresource.ClusterTypeLogicalDNS,
|
||||
DNSHostName: "dns_host:8080",
|
||||
ClusterName: clusterName,
|
||||
ClusterType: xdsresource.ClusterTypeLogicalDNS,
|
||||
DNSHostName: "dns_host:8080",
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
wantLBConfig: &iserviceconfig.BalancerConfig{
|
||||
Name: wrrlocality.Name,
|
||||
|
|
@ -172,6 +174,7 @@ func (s) TestValidateCluster_Success(t *testing.T) {
|
|||
ClusterName: clusterName,
|
||||
ClusterType: xdsresource.ClusterTypeAggregate,
|
||||
PrioritizedClusterNames: []string{"a", "b", "c"},
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
wantLBConfig: &iserviceconfig.BalancerConfig{
|
||||
Name: wrrlocality.Name,
|
||||
|
|
@ -183,9 +186,12 @@ func (s) TestValidateCluster_Success(t *testing.T) {
|
|||
},
|
||||
},
|
||||
{
|
||||
name: "happy-case-no-service-name-no-lrs",
|
||||
cluster: e2e.DefaultCluster(clusterName, "", e2e.SecurityLevelNone),
|
||||
wantUpdate: xdsresource.ClusterUpdate{ClusterName: clusterName},
|
||||
name: "happy-case-no-service-name-no-lrs",
|
||||
cluster: e2e.DefaultCluster(clusterName, "", e2e.SecurityLevelNone),
|
||||
wantUpdate: xdsresource.ClusterUpdate{
|
||||
ClusterName: clusterName,
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
wantLBConfig: &iserviceconfig.BalancerConfig{
|
||||
Name: wrrlocality.Name,
|
||||
Config: &wrrlocality.LBConfig{
|
||||
|
|
@ -199,8 +205,9 @@ func (s) TestValidateCluster_Success(t *testing.T) {
|
|||
name: "happy-case-no-lrs",
|
||||
cluster: e2e.DefaultCluster(clusterName, serviceName, e2e.SecurityLevelNone),
|
||||
wantUpdate: xdsresource.ClusterUpdate{
|
||||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
wantLBConfig: &iserviceconfig.BalancerConfig{
|
||||
Name: wrrlocality.Name,
|
||||
|
|
@ -223,6 +230,7 @@ func (s) TestValidateCluster_Success(t *testing.T) {
|
|||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
LRSServerConfig: serverCfg,
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
wantLBConfig: &iserviceconfig.BalancerConfig{
|
||||
Name: wrrlocality.Name,
|
||||
|
|
@ -261,6 +269,7 @@ func (s) TestValidateCluster_Success(t *testing.T) {
|
|||
EDSServiceName: serviceName,
|
||||
LRSServerConfig: serverCfg,
|
||||
MaxRequests: func() *uint32 { i := uint32(512); return &i }(),
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
wantLBConfig: &iserviceconfig.BalancerConfig{
|
||||
Name: wrrlocality.Name,
|
||||
|
|
@ -279,8 +288,9 @@ func (s) TestValidateCluster_Success(t *testing.T) {
|
|||
return c
|
||||
}(),
|
||||
wantUpdate: xdsresource.ClusterUpdate{
|
||||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
wantLBConfig: &iserviceconfig.BalancerConfig{
|
||||
Name: "ring_hash_experimental",
|
||||
|
|
@ -306,8 +316,9 @@ func (s) TestValidateCluster_Success(t *testing.T) {
|
|||
LbPolicy: v3clusterpb.Cluster_LEAST_REQUEST,
|
||||
},
|
||||
wantUpdate: xdsresource.ClusterUpdate{
|
||||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
wantLBConfig: &iserviceconfig.BalancerConfig{
|
||||
Name: "least_request_experimental",
|
||||
|
|
@ -330,8 +341,9 @@ func (s) TestValidateCluster_Success(t *testing.T) {
|
|||
return c
|
||||
}(),
|
||||
wantUpdate: xdsresource.ClusterUpdate{
|
||||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
wantLBConfig: &iserviceconfig.BalancerConfig{
|
||||
Name: "ring_hash_experimental",
|
||||
|
|
@ -362,8 +374,9 @@ func (s) TestValidateCluster_Success(t *testing.T) {
|
|||
},
|
||||
},
|
||||
wantUpdate: xdsresource.ClusterUpdate{
|
||||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
wantLBConfig: &iserviceconfig.BalancerConfig{
|
||||
Name: "least_request_experimental",
|
||||
|
|
@ -400,8 +413,9 @@ func (s) TestValidateCluster_Success(t *testing.T) {
|
|||
},
|
||||
},
|
||||
wantUpdate: xdsresource.ClusterUpdate{
|
||||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
wantLBConfig: &iserviceconfig.BalancerConfig{
|
||||
Name: "ring_hash_experimental",
|
||||
|
|
@ -435,8 +449,9 @@ func (s) TestValidateCluster_Success(t *testing.T) {
|
|||
},
|
||||
},
|
||||
wantUpdate: xdsresource.ClusterUpdate{
|
||||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
wantLBConfig: &iserviceconfig.BalancerConfig{
|
||||
Name: wrrlocality.Name,
|
||||
|
|
@ -474,8 +489,9 @@ func (s) TestValidateCluster_Success(t *testing.T) {
|
|||
},
|
||||
},
|
||||
wantUpdate: xdsresource.ClusterUpdate{
|
||||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
wantLBConfig: &iserviceconfig.BalancerConfig{
|
||||
Name: wrrlocality.Name,
|
||||
|
|
@ -522,8 +538,9 @@ func (s) TestValidateCluster_Success(t *testing.T) {
|
|||
},
|
||||
},
|
||||
wantUpdate: xdsresource.ClusterUpdate{
|
||||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
ClusterName: clusterName,
|
||||
EDSServiceName: serviceName,
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
wantLBConfig: &iserviceconfig.BalancerConfig{
|
||||
Name: "ring_hash_experimental",
|
||||
|
|
|
|||
|
|
@ -100,6 +100,15 @@ func validateClusterAndConstructClusterUpdate(cluster *v3clusterpb.Cluster, serv
|
|||
}
|
||||
}
|
||||
}
|
||||
// "The values for the service labels csm.service_name and
|
||||
// csm.service_namespace_name come from xDS, “unknown” if not present." -
|
||||
// CSM Design.
|
||||
if _, ok := telemetryLabels["csm.service_name"]; !ok {
|
||||
telemetryLabels["csm.service_name"] = "unknown"
|
||||
}
|
||||
if _, ok := telemetryLabels["csm.service_namespace_name"]; !ok {
|
||||
telemetryLabels["csm.service_namespace_name"] = "unknown"
|
||||
}
|
||||
|
||||
var lbPolicy json.RawMessage
|
||||
var err error
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ import (
|
|||
"google.golang.org/grpc/internal/testutils"
|
||||
"google.golang.org/grpc/internal/xds/bootstrap"
|
||||
"google.golang.org/grpc/internal/xds/matcher"
|
||||
"google.golang.org/grpc/xds/internal"
|
||||
"google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
|
||||
|
||||
v3clusterpb "github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3"
|
||||
|
|
@ -873,6 +874,7 @@ func (s) TestValidateClusterWithSecurityConfig(t *testing.T) {
|
|||
RootInstanceName: rootPluginInstance,
|
||||
RootCertName: rootCertName,
|
||||
},
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -914,6 +916,7 @@ func (s) TestValidateClusterWithSecurityConfig(t *testing.T) {
|
|||
RootInstanceName: rootPluginInstance,
|
||||
RootCertName: rootCertName,
|
||||
},
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -959,6 +962,7 @@ func (s) TestValidateClusterWithSecurityConfig(t *testing.T) {
|
|||
IdentityInstanceName: identityPluginInstance,
|
||||
IdentityCertName: identityCertName,
|
||||
},
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -1006,6 +1010,7 @@ func (s) TestValidateClusterWithSecurityConfig(t *testing.T) {
|
|||
IdentityInstanceName: identityPluginInstance,
|
||||
IdentityCertName: identityCertName,
|
||||
},
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -1072,6 +1077,7 @@ func (s) TestValidateClusterWithSecurityConfig(t *testing.T) {
|
|||
matcher.StringMatcherForTesting(nil, nil, nil, newStringP(sanContains), nil, false),
|
||||
},
|
||||
},
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -1138,6 +1144,7 @@ func (s) TestValidateClusterWithSecurityConfig(t *testing.T) {
|
|||
matcher.StringMatcherForTesting(nil, nil, nil, newStringP(sanContains), nil, false),
|
||||
},
|
||||
},
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
@ -1331,6 +1338,7 @@ func (s) TestUnmarshalCluster(t *testing.T) {
|
|||
EDSServiceName: v3Service,
|
||||
LRSServerConfig: serverCfg,
|
||||
Raw: v3ClusterAny,
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -1343,6 +1351,7 @@ func (s) TestUnmarshalCluster(t *testing.T) {
|
|||
EDSServiceName: v3Service,
|
||||
LRSServerConfig: serverCfg,
|
||||
Raw: v3ClusterAny,
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -1355,6 +1364,7 @@ func (s) TestUnmarshalCluster(t *testing.T) {
|
|||
EDSServiceName: v3Service,
|
||||
LRSServerConfig: serverCfg,
|
||||
Raw: v3ClusterAnyWithEDSConfigSourceSelf,
|
||||
TelemetryLabels: internal.UnknownCSMLabels,
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -1384,7 +1394,8 @@ func (s) TestUnmarshalCluster(t *testing.T) {
|
|||
LRSServerConfig: serverCfg,
|
||||
Raw: v3ClusterAnyWithTelemetryLabelsIgnoreSome,
|
||||
TelemetryLabels: map[string]string{
|
||||
"csm.service_name": "grpc-service",
|
||||
"csm.service_name": "grpc-service",
|
||||
"csm.service_namespace_name": "unknown",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue