diff options
author | Martin Polden <mpolden@mpolden.no> | 2023-11-28 15:39:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-28 15:39:34 +0100 |
commit | d4f030fca74bb4795a993b30716c0a1ce68f6bfe (patch) | |
tree | 0db6f1174b40290af3ae3a64da209ca2df82ae66 | |
parent | 577a0b44cfa904fc994dd1eed9adedd920079219 (diff) | |
parent | 85c6c53bbddad1aebb3e49fca4611fa2c9fd77be (diff) |
Merge pull request #29484 from vespa-engine/mpolden/less-moving
Avoid moves to hosts that contain cluster nodes in any state
3 files changed, 4 insertions, 8 deletions
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 2c672d0eada..0807d13d7a8 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 @@ -15,7 +15,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; -import java.util.concurrent.atomic.AtomicBoolean; import static java.util.Objects.requireNonNull; import static java.util.stream.Collectors.toMap; @@ -68,7 +67,7 @@ public class LoadBalancerServiceMock implements LoadBalancerService { public LoadBalancerInstance provision(LoadBalancerSpec spec) { if (throwOnCreate) throw new IllegalStateException("Did not expect a new load balancer to be created"); var instance = new LoadBalancerInstance( - Optional.of(DomainName.of("lb-" + spec.application().toShortString() + "-" + spec.cluster().value())), + Optional.of(DomainName.of("lb-" + spec.application().toShortString().replaceAll("_", "--") + "-" + spec.cluster().value())), Optional.empty(), Optional.empty(), Optional.of(new DnsZone("zone-id-1")), diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/SwitchRebalancer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/SwitchRebalancer.java index 5e600b990ae..112f1fa96f6 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/SwitchRebalancer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/SwitchRebalancer.java @@ -69,7 +69,9 @@ public class SwitchRebalancer extends NodeMover<Move> { private NodeList clusterOf(Node node, NodeList allNodes) { ApplicationId application = node.allocation().get().owner(); ClusterSpec.Id cluster = node.allocation().get().membership().cluster().id(); - return allNodes.state(Node.State.active) + // This considers some non-active states to prevent unnecessary moves. E.g. we don't want to start moving nodes + // to a host which already contain a failed node in our cluster + return allNodes.state(Node.State.reserved, Node.State.active, Node.State.failed, Node.State.parked) .owner(application) .cluster(cluster); } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Status.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Status.java index 04f08240e43..0fdb00f6584 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Status.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Status.java @@ -133,11 +133,6 @@ public class Status { return new Status(reboot, vespaVersion, containerImage, failCount, wantToRetire, wantToDeprovision, wantToRebuild, preferToRetire, wantToFail, wantToUpgradeFlavor, osVersion, firmwareVerifiedAt); } - /** Returns a copy of this with wantToUpgradeFlavor set to given value */ - public Status withWantToUpgradeFlavor(boolean wantToUpgradeFlavor) { - return new Status(reboot, vespaVersion, containerImage, failCount, wantToRetire, wantToDeprovision, wantToRebuild, preferToRetire, wantToFail, wantToUpgradeFlavor, osVersion, firmwareVerifiedAt); - } - /** Returns a copy of this with the OS version set to given version */ public Status withOsVersion(OsVersion version) { return new Status(reboot, vespaVersion, containerImage, failCount, wantToRetire, wantToDeprovision, wantToRebuild, preferToRetire, wantToFail, wantToUpgradeFlavor, version, firmwareVerifiedAt); |