From da3bafc2b3609153a2c3c12c29c3f7ed0615691a Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Thu, 28 May 2020 22:28:08 +0200 Subject: Use real resource forecast in initial deployment --- .../hosted/provision/autoscale/AllocatableClusterResources.java | 6 ++++-- .../hosted/provision/provisioning/NodeRepositoryProvisioner.java | 4 +++- .../hosted/provision/provisioning/DynamicDockerProvisionTest.java | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) (limited to 'node-repository') 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 84f0b962d34..59dbe4bb8d4 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 @@ -32,10 +32,12 @@ public class AllocatableClusterResources { private final double fulfilment; /** Fake allocatable resources from requested capacity */ - public AllocatableClusterResources(ClusterResources requested, ClusterSpec.Type clusterType) { + public AllocatableClusterResources(ClusterResources requested, + ClusterSpec.Type clusterType, + NodeRepository nodeRepository) { this.nodes = requested.nodes(); this.groups = requested.groups(); - this.realResources = requested.nodeResources(); // we don't know + this.realResources = nodeRepository.resourcesCalculator().requestToReal(requested.nodeResources()); this.advertisedResources = requested.nodeResources(); this.clusterType = clusterType; this.fulfilment = 1; diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java index 3ddfb646cf3..59fca955a68 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java @@ -159,7 +159,9 @@ public class NodeRepositoryProvisioner implements Provisioner { .not().removable() .asList(); AllocatableClusterResources currentResources = - nodes.isEmpty() ? new AllocatableClusterResources(requested.minResources(), clusterSpec.type()) // new deployment: Use min + nodes.isEmpty() ? new AllocatableClusterResources(requested.minResources(), + clusterSpec.type(), + nodeRepository) // new deployment: Use min : new AllocatableClusterResources(nodes, nodeRepository); return within(Limits.of(requested), clusterSpec.isExclusive(), currentResources); } 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 ea0d78e3015..25387a2746c 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 @@ -192,14 +192,14 @@ public class DynamicDockerProvisionTest { tester.activate(app1, cluster1, Capacity.from(resources(2, 1, 2, 20, 40), resources(4, 1, 2, 20, 40))); tester.assertNodes("Allocation specifies memory in the advertised amount", - 3, 1, 2, 20, 40, + 2, 1, 2, 20, 40, app1, cluster1); // Redeploy the same tester.activate(app1, cluster1, Capacity.from(resources(2, 1, 2, 20, 40), resources(4, 1, 2, 20, 40))); tester.assertNodes("Allocation specifies memory in the advertised amount", - 3, 1, 2, 20, 40, + 2, 1, 2, 20, 40, app1, cluster1); } -- cgit v1.2.3