diff options
author | Valerij Fredriksen <freva@users.noreply.github.com> | 2020-10-19 20:42:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-19 20:42:18 +0200 |
commit | 18efc89af221c6bcc05764454ca363bed77e67aa (patch) | |
tree | c127705cb09fdeedade9d49eb145211b884506af | |
parent | b898bffea4055d8306cf5656957c8a6b4a0fd4c6 (diff) | |
parent | ea72fc4e53147f6bb03bca9237e1cacd0df468d1 (diff) |
Merge pull request #14957 from vespa-engine/freva/remove-allowHostSharing
Remove allow host sharing
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); |