aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2021-11-19 13:34:56 +0100
committerMartin Polden <mpolden@mpolden.no>2021-11-19 13:34:56 +0100
commit7c5d04b0eb540d1933713f34a53f6cb3d31e8517 (patch)
treeaf80bcc037ef7e277df0f5901e20a2e3fe24fa85 /controller-server
parent7b95019136bb6e6ad498bb8837b3b3f26b29e035 (diff)
Only create ALIAS records when using exclusive routing
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicies.java13
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java8
2 files changed, 14 insertions, 7 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicies.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicies.java
index 2a39ed08014..634d76c8449 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicies.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicies.java
@@ -215,7 +215,7 @@ public class RoutingPolicies {
Application application = controller.applications().requireApplication(routingTable.keySet().iterator().next().application());
Map<DeploymentId, Map<EndpointId, Integer>> targetWeights = targetWeights(application);
- Map<String, Set<AliasTarget>> targetsByEndpoint = new LinkedHashMap<>();
+ Map<Endpoint, Set<AliasTarget>> targetsByEndpoint = new LinkedHashMap<>();
for (Map.Entry<RoutingId, List<RoutingPolicy>> routeEntry : routingTable.entrySet()) {
RoutingId routingId = routeEntry.getKey();
EndpointList endpoints = controller.routing().declaredEndpointsOf(application)
@@ -236,13 +236,20 @@ public class RoutingPolicies {
}
WeightedAliasTarget weightedAliasTarget = new WeightedAliasTarget(policy.canonicalName(), policy.dnsZone().get(),
target.deployment().zoneId(), weight);
- targetsByEndpoint.computeIfAbsent(endpoint.dnsName(), (k) -> new LinkedHashSet<>())
+ targetsByEndpoint.computeIfAbsent(endpoint, (k) -> new LinkedHashSet<>())
.add(weightedAliasTarget);
}
}
}
targetsByEndpoint.forEach((applicationEndpoint, targets) -> {
- controller.nameServiceForwarder().createAlias(RecordName.from(applicationEndpoint), targets, Priority.normal);
+ ZoneId targetZone = applicationEndpoint.targets().stream()
+ .map(Endpoint.Target::deployment)
+ .map(DeploymentId::zoneId)
+ .findFirst()
+ .get();
+ nameServiceForwarderIn(targetZone).createAlias(RecordName.from(applicationEndpoint.dnsName()),
+ targets,
+ Priority.normal);
});
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java
index 9472801ef2c..58d034582cd 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java
@@ -625,13 +625,13 @@ public class ControllerTest {
.instances("beta,main")
.region("us-west-1")
.region("us-east-3")
- .applicationEndpoint("a", "qrs", "us-west-1",
+ .applicationEndpoint("a", "default", "us-west-1",
Map.of(InstanceName.from("beta"), 2,
InstanceName.from("main"), 8))
- .applicationEndpoint("b", "qrs", "us-west-1",
+ .applicationEndpoint("b", "default", "us-west-1",
Map.of(InstanceName.from("beta"), 1,
InstanceName.from("main"), 1))
- .applicationEndpoint("c", "qrs", "us-east-3",
+ .applicationEndpoint("c", "default", "us-east-3",
Map.of(InstanceName.from("beta"), 4,
InstanceName.from("main"), 6))
.build();
@@ -644,7 +644,7 @@ public class ControllerTest {
usEast, List.of("c--app1--tenant1.us-east-3-r.vespa.oath.cloud"));
deploymentEndpoints.forEach((zone, endpointNames) -> {
assertEquals("Endpoint names are passed to config server in " + zone,
- Set.of(new ContainerEndpoint("qrs", "application",
+ Set.of(new ContainerEndpoint("default", "application",
endpointNames)),
tester.configServer().containerEndpoints().get(zone));
});