diff options
author | Håkon Hallingstad <hakon@verizonmedia.com> | 2020-10-30 13:58:29 +0100 |
---|---|---|
committer | Håkon Hallingstad <hakon@verizonmedia.com> | 2020-10-30 13:58:29 +0100 |
commit | 91a75a3d9e302a189cd2793b7585a656135dabc9 (patch) | |
tree | aa65295d1203bebfab3a54b60c4d710c50d28601 /node-repository/src | |
parent | 75ada372a00146982e109260cd4c78439519eded (diff) |
Ignore exclusive=true outside prod only without required=true
Diffstat (limited to 'node-repository/src')
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); } |