Skip to content

Commit 51611ba

Browse files
xds: Enable flags for CSM Cloud run gRPC Java (#12499)
Make default to true for the env vars GRPC_EXPERIMENTAL_XDS_SNI GRPC_EXPERIMENTAL_XDS_AUTHORITY_REWRITE GRPC_EXPERIMENTAL_XDS_SYSTEM_ROOT_CERTS and remove usage of the env var GRPC_EXPERIMENTAL_XDS_GCP_AUTHENTICATION_FILTER and make it enabled.
1 parent da70387 commit 51611ba

File tree

8 files changed

+28
-39
lines changed

8 files changed

+28
-39
lines changed

xds/src/main/java/io/grpc/xds/FilterRegistry.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package io.grpc.xds;
1818

1919
import com.google.common.annotations.VisibleForTesting;
20-
import io.grpc.internal.GrpcUtil;
2120
import java.util.HashMap;
2221
import java.util.Map;
2322
import javax.annotation.Nullable;
@@ -33,18 +32,13 @@ final class FilterRegistry {
3332

3433
private FilterRegistry() {}
3534

36-
static boolean isEnabledGcpAuthnFilter =
37-
GrpcUtil.getFlag("GRPC_EXPERIMENTAL_XDS_GCP_AUTHENTICATION_FILTER", false);
38-
3935
static synchronized FilterRegistry getDefaultRegistry() {
4036
if (instance == null) {
4137
instance = newRegistry().register(
4238
new FaultFilter.Provider(),
4339
new RouterFilter.Provider(),
44-
new RbacFilter.Provider());
45-
if (isEnabledGcpAuthnFilter) {
46-
instance.register(new GcpAuthenticationFilter.Provider());
47-
}
40+
new RbacFilter.Provider(),
41+
new GcpAuthenticationFilter.Provider());
4842
}
4943
return instance;
5044
}

xds/src/main/java/io/grpc/xds/GcpAuthenticationFilter.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package io.grpc.xds;
1818

1919
import static com.google.common.base.Preconditions.checkNotNull;
20-
import static io.grpc.xds.FilterRegistry.isEnabledGcpAuthnFilter;
2120
import static io.grpc.xds.XdsNameResolver.CLUSTER_SELECTION_KEY;
2221
import static io.grpc.xds.XdsNameResolver.XDS_CONFIG_CALL_OPTION_KEY;
2322

@@ -313,10 +312,6 @@ public String getTypeUrl() {
313312
public AudienceWrapper parse(Any any) throws ResourceInvalidException {
314313
Audience audience;
315314
try {
316-
if (!isEnabledGcpAuthnFilter) {
317-
throw new InvalidProtocolBufferException("Environment variable for GCP Authentication "
318-
+ "Filter is Not Set");
319-
}
320315
audience = any.unpack(Audience.class);
321316
} catch (InvalidProtocolBufferException ex) {
322317
throw new ResourceInvalidException("Invalid Resource in address proto", ex);

xds/src/main/java/io/grpc/xds/XdsClusterResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class XdsClusterResource extends XdsResourceType<CdsUpdate> {
6666
System.getProperty("io.grpc.xds.experimentalEnableLeastRequest", "true"));
6767
@VisibleForTesting
6868
public static boolean enableSystemRootCerts =
69-
GrpcUtil.getFlag("GRPC_EXPERIMENTAL_XDS_SYSTEM_ROOT_CERTS", false);
69+
GrpcUtil.getFlag("GRPC_EXPERIMENTAL_XDS_SYSTEM_ROOT_CERTS", true);
7070
static boolean isEnabledXdsHttpConnect =
7171
GrpcUtil.getFlag("GRPC_EXPERIMENTAL_XDS_HTTP_CONNECT", false);
7272

xds/src/main/java/io/grpc/xds/XdsRouteConfigureResource.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@
6969

7070
class XdsRouteConfigureResource extends XdsResourceType<RdsUpdate> {
7171

72-
private static final String GRPC_EXPERIMENTAL_XDS_AUTHORITY_REWRITE =
73-
"GRPC_EXPERIMENTAL_XDS_AUTHORITY_REWRITE";
72+
private static final boolean isXdsAuthorityRewriteEnabled = GrpcUtil.getFlag(
73+
"GRPC_EXPERIMENTAL_XDS_AUTHORITY_REWRITE", true);
7474
@VisibleForTesting
7575
static boolean enableRouteLookup = GrpcUtil.getFlag("GRPC_EXPERIMENTAL_XDS_RLS_LB", true);
7676

@@ -475,8 +475,8 @@ static StructOrError<RouteAction> parseRouteAction(
475475
case CLUSTER:
476476
return StructOrError.fromStruct(RouteAction.forCluster(
477477
proto.getCluster(), hashPolicies, timeoutNano, retryPolicy,
478-
GrpcUtil.getFlag(GRPC_EXPERIMENTAL_XDS_AUTHORITY_REWRITE, false)
479-
&& args.getServerInfo().isTrustedXdsServer() && proto.getAutoHostRewrite().getValue()));
478+
isXdsAuthorityRewriteEnabled && args.getServerInfo().isTrustedXdsServer()
479+
&& proto.getAutoHostRewrite().getValue()));
480480
case CLUSTER_HEADER:
481481
return null;
482482
case WEIGHTED_CLUSTERS:
@@ -510,8 +510,8 @@ static StructOrError<RouteAction> parseRouteAction(
510510
}
511511
return StructOrError.fromStruct(VirtualHost.Route.RouteAction.forWeightedClusters(
512512
weightedClusters, hashPolicies, timeoutNano, retryPolicy,
513-
GrpcUtil.getFlag(GRPC_EXPERIMENTAL_XDS_AUTHORITY_REWRITE, false)
514-
&& args.getServerInfo().isTrustedXdsServer() && proto.getAutoHostRewrite().getValue()));
513+
isXdsAuthorityRewriteEnabled && args.getServerInfo().isTrustedXdsServer()
514+
&& proto.getAutoHostRewrite().getValue()));
515515
case CLUSTER_SPECIFIER_PLUGIN:
516516
if (enableRouteLookup) {
517517
String pluginName = proto.getClusterSpecifierPlugin();
@@ -527,8 +527,7 @@ static StructOrError<RouteAction> parseRouteAction(
527527
NamedPluginConfig namedPluginConfig = NamedPluginConfig.create(pluginName, pluginConfig);
528528
return StructOrError.fromStruct(VirtualHost.Route.RouteAction.forClusterSpecifierPlugin(
529529
namedPluginConfig, hashPolicies, timeoutNano, retryPolicy,
530-
GrpcUtil.getFlag(GRPC_EXPERIMENTAL_XDS_AUTHORITY_REWRITE, false)
531-
&& args.getServerInfo().isTrustedXdsServer()
530+
isXdsAuthorityRewriteEnabled && args.getServerInfo().isTrustedXdsServer()
532531
&& proto.getAutoHostRewrite().getValue()));
533532
} else {
534533
return null;

xds/src/main/java/io/grpc/xds/internal/security/trust/CertificateUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
* Contains certificate utility method(s).
3131
*/
3232
public final class CertificateUtils {
33-
public static boolean isXdsSniEnabled = GrpcUtil.getFlag("GRPC_EXPERIMENTAL_XDS_SNI", false);
33+
public static boolean isXdsSniEnabled = GrpcUtil.getFlag("GRPC_EXPERIMENTAL_XDS_SNI", true);
3434
public static boolean useChannelAuthorityIfNoSniApplicable
3535
= GrpcUtil.getFlag("GRPC_USE_CHANNEL_AUTHORITY_IF_NO_SNI_APPLICABLE", false);
3636

xds/src/test/java/io/grpc/xds/GcpAuthenticationFilterTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,8 @@ private static LdsUpdate getLdsUpdate() {
468468
private static RdsUpdate getRdsUpdate() {
469469
RouteConfiguration routeConfiguration =
470470
buildRouteConfiguration("my-server", RDS_NAME, CLUSTER_NAME);
471-
XdsResourceType.Args args = new XdsResourceType.Args(null, "0", "0", null, null, null);
471+
XdsResourceType.Args args = new XdsResourceType.Args(
472+
XdsTestUtils.EMPTY_BOOTSTRAPPER_SERVER_INFO, "0", "0", null, null, null);
472473
try {
473474
return XdsRouteConfigureResource.getInstance().doParse(args, routeConfiguration);
474475
} catch (ResourceInvalidException ex) {

xds/src/test/java/io/grpc/xds/GrpcXdsClientImplDataTest.java

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,7 @@ public void parseRouteAction_withCluster_flagDisabled_autoHostRewriteNotEnabled(
568568
assertThat(struct.getErrorDetail()).isNull();
569569
assertThat(struct.getStruct().cluster()).isEqualTo("cluster-foo");
570570
assertThat(struct.getStruct().weightedClusters()).isNull();
571-
assertThat(struct.getStruct().autoHostRewrite()).isFalse();
571+
assertThat(struct.getStruct().autoHostRewrite()).isTrue();
572572
}
573573

574574
@Test
@@ -656,7 +656,7 @@ public void parseRouteAction_withWeightedCluster_flagDisabled_autoHostRewriteDis
656656
assertThat(struct.getStruct().weightedClusters()).containsExactly(
657657
ClusterWeight.create("cluster-foo", 30, ImmutableMap.<String, FilterConfig>of()),
658658
ClusterWeight.create("cluster-bar", 70, ImmutableMap.<String, FilterConfig>of()));
659-
assertThat(struct.getStruct().autoHostRewrite()).isFalse();
659+
assertThat(struct.getStruct().autoHostRewrite()).isTrue();
660660
}
661661

662662
@Test
@@ -1038,7 +1038,7 @@ public void parseRouteAction_clusterSpecifier_flagDisabled_autoHostRewriteDisabl
10381038
ImmutableMap.of("lookupService", "rls-cbt.googleapis.com"))), ImmutableSet.of(),
10391039
getXdsResourceTypeArgs(true));
10401040
assertThat(struct.getStruct()).isNotNull();
1041-
assertThat(struct.getStruct().autoHostRewrite()).isFalse();
1041+
assertThat(struct.getStruct().autoHostRewrite()).isTrue();
10421042
}
10431043

10441044
@Test
@@ -2447,7 +2447,6 @@ public Object parse(Any value) {
24472447

24482448
@Test
24492449
public void processCluster_parsesAudienceMetadata() throws Exception {
2450-
FilterRegistry.isEnabledGcpAuthnFilter = true;
24512450
MetadataRegistry.getInstance();
24522451

24532452
Audience audience = Audience.newBuilder()
@@ -2491,14 +2490,11 @@ public void processCluster_parsesAudienceMetadata() throws Exception {
24912490
"FILTER_METADATA", ImmutableMap.of(
24922491
"key1", "value1",
24932492
"key2", 42.0));
2494-
try {
2495-
assertThat(update.parsedMetadata().get("FILTER_METADATA"))
2496-
.isEqualTo(expectedParsedMetadata.get("FILTER_METADATA"));
2497-
assertThat(update.parsedMetadata().get("AUDIENCE_METADATA"))
2498-
.isInstanceOf(AudienceWrapper.class);
2499-
} finally {
2500-
FilterRegistry.isEnabledGcpAuthnFilter = false;
2501-
}
2493+
2494+
assertThat(update.parsedMetadata().get("FILTER_METADATA"))
2495+
.isEqualTo(expectedParsedMetadata.get("FILTER_METADATA"));
2496+
assertThat(update.parsedMetadata().get("AUDIENCE_METADATA"))
2497+
.isInstanceOf(AudienceWrapper.class);
25022498
}
25032499

25042500
@Test

xds/src/test/java/io/grpc/xds/XdsTestUtils.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import io.grpc.BindableService;
4848
import io.grpc.Context;
4949
import io.grpc.Context.CancellationListener;
50+
import io.grpc.InsecureChannelCredentials;
5051
import io.grpc.StatusOr;
5152
import io.grpc.internal.ExponentialBackoffPolicy;
5253
import io.grpc.internal.FakeClock;
@@ -84,6 +85,9 @@ public class XdsTestUtils {
8485
static final String HTTP_CONNECTION_MANAGER_TYPE_URL =
8586
"type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3"
8687
+ ".HttpConnectionManager";
88+
static final Bootstrapper.ServerInfo EMPTY_BOOTSTRAPPER_SERVER_INFO =
89+
Bootstrapper.ServerInfo.create(
90+
"td.googleapis.com", InsecureChannelCredentials.create(), false, true, false);
8791
public static final String ENDPOINT_HOSTNAME = "data-host";
8892
public static final int ENDPOINT_PORT = 1234;
8993

@@ -247,8 +251,8 @@ static XdsConfig getDefaultXdsConfig(String serverHostName)
247251

248252
RouteConfiguration routeConfiguration =
249253
buildRouteConfiguration(serverHostName, RDS_NAME, CLUSTER_NAME);
250-
Bootstrapper.ServerInfo serverInfo = null;
251-
XdsResourceType.Args args = new XdsResourceType.Args(serverInfo, "0", "0", null, null, null);
254+
XdsResourceType.Args args = new XdsResourceType.Args(
255+
EMPTY_BOOTSTRAPPER_SERVER_INFO, "0", "0", null, null, null);
252256
XdsRouteConfigureResource.RdsUpdate rdsUpdate =
253257
XdsRouteConfigureResource.getInstance().doParse(args, routeConfiguration);
254258

@@ -268,7 +272,7 @@ static XdsConfig getDefaultXdsConfig(String serverHostName)
268272
XdsEndpointResource.EdsUpdate edsUpdate = new XdsEndpointResource.EdsUpdate(
269273
EDS_NAME, lbEndpointsMap, Collections.emptyList());
270274
XdsClusterResource.CdsUpdate cdsUpdate = XdsClusterResource.CdsUpdate.forEds(
271-
CLUSTER_NAME, EDS_NAME, serverInfo, null, null, null, false, null)
275+
CLUSTER_NAME, EDS_NAME, null, null, null, null, false, null)
272276
.lbPolicyConfig(getWrrLbConfigAsMap()).build();
273277
XdsConfig.XdsClusterConfig clusterConfig = new XdsConfig.XdsClusterConfig(
274278
CLUSTER_NAME, cdsUpdate, new EndpointConfig(StatusOr.fromValue(edsUpdate)));

0 commit comments

Comments
 (0)