summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValerij Fredriksen <freva@users.noreply.github.com>2020-10-19 20:42:18 +0200
committerGitHub <noreply@github.com>2020-10-19 20:42:18 +0200
commit18efc89af221c6bcc05764454ca363bed77e67aa (patch)
treec127705cb09fdeedade9d49eb145211b884506af
parentb898bffea4055d8306cf5656957c8a6b4a0fd4c6 (diff)
parentea72fc4e53147f6bb03bca9237e1cacd0df468d1 (diff)
Merge pull request #14957 from vespa-engine/freva/remove-allowHostSharing
Remove allow host sharing
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/Cloud.java18
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java1
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java23
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java3
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainer.java3
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java14
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java3
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTest.java5
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainerTest.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MaintenanceTester.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java5
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisionTest.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java5
26 files changed, 47 insertions, 80 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Cloud.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Cloud.java
index 0899a6f1007..78ed8c9b60d 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/Cloud.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Cloud.java
@@ -13,15 +13,12 @@ public class Cloud {
private final CloudName name;
private final boolean dynamicProvisioning;
- private final boolean allowHostSharing;
private final boolean reprovisionToUpgradeOs;
private final boolean requireAccessControl;
- private Cloud(CloudName name, boolean dynamicProvisioning, boolean allowHostSharing, boolean reprovisionToUpgradeOs,
- boolean requireAccessControl) {
+ private Cloud(CloudName name, boolean dynamicProvisioning, boolean reprovisionToUpgradeOs, boolean requireAccessControl) {
this.name = Objects.requireNonNull(name);
this.dynamicProvisioning = dynamicProvisioning;
- this.allowHostSharing = allowHostSharing;
this.reprovisionToUpgradeOs = reprovisionToUpgradeOs;
this.requireAccessControl = requireAccessControl;
}
@@ -36,11 +33,6 @@ public class Cloud {
return dynamicProvisioning;
}
- /** Returns whether this allows different applications to share the same host */
- public boolean allowHostSharing() {
- return allowHostSharing;
- }
-
/** Returns whether upgrading OS on hosts in this requires the host to be reprovisioned */
public boolean reprovisionToUpgradeOs() {
return reprovisionToUpgradeOs;
@@ -64,7 +56,6 @@ public class Cloud {
private CloudName name = CloudName.defaultName();
private boolean dynamicProvisioning = false;
- private boolean allowHostSharing = true;
private boolean reprovisionToUpgradeOs = false;
private boolean requireAccessControl = false;
@@ -80,11 +71,6 @@ public class Cloud {
return this;
}
- public Builder allowHostSharing(boolean allowHostSharing) {
- this.allowHostSharing = allowHostSharing;
- return this;
- }
-
public Builder reprovisionToUpgradeOs(boolean reprovisionToUpgradeOs) {
this.reprovisionToUpgradeOs = reprovisionToUpgradeOs;
return this;
@@ -96,7 +82,7 @@ public class Cloud {
}
public Cloud build() {
- return new Cloud(name, dynamicProvisioning, allowHostSharing, reprovisionToUpgradeOs, requireAccessControl);
+ return new Cloud(name, dynamicProvisioning, reprovisionToUpgradeOs, requireAccessControl);
}
}
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java
index 4b562a0856d..4401606ca01 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java
@@ -26,7 +26,6 @@ public class Zone {
this(Cloud.builder()
.name(CloudName.from(configserverConfig.cloud()))
.dynamicProvisioning(cloudConfig.dynamicProvisioning())
- .allowHostSharing(cloudConfig.allowHostSharing())
.reprovisionToUpgradeOs(cloudConfig.reprovisionToUpgradeOs())
.requireAccessControl(cloudConfig.requireAccessControl())
.build(),
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java
index ff0fc9f66ea..f5c5db45f4a 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java
@@ -110,7 +110,6 @@ public class NodeRepository extends AbstractComponent {
private final DockerImages dockerImages;
private final JobControl jobControl;
private final Applications applications;
- private final boolean canProvisionHosts;
private final int spareCount;
/**
@@ -125,7 +124,7 @@ public class NodeRepository extends AbstractComponent {
Zone zone,
FlagSource flagSource) {
this(flavors,
- provisionServiceProvider.getHostResourcesCalculator(),
+ provisionServiceProvider,
curator,
Clock.systemUTC(),
zone,
@@ -133,8 +132,7 @@ public class NodeRepository extends AbstractComponent {
DockerImage.fromString(config.dockerImage()),
flagSource,
config.useCuratorClientCache(),
- provisionServiceProvider.getHostProvisioner().isPresent(),
- zone.environment().isProduction() && provisionServiceProvider.getHostProvisioner().isEmpty() ? 1 : 0,
+ zone.environment().isProduction() && !zone.getCloud().dynamicProvisioning() ? 1 : 0,
config.nodeCacheSize());
}
@@ -143,7 +141,7 @@ public class NodeRepository extends AbstractComponent {
* which will be used for time-sensitive decisions.
*/
public NodeRepository(NodeFlavors flavors,
- HostResourcesCalculator resourcesCalculator,
+ ProvisionServiceProvider provisionServiceProvider,
Curator curator,
Clock clock,
Zone zone,
@@ -151,14 +149,19 @@ public class NodeRepository extends AbstractComponent {
DockerImage dockerImage,
FlagSource flagSource,
boolean useCuratorClientCache,
- boolean canProvisionHosts,
int spareCount,
long nodeCacheSize) {
+ // TODO (valerijf): Uncomment when exception for prod.cd-aws is removed
+// if (provisionServiceProvider.getHostProvisioner().isPresent() != zone.getCloud().dynamicProvisioning())
+// throw new IllegalArgumentException(String.format(
+// "dynamicProvisioning property must be 1-to-1 with availability of HostProvisioner, was: dynamicProvisioning=%s, hostProvisioner=%s",
+// zone.getCloud().dynamicProvisioning(), provisionServiceProvider.getHostProvisioner().map(__ -> "present").orElse("empty")));
+
this.db = new CuratorDatabaseClient(flavors, curator, clock, zone, useCuratorClientCache, nodeCacheSize);
this.zone = zone;
this.clock = clock;
this.flavors = flavors;
- this.resourcesCalculator = resourcesCalculator;
+ this.resourcesCalculator = provisionServiceProvider.getHostResourcesCalculator();
this.nameResolver = nameResolver;
this.osVersions = new OsVersions(this);
this.infrastructureVersions = new InfrastructureVersions(db);
@@ -166,7 +169,6 @@ public class NodeRepository extends AbstractComponent {
this.dockerImages = new DockerImages(db, dockerImage);
this.jobControl = new JobControl(new JobControlFlags(db, flagSource));
this.applications = new Applications(db);
- this.canProvisionHosts = canProvisionHosts;
this.spareCount = spareCount;
rewriteNodes();
}
@@ -837,15 +839,12 @@ public class NodeRepository extends AbstractComponent {
if (host.status().wantToRetire()) return false;
if (host.allocation().map(alloc -> alloc.membership().retired()).orElse(false)) return false;
- if ( canProvisionHosts())
+ if (zone.getCloud().dynamicProvisioning())
return EnumSet.of(State.active, State.ready, State.provisioned).contains(host.state());
else
return host.state() == State.active;
}
- /** Returns whether this repository can provision hosts on demand */
- public boolean canProvisionHosts() { return canProvisionHosts; }
-
/** Returns the time keeper of this system */
public Clock clock() { return clock; }
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java
index d1d15baa5dc..ff74655f461 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java
@@ -7,7 +7,6 @@ import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeRepository;
-import com.yahoo.vespa.hosted.provision.provisioning.HostResourcesCalculator;
import com.yahoo.vespa.hosted.provision.provisioning.NodeResourceLimits;
import java.util.List;
@@ -138,7 +137,7 @@ public class AllocatableClusterResources {
Limits applicationLimits,
NodeRepository nodeRepository) {
var systemLimits = new NodeResourceLimits(nodeRepository);
- if ( !exclusive && nodeRepository.zone().getCloud().allowHostSharing()) {
+ if ( !exclusive && !nodeRepository.zone().getCloud().dynamicProvisioning()) {
// We decide resources: Add overhead to what we'll request (advertised) to make sure real becomes (at least) cappedNodeResources
NodeResources advertisedResources = nodeRepository.resourcesCalculator().realToRequest(wantedResources.nodeResources());
advertisedResources = systemLimits.enlargeToLegal(advertisedResources, clusterType); // Attempt to ask for something legal
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java
index 192f185f595..d6b2ca6d170 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java
@@ -35,7 +35,7 @@ public class Rebalancer extends NodeMover<Rebalancer.Move> {
@Override
protected boolean maintain() {
boolean success = true;
- if ( ! nodeRepository().zone().getCloud().allowHostSharing()) return success; // Rebalancing not necessary
+ if (nodeRepository().zone().getCloud().dynamicProvisioning()) return success; // Rebalancing not necessary
if (nodeRepository().zone().environment().isTest()) return success; // Short lived deployments; no need to rebalance
// Work with an unlocked snapshot as this can take a long time and full consistency is not needed
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainer.java
index c3389a1d98d..475928863ee 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainer.java
@@ -68,7 +68,8 @@ public class SpareCapacityMaintainer extends NodeRepositoryMaintainer {
@Override
protected boolean maintain() {
boolean success = true;
- if ( ! nodeRepository().zone().getCloud().allowHostSharing()) return success;
+ // Don't need to maintain spare capacity in dynamically provisioned zones; can provision more on demand.
+ if (nodeRepository().zone().getCloud().dynamicProvisioning()) return success;
NodeList allNodes = nodeRepository().list();
CapacityChecker capacityChecker = new CapacityChecker(allNodes);
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java
index 223d88c4dc0..f1a006b1359 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java
@@ -45,7 +45,7 @@ public class CapacityPolicies {
if (capacity.isRequired()) return target;
// Dev does not cap the cpu of containers since usage is spotty: Allocate just a small amount exclusively
- if (zone.environment() == Environment.dev && zone.getCloud().allowHostSharing())
+ if (zone.environment() == Environment.dev && !zone.getCloud().dynamicProvisioning())
target = target.withVcpu(0.1);
// Allow slow storage in zones which are not performance sensitive
@@ -61,14 +61,14 @@ public class CapacityPolicies {
// Use small logserver in dev system
return new NodeResources(0.1, 1, 10, 0.3);
}
- return zone.getCloud().allowHostSharing() ?
- new NodeResources(0.5, 2, 50, 0.3) :
- new NodeResources(0.5, 4, 50, 0.3);
+ return zone.getCloud().dynamicProvisioning() ?
+ new NodeResources(0.5, 4, 50, 0.3) :
+ new NodeResources(0.5, 2, 50, 0.3);
}
- return zone.getCloud().allowHostSharing() ?
- new NodeResources(1.5, 8, 50, 0.3) :
- new NodeResources(2.0, 8, 50, 0.3);
+ return zone.getCloud().dynamicProvisioning() ?
+ new NodeResources(2.0, 8, 50, 0.3) :
+ new NodeResources(1.5, 8, 50, 0.3);
}
/**
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java
index aee36351495..7f62eb8632c 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java
@@ -59,7 +59,7 @@ public class GroupPreparer {
// active config model which is changed on activate
public List<Node> prepare(ApplicationId application, ClusterSpec cluster, NodeSpec requestedNodes,
List<Node> surplusActiveNodes, MutableInteger highestIndex, int wantedGroups) {
- boolean dynamicProvisioningEnabled = nodeRepository.canProvisionHosts() && nodeRepository.zone().getCloud().dynamicProvisioning();
+ boolean dynamicProvisioningEnabled = nodeRepository.zone().getCloud().dynamicProvisioning();
boolean allocateFully = dynamicProvisioningEnabled && preprovisionCapacityFlag.value().isEmpty();
// Try preparing in memory without global unallocated lock. Most of the time there should be no changes and we
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java
index a11582e1151..ad892054836 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java
@@ -6,7 +6,6 @@ import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.SystemName;
import com.yahoo.config.provision.Zone;
-import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeRepository;
import java.util.Locale;
@@ -62,7 +61,7 @@ public class NodeResourceLimits {
}
private double minAdvertisedVcpu(ClusterSpec.Type clusterType) {
- if (zone().environment() == Environment.dev && zone().getCloud().allowHostSharing()) return 0.1;
+ if (zone().environment() == Environment.dev && !zone().getCloud().dynamicProvisioning()) return 0.1;
return 0.5;
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
index 042b4aa049c..0509ccc81c1 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
@@ -58,7 +58,7 @@ public class MockNodeRepository extends NodeRepository {
*/
public MockNodeRepository(MockCurator curator, NodeFlavors flavors) {
super(flavors,
- new EmptyProvisionServiceProvider().getHostResourcesCalculator(),
+ new EmptyProvisionServiceProvider(),
curator,
Clock.fixed(Instant.ofEpochMilli(123), ZoneId.of("Z")),
Zone.defaultZone(),
@@ -66,7 +66,6 @@ public class MockNodeRepository extends NodeRepository {
DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
- false,
0, 1000);
this.flavors = flavors;
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java
index 5c2768c5612..c966fc63ab9 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java
@@ -36,7 +36,7 @@ public class NodeRepositoryTester {
curator = new MockCurator();
curator.setZooKeeperEnsembleConnectionSpec("server1:1234,server2:5678");
nodeRepository = new NodeRepository(nodeFlavors,
- new EmptyProvisionServiceProvider().getHostResourcesCalculator(),
+ new EmptyProvisionServiceProvider(),
curator,
clock,
Zone.defaultZone(),
@@ -44,7 +44,6 @@ public class NodeRepositoryTester {
DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
- false,
0, 1000);
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTest.java
index d615d418c50..8dc1b94cf77 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTest.java
@@ -11,7 +11,6 @@ import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.RegionName;
import com.yahoo.config.provision.SystemName;
import com.yahoo.config.provision.Zone;
-import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeRepository;
import com.yahoo.vespa.hosted.provision.Nodelike;
import com.yahoo.vespa.hosted.provision.provisioning.HostResourcesCalculator;
@@ -21,7 +20,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
-import static com.yahoo.config.provision.NodeResources.StorageType.local;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -332,7 +330,7 @@ public class AutoscalingTest {
}
@Test
- public void test_autoscaling_without_host_sharing() {
+ public void test_autoscaling_with_dynamic_provisioning() {
ClusterResources min = new ClusterResources( 2, 1, new NodeResources(1, 1, 1, 1));
ClusterResources max = new ClusterResources(20, 1, new NodeResources(100, 1000, 1000, 1));
List<Flavor> flavors = new ArrayList<>();
@@ -342,7 +340,6 @@ public class AutoscalingTest {
flavors.add(new Flavor("aws-small", new NodeResources(3, 80, 100, 1, NodeResources.DiskSpeed.fast, NodeResources.StorageType.remote)));
AutoscalingTester tester = new AutoscalingTester(new Zone(Cloud.builder()
.dynamicProvisioning(true)
- .allowHostSharing(false)
.build(),
SystemName.main,
Environment.prod, RegionName.from("us-east")),
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java
index 212a866e69a..03349b21184 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java
@@ -63,7 +63,7 @@ class AutoscalingTester {
provisioningTester = new ProvisioningTester.Builder().zone(zone)
.flavors(flavors)
.resourcesCalculator(resourcesCalculator)
- .hostProvisioner(new MockHostProvisioner(flavors))
+ .hostProvisioner(zone.getCloud().dynamicProvisioning() ? new MockHostProvisioner(flavors) : null)
.build();
hostResourcesCalculator = new MockHostResourcesCalculator(zone);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java
index da5db311ce0..10626fcb7df 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java
@@ -63,7 +63,7 @@ public class CapacityCheckerTester {
Curator curator = new MockCurator();
NodeFlavors f = new NodeFlavors(new FlavorConfigBuilder().build());
nodeRepository = new NodeRepository(f,
- new EmptyProvisionServiceProvider().getHostResourcesCalculator(),
+ new EmptyProvisionServiceProvider(),
curator,
clock,
zone,
@@ -71,7 +71,6 @@ public class CapacityCheckerTester {
DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
- false,
0, 1000);
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainerTest.java
index 8b3b6aee5c1..5c80cd760e4 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainerTest.java
@@ -33,6 +33,7 @@ import com.yahoo.vespa.hosted.provision.provisioning.HostProvisioner;
import com.yahoo.vespa.hosted.provision.provisioning.ProvisionedHost;
import com.yahoo.vespa.hosted.provision.provisioning.ProvisioningTester;
import com.yahoo.vespa.hosted.provision.testutils.MockNameResolver;
+import org.junit.Ignore;
import org.junit.Test;
import java.time.Duration;
@@ -145,6 +146,7 @@ public class DynamicProvisioningMaintainerTest {
assertTrue(tester.nodeRepository.getNode(host2.hostname()).isPresent());
}
+ @Ignore // TODO (hakon): Fix or replace with spare-hosts flag
@Test
public void provision_exact_capacity() {
var tester = new DynamicProvisioningTester(Cloud.builder().dynamicProvisioning(false).build());
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java
index 258e2c7cd42..e9f1f8442c7 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java
@@ -252,7 +252,7 @@ public class FailedExpirerTest {
public FailureScenario(SystemName system, Environment environment) {
Zone zone = new Zone(system, environment, RegionName.defaultName());
this.nodeRepository = new NodeRepository(nodeFlavors,
- new EmptyProvisionServiceProvider().getHostResourcesCalculator(),
+ new EmptyProvisionServiceProvider(),
curator,
clock,
zone,
@@ -260,7 +260,6 @@ public class FailedExpirerTest {
DockerImage.fromString("docker-image"),
new InMemoryFlagSource(),
true,
- false,
0, 1000);
this.provisioner = new NodeRepositoryProvisioner(nodeRepository, zone, new MockProvisionServiceProvider(), new InMemoryFlagSource());
this.expirer = new FailedExpirer(nodeRepository, zone, clock, Duration.ofMinutes(30), new TestMetric());
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MaintenanceTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MaintenanceTester.java
index 8544942fe88..106d1b11a13 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MaintenanceTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MaintenanceTester.java
@@ -35,7 +35,7 @@ public class MaintenanceTester {
private final Zone zone = new Zone(Environment.prod, RegionName.from("us-east"));
private final NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default");
public final NodeRepository nodeRepository = new NodeRepository(nodeFlavors,
- new EmptyProvisionServiceProvider().getHostResourcesCalculator(),
+ new EmptyProvisionServiceProvider(),
curator,
clock,
zone,
@@ -43,7 +43,6 @@ public class MaintenanceTester {
DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
- false,
0, 1000);
public MaintenanceTester() {
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java
index 8747dc4eb6f..6ae5e667134 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java
@@ -82,7 +82,7 @@ public class MetricsReporterTest {
NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default");
Curator curator = new MockCurator();
NodeRepository nodeRepository = new NodeRepository(nodeFlavors,
- new EmptyProvisionServiceProvider().getHostResourcesCalculator(),
+ new EmptyProvisionServiceProvider(),
curator,
Clock.systemUTC(),
Zone.defaultZone(),
@@ -90,7 +90,6 @@ public class MetricsReporterTest {
DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
- false,
0, 1000);
Node node = nodeRepository.createNode("openStackId", "hostname", Optional.empty(), nodeFlavors.getFlavorOrThrow("default"), NodeType.tenant);
nodeRepository.addNodes(List.of(node), Agent.system);
@@ -187,7 +186,7 @@ public class MetricsReporterTest {
NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("host", "docker", "docker2");
Curator curator = new MockCurator();
NodeRepository nodeRepository = new NodeRepository(nodeFlavors,
- new EmptyProvisionServiceProvider().getHostResourcesCalculator(),
+ new EmptyProvisionServiceProvider(),
curator,
Clock.systemUTC(),
Zone.defaultZone(),
@@ -195,7 +194,6 @@ public class MetricsReporterTest {
DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
- false,
0, 1000);
// Allow 4 containers
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java
index 250555ae4fb..1c044a8dfa6 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java
@@ -76,7 +76,7 @@ public class NodeFailTester {
clock = new ManualClock();
curator = new MockCurator();
nodeRepository = new NodeRepository(nodeFlavors,
- new EmptyProvisionServiceProvider().getHostResourcesCalculator(),
+ new EmptyProvisionServiceProvider(),
curator,
clock,
zone,
@@ -84,7 +84,6 @@ public class NodeFailTester {
DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
- false,
0, 1000);
provisioner = new NodeRepositoryProvisioner(nodeRepository, zone, new MockProvisionServiceProvider(), new InMemoryFlagSource());
hostLivenessTracker = new TestHostLivenessTracker(clock);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java
index ed12203cf35..41a1b4bac38 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java
@@ -55,7 +55,7 @@ public class OperatorChangeApplicationMaintainerTest {
Curator curator = new MockCurator();
Zone zone = new Zone(Environment.prod, RegionName.from("us-east"));
this.nodeRepository = new NodeRepository(nodeFlavors,
- new EmptyProvisionServiceProvider().getHostResourcesCalculator(),
+ new EmptyProvisionServiceProvider(),
curator,
clock,
zone,
@@ -63,7 +63,6 @@ public class OperatorChangeApplicationMaintainerTest {
DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
- false,
0, 1000);
this.fixture = new Fixture(zone, nodeRepository);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java
index b9a9c718b82..b437b8f5577 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java
@@ -6,8 +6,8 @@ import com.yahoo.config.provision.ApplicationName;
import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterResources;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Deployer;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.InstanceName;
@@ -61,7 +61,7 @@ public class PeriodicApplicationMaintainerTest {
Zone zone = new Zone(Environment.prod, RegionName.from("us-east"));
this.clock = new ManualClock();
this.nodeRepository = new NodeRepository(nodeFlavors,
- new EmptyProvisionServiceProvider().getHostResourcesCalculator(),
+ new EmptyProvisionServiceProvider(),
curator,
clock,
zone,
@@ -69,7 +69,6 @@ public class PeriodicApplicationMaintainerTest {
DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
- false,
0, 1000);
this.fixture = new Fixture(zone, nodeRepository);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
index 417042470e6..e2ac644a419 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
@@ -46,7 +46,7 @@ public class ReservationExpirerTest {
ManualClock clock = new ManualClock();
NodeFlavors flavors = FlavorConfigBuilder.createDummies("default");
NodeRepository nodeRepository = new NodeRepository(flavors,
- new EmptyProvisionServiceProvider().getHostResourcesCalculator(),
+ new EmptyProvisionServiceProvider(),
curator,
clock,
Zone.defaultZone(),
@@ -54,7 +54,6 @@ public class ReservationExpirerTest {
DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
- false,
0, 1000);
NodeRepositoryProvisioner provisioner = new NodeRepositoryProvisioner(nodeRepository, Zone.defaultZone(), new MockProvisionServiceProvider(), new InMemoryFlagSource());
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java
index 8de769ae113..9c5e74ae63c 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java
@@ -65,7 +65,7 @@ public class RetiredExpirerTest {
private final Zone zone = new Zone(Environment.prod, RegionName.from("us-east"));
private final NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default");
private final NodeRepository nodeRepository = new NodeRepository(nodeFlavors,
- new EmptyProvisionServiceProvider().getHostResourcesCalculator(),
+ new EmptyProvisionServiceProvider(),
curator,
clock,
zone,
@@ -73,7 +73,6 @@ public class RetiredExpirerTest {
DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
- false,
0, 1000);
private final NodeRepositoryProvisioner provisioner = new NodeRepositoryProvisioner(nodeRepository, zone, new MockProvisionServiceProvider(), new InMemoryFlagSource());
private final Orchestrator orchestrator = mock(Orchestrator.class);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java
index e38f3dbda8d..cd1b7fdc2ce 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java
@@ -256,7 +256,7 @@ public class SpareCapacityMaintainerTest {
private SpareCapacityMaintainerTester(int maxIterations) {
NodeFlavors flavors = new NodeFlavors(new FlavorConfigBuilder().build());
nodeRepository = new NodeRepository(flavors,
- new EmptyProvisionServiceProvider().getHostResourcesCalculator(),
+ new EmptyProvisionServiceProvider(),
new MockCurator(),
new ManualClock(),
new Zone(Environment.prod, RegionName.from("us-east-3")),
@@ -264,7 +264,6 @@ public class SpareCapacityMaintainerTest {
DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
- false,
1, 1000);
deployer = new MockDeployer(nodeRepository);
maintainer = new SpareCapacityMaintainer(deployer, nodeRepository, metric, Duration.ofDays(1), maxIterations);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisionTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisionTest.java
index 697b1674822..41f13748a07 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisionTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisionTest.java
@@ -50,7 +50,7 @@ import static org.mockito.Mockito.verify;
public class DynamicDockerProvisionTest {
private static final Zone zone = new Zone(
- Cloud.builder().dynamicProvisioning(true).allowHostSharing(false).build(),
+ Cloud.builder().dynamicProvisioning(true).build(),
SystemName.main,
Environment.prod,
RegionName.from("us-east"));
@@ -111,7 +111,6 @@ public class DynamicDockerProvisionTest {
@Test
public void node_indices_are_unique_even_when_a_node_is_left_in_reserved_state() {
- ProvisioningTester tester = new ProvisioningTester.Builder().zone(zone).build();
NodeResources resources = new NodeResources(10, 10, 10, 10);
ApplicationId app = ProvisioningTester.makeApplicationId();
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
index 46efadd6560..257a3ce43d2 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
@@ -100,9 +100,9 @@ public class ProvisioningTester {
this.curator = curator;
this.nodeFlavors = nodeFlavors;
this.clock = new ManualClock();
- ProvisionServiceProvider provisionServiceProvider = new MockProvisionServiceProvider(loadBalancerService, hostProvisioner);
+ ProvisionServiceProvider provisionServiceProvider = new MockProvisionServiceProvider(loadBalancerService, hostProvisioner, resourcesCalculator);
this.nodeRepository = new NodeRepository(nodeFlavors,
- resourcesCalculator,
+ provisionServiceProvider,
curator,
clock,
zone,
@@ -110,7 +110,6 @@ public class ProvisioningTester {
DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
flagSource,
true,
- provisionServiceProvider.getHostProvisioner().isPresent(),
spareCount, 1000);
this.orchestrator = orchestrator;
this.provisioner = new NodeRepositoryProvisioner(nodeRepository, zone, provisionServiceProvider, flagSource);