aboutsummaryrefslogtreecommitdiffstats
path: root/config-model-api/src/main/java/com/yahoo/config/application/api
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2024-06-26 17:11:05 +0200
committerjonmv <venstad@gmail.com>2024-06-26 17:11:05 +0200
commit5e5c545bdb69a164c3fd22b16d4cd81d980fe552 (patch)
tree5410bca4d777db14a5e4ee5fd7bb9450b17f0776 /config-model-api/src/main/java/com/yahoo/config/application/api
parent32e2be2707c357bf34d77d980d500e76922e8be6 (diff)
Allow private endpoints (and no publics) in dev and perf
Diffstat (limited to 'config-model-api/src/main/java/com/yahoo/config/application/api')
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java2
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java7
2 files changed, 7 insertions, 2 deletions
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 <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().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);