From 5e5c545bdb69a164c3fd22b16d4cd81d980fe552 Mon Sep 17 00:00:00 2001 From: jonmv Date: Wed, 26 Jun 2024 17:11:05 +0200 Subject: Allow private endpoints (and no publics) in dev and perf --- .../com/yahoo/config/application/api/DeploymentInstanceSpec.java | 2 +- .../main/java/com/yahoo/config/application/api/DeploymentSpec.java | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'config-model-api/src/main/java/com/yahoo/config/application') diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java b/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java index c04874f2b16..6ce08250649 100644 --- a/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java +++ b/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java @@ -288,7 +288,7 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Steps { /** Returns whether this instance deploys to the given zone, either implicitly or explicitly */ public boolean deploysTo(Environment environment, RegionName region) { - return zones().stream().anyMatch(zone -> zone.concerns(environment, Optional.of(region))); + return zones().stream().anyMatch(zone -> zone.concerns(environment, Optional.ofNullable(region))); } /** Returns the zone endpoint specified for the given region, or empty. */ 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 fdaa7d57074..2ab7c128046 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 @@ -223,11 +223,16 @@ public class DeploymentSpec { * 5. None of the above apply, and the default of a publicly visible endpoint is used. */ public ZoneEndpoint zoneEndpoint(InstanceName instance, ZoneId zone, ClusterSpec.Id cluster) { - // TODO: look up endpoints from 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().isManuallyDeployed()) + return instance(instance).filter(spec -> spec.deploysTo(zone.environment(), zone.region())) + .map(spec -> spec.zoneEndpoints().getOrDefault(cluster, Map.of()).get(null)) + .orElse(ZoneEndpoint.defaultEndpoint); + if (zone.environment() != Environment.prod) return ZoneEndpoint.defaultEndpoint; return instance(instance).flatMap(spec -> spec.zoneEndpoint(zone, cluster)) .orElse(ZoneEndpoint.defaultEndpoint); -- cgit v1.2.3