diff options
author | Martin Polden <mpolden@mpolden.no> | 2020-06-15 15:57:09 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2020-06-15 16:01:31 +0200 |
commit | 45eeafc5af665609d7f45bff6d73bac51adaddbf (patch) | |
tree | 338c4bb14441093963e60b7202d17be99c69f6ba | |
parent | 2288d5dcb2b7fc2f26583980d082d3476e37519b (diff) |
Create global routing policy with legacy syntax
2 files changed, 26 insertions, 1 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 abd4770ea0d..9678c42d31f 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 @@ -289,12 +289,16 @@ public class RoutingPolicies { if (instanceSpec.isEmpty()) { return Set.of(); } + if (instanceSpec.get().globalServiceId().filter(id -> id.equals(loadBalancer.cluster().value())).isPresent()) { + // Legacy assignment always has the default endpoint Id + return Set.of(EndpointId.defaultId()); + } return instanceSpec.get().endpoints().stream() .filter(endpoint -> endpoint.containerId().equals(loadBalancer.cluster().value())) .filter(endpoint -> endpoint.regions().contains(deployment.zoneId().region())) .map(com.yahoo.config.application.api.Endpoint::endpointId) .map(EndpointId::of) - .collect(Collectors.toSet()); + .collect(Collectors.toUnmodifiableSet()); } } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/RoutingPoliciesTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/RoutingPoliciesTest.java index 56fb7194e4e..a026a3c75a2 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/RoutingPoliciesTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/RoutingPoliciesTest.java @@ -138,6 +138,27 @@ public class RoutingPoliciesTest { } @Test + public void global_routing_policies_legacy_global_service_id() { + var tester = new RoutingPoliciesTester(); + var context = tester.newDeploymentContext("tenant1", "app1", "default"); + int clustersPerZone = 2; + int numberOfDeployments = 2; + var applicationPackage = applicationPackageBuilder() + .region(zone1.region()) + .region(zone2.region()) + .globalServiceId("c0") + .build(); + tester.provisionLoadBalancers(clustersPerZone, context.instanceId(), zone1, zone2); + + // Creates alias records + context.submit(applicationPackage).deferLoadBalancerProvisioningIn(Environment.prod).deploy(); + tester.assertTargets(context.instanceId(), EndpointId.defaultId(), 0, zone1, zone2); + assertEquals("Routing policy count is equal to cluster count", + numberOfDeployments * clustersPerZone, + tester.policiesOf(context.instance().id()).size()); + } + + @Test public void zone_routing_policies() { zone_routing_policies(false); zone_routing_policies(true); |