From 5b015e784a44a8e0e92aa67cdf7ad6bd4684f447 Mon Sep 17 00:00:00 2001 From: jonmv Date: Thu, 27 Apr 2023 16:27:36 +0200 Subject: Verify cloud endpoint health in deployment jobs --- .../com/yahoo/vespa/hosted/provision/lb/LoadBalancerService.java | 3 ++- .../yahoo/vespa/hosted/provision/lb/LoadBalancerServiceMock.java | 7 +++++++ .../yahoo/vespa/hosted/provision/lb/SharedLoadBalancerService.java | 7 +++++++ .../hosted/provision/provisioning/ProvisionServiceProvider.java | 4 +++- 4 files changed, 19 insertions(+), 2 deletions(-) (limited to 'node-repository') diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerService.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerService.java index 313cf45e1ee..4f33e079d8f 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerService.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerService.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.hosted.provision.lb; import com.yahoo.config.provision.ClusterSpec; +import com.yahoo.config.provision.EndpointsChecker.HealthChecker; import com.yahoo.config.provision.NodeType; /** @@ -9,7 +10,7 @@ import com.yahoo.config.provision.NodeType; * * @author mpolden */ -public interface LoadBalancerService { +public interface LoadBalancerService extends HealthChecker { /** * Provisions load balancers from the given specification. Implementations are expected to be idempotent diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerServiceMock.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerServiceMock.java index 751f3d46059..a79766a577d 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerServiceMock.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerServiceMock.java @@ -4,6 +4,8 @@ package com.yahoo.vespa.hosted.provision.lb; import ai.vespa.http.DomainName; import com.google.common.collect.ImmutableSet; import com.yahoo.config.provision.ClusterSpec; +import com.yahoo.config.provision.EndpointsChecker.Availability; +import com.yahoo.config.provision.EndpointsChecker.Endpoint; import com.yahoo.config.provision.NodeType; import java.util.Collections; @@ -85,4 +87,9 @@ public class LoadBalancerServiceMock implements LoadBalancerService { instances.remove(loadBalancer.id()); } + @Override + public Availability healthy(Endpoint endpoint) { + return Availability.ready; + } + } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerService.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerService.java index f9f26852b0d..e49d1b302cf 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerService.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerService.java @@ -3,6 +3,8 @@ package com.yahoo.vespa.hosted.provision.lb; import ai.vespa.http.DomainName; import com.yahoo.config.provision.ClusterSpec; +import com.yahoo.config.provision.EndpointsChecker.Availability; +import com.yahoo.config.provision.EndpointsChecker.Endpoint; import com.yahoo.config.provision.NodeType; import java.util.List; @@ -68,4 +70,9 @@ public class SharedLoadBalancerService implements LoadBalancerService { return nodeType == NodeType.tenant && clusterType.isContainer(); } + @Override + public Availability healthy(Endpoint endpoint) { + return Availability.ready; + } + } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisionServiceProvider.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisionServiceProvider.java index 6e301b7724c..65039aaca77 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisionServiceProvider.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisionServiceProvider.java @@ -1,6 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.provision.provisioning; +import com.yahoo.config.provision.EndpointsChecker.HealthCheckerProvider; import com.yahoo.vespa.hosted.provision.lb.LoadBalancerService; import java.util.Optional; @@ -10,11 +11,12 @@ import java.util.Optional; * * @author freva */ -public interface ProvisionServiceProvider { +public interface ProvisionServiceProvider extends HealthCheckerProvider { Optional getLoadBalancerService(); Optional getHostProvisioner(); HostResourcesCalculator getHostResourcesCalculator(); + } -- cgit v1.2.3