diff options
author | jonmv <venstad@gmail.com> | 2023-02-02 09:09:38 +0100 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2023-02-02 09:09:38 +0100 |
commit | 3878986b078a9d526773426aad29e480a4a33d56 (patch) | |
tree | ffb4040a98dc9340ee9534c15361a80737ec5136 /config-model-api | |
parent | 26983a0fe6204707c75183ea7762659edfc11d8e (diff) |
Disable internet-facing endpoints in test/staging if any zone has them disabled
Diffstat (limited to 'config-model-api')
-rw-r--r-- | config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java | 4 | ||||
-rw-r--r-- | config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java | 8 |
2 files changed, 12 insertions, 0 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java b/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java index d731e09d4e4..cbdb5bd6bcc 100644 --- a/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java +++ b/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java @@ -194,6 +194,10 @@ public class DeploymentSpec { */ public ZoneEndpoint zoneEndpoint(InstanceName instance, ZoneId zone, ClusterSpec.Id cluster) { // TODO: look up endpoints from <dev> tag, or so, if we're to support non-prod settings. + if ( zone.environment().isTest() + && instances().stream() + .anyMatch(spec -> spec.zoneEndpoints().getOrDefault(cluster, Map.of()).values().stream() + .anyMatch(endpoint -> ! endpoint.isPublicEndpoint()))) return ZoneEndpoint.privateEndpoint; if (zone.environment() != Environment.prod) return ZoneEndpoint.defaultEndpoint; return instance(instance).flatMap(spec -> spec.zoneEndpoint(zone, cluster)) .orElse(ZoneEndpoint.defaultEndpoint); diff --git a/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java b/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java index 355ce651c34..2e746ff55c8 100644 --- a/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java +++ b/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java @@ -1217,6 +1217,9 @@ public class DeploymentSpecTest { assertEquals(ZoneEndpoint.defaultEndpoint, spec.zoneEndpoint(InstanceName.defaultName(), defaultId(), ClusterSpec.Id.from("cluster"))); + assertEquals(ZoneEndpoint.defaultEndpoint, spec.zoneEndpoint(InstanceName.defaultName(), + com.yahoo.config.provision.zone.ZoneId.from("test", "us"), + ClusterSpec.Id.from("cluster"))); } @Test @@ -1271,12 +1274,17 @@ public class DeploymentSpecTest { assertEquals(List.of(RegionName.from("us-east")), spec.requireInstance("default").endpoints().get(0).regions()); var zone = from(Environment.prod, RegionName.from("us-east")); + var testZone = from(Environment.test, RegionName.from("us-east")); assertEquals(ZoneEndpoint.defaultEndpoint, spec.zoneEndpoint(InstanceName.from("custom"), zone, ClusterSpec.Id.from("bax"))); assertEquals(ZoneEndpoint.defaultEndpoint, spec.zoneEndpoint(InstanceName.from("default"), defaultId(), ClusterSpec.Id.from("bax"))); assertEquals(ZoneEndpoint.defaultEndpoint, spec.zoneEndpoint(InstanceName.from("default"), zone, ClusterSpec.Id.from("bax"))); + assertEquals(ZoneEndpoint.defaultEndpoint, + spec.zoneEndpoint(InstanceName.from("default"), testZone, ClusterSpec.Id.from("bax"))); + assertEquals(ZoneEndpoint.privateEndpoint, + spec.zoneEndpoint(InstanceName.from("default"), testZone, ClusterSpec.Id.from("froz"))); assertEquals(new ZoneEndpoint(false, true, List.of(new AllowedUrn(AccessType.awsPrivateLink, "barn"), new AllowedUrn(AccessType.gcpServiceConnect, "nine"))), |