diff options
author | Martin Polden <mpolden@mpolden.no> | 2021-10-29 14:51:18 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2021-11-02 09:01:16 +0100 |
commit | 0aa42f1413bc86650c2bd11aa2790e2338af9ffa (patch) | |
tree | 2ae074622fda327da174731cf91419b880585aaf /controller-server | |
parent | f179c34f92cc73a74965852d14342ca0148ed788 (diff) |
Support application-level endpoints in DeploymentSpec
Diffstat (limited to 'controller-server')
2 files changed, 8 insertions, 7 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageValidator.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageValidator.java index 302ac1d393d..9ab5096ec8f 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageValidator.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageValidator.java @@ -9,7 +9,6 @@ import com.yahoo.config.application.api.ValidationOverrides; import com.yahoo.config.provision.CloudName; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.InstanceName; -import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.zone.ZoneApi; import com.yahoo.config.provision.zone.ZoneId; import com.yahoo.vespa.hosted.controller.Application; @@ -172,15 +171,16 @@ public class ApplicationPackageValidator { return endpoints; } - /** Returns global service ID as a endpoint, if any global service ID is set */ + /** Returns global service ID as an endpoint, if any global service ID is set */ private static Optional<Endpoint> legacyEndpoint(DeploymentInstanceSpec instance) { return instance.globalServiceId().map(globalServiceId -> { - var regions = instance.zones().stream() + var targets = instance.zones().stream() .filter(zone -> zone.environment().isProduction()) .flatMap(zone -> zone.region().stream()) - .map(RegionName::value) - .collect(Collectors.toSet()); - return new Endpoint(Optional.of(EndpointId.defaultId().id()), globalServiceId, regions); + .distinct() + .map(region -> new Endpoint.Target(region, instance.name(), 1)) + .collect(Collectors.toList()); + return new Endpoint(EndpointId.defaultId().id(), globalServiceId, Endpoint.Level.instance, targets); }); } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepository.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepository.java index e15c8fa0ac4..5b24f39717b 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepository.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepository.java @@ -22,6 +22,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.Set; import java.util.function.Function; import java.util.logging.Logger; import java.util.stream.Collectors; @@ -142,7 +143,7 @@ public class RotationRepository { } else { // Rotation already assigned to this endpoint, reuse it rotationId = assignedRotation.rotationId(); } - assignments.add(new AssignedRotation(ClusterSpec.Id.from(endpoint.containerId()), endpointId, rotationId, endpoint.regions())); + assignments.add(new AssignedRotation(ClusterSpec.Id.from(endpoint.containerId()), endpointId, rotationId, Set.copyOf(endpoint.regions()))); } return Collections.unmodifiableList(assignments); } |