aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository/src
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@verizonmedia.com>2020-10-30 13:58:29 +0100
committerHåkon Hallingstad <hakon@verizonmedia.com>2020-10-30 13:58:29 +0100
commit91a75a3d9e302a189cd2793b7585a656135dabc9 (patch)
treeaa65295d1203bebfab3a54b60c4d710c50d28601 /node-repository/src
parent75ada372a00146982e109260cd4c78439519eded (diff)
Ignore exclusive=true outside prod only without required=true
Diffstat (limited to 'node-repository/src')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainer.java1
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java4
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java2
3 files changed, 3 insertions, 4 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainer.java
index e5f23a30968..d3967ed52c1 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainer.java
@@ -112,7 +112,6 @@ public class DynamicProvisioningMaintainer extends NodeRepositoryMaintainer {
});
}
-
/**
* Provision hosts to ensure there is room to allocate spare nodes.
*
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 f1a006b1359..597a48ad0c9 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
@@ -75,8 +75,8 @@ public class CapacityPolicies {
* Whether or not the nodes requested can share physical host with other applications.
* A security feature which only makes sense for prod.
*/
- public boolean decideExclusivity(boolean requestedExclusivity) {
- return requestedExclusivity && zone.environment() == Environment.prod;
+ public boolean decideExclusivity(Capacity capacity, boolean requestedExclusivity) {
+ return requestedExclusivity && (capacity.isRequired() || zone.environment() == Environment.prod);
}
/**
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 eaa1b2bfad3..731090b9cc7 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
@@ -107,7 +107,7 @@ public class NodeRepositoryProvisioner implements Provisioner {
int nodeCount = capacityPolicies.decideSize(target.nodes(), requested, cluster, application);
groups = Math.min(target.groups(), nodeCount); // cannot have more groups than nodes
resources = capacityPolicies.decideNodeResources(target.nodeResources(), requested, cluster);
- boolean exclusive = capacityPolicies.decideExclusivity(cluster.isExclusive());
+ boolean exclusive = capacityPolicies.decideExclusivity(requested, cluster.isExclusive());
nodeSpec = NodeSpec.from(nodeCount, resources, exclusive, requested.canFail());
logIfDownscaled(target.nodes(), nodeCount, cluster, logger);
}