summaryrefslogtreecommitdiffstats
path: root/node-admin/src
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@verizonmedia.com>2021-04-01 12:11:45 +0200
committerHåkon Hallingstad <hakon@verizonmedia.com>2021-04-01 12:11:45 +0200
commit9637c5f0de67dfe6fa54489177f9e6cda47f4165 (patch)
tree954a5e3e99f475d0b03e8415db7623a76be88f62 /node-admin/src
parent1e5e5325e02f79a9875b83fb1e8edd9919844f3a (diff)
Resolve container-cpu-cap based on cluster type and ID
Diffstat (limited to 'node-admin/src')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java26
1 files changed, 19 insertions, 7 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
index f401b614637..ae4841f4713 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
@@ -379,13 +379,25 @@ public class NodeAgentImpl implements NodeAgent {
}
private ContainerResources getContainerResources(NodeAgentContext context) {
- double cpuCap = noCpuCap(context.zone()) ?
- 0 :
- context.node().owner()
- .map(appId -> containerCpuCap.with(FetchVector.Dimension.APPLICATION_ID, appId.serializedForm()))
- .orElse(containerCpuCap)
- .with(FetchVector.Dimension.HOSTNAME, context.node().hostname())
- .value() * context.vcpuOnThisHost();
+ final double cpuCap;
+ if (noCpuCap(context.zone())) {
+ cpuCap = 0.0;
+ } else {
+ DoubleFlag containerCpuCapFlag = containerCpuCap.with(FetchVector.Dimension.HOSTNAME, context.node().hostname());;
+
+ if (context.node().owner().isPresent()) {
+ containerCpuCapFlag = containerCpuCapFlag.with(FetchVector.Dimension.APPLICATION_ID,
+ context.node().owner().get().serializedForm());
+ }
+
+ if (context.node().membership().isPresent()) {
+ containerCpuCapFlag = containerCpuCapFlag
+ .with(FetchVector.Dimension.CLUSTER_TYPE, context.node().membership().get().type().value())
+ .with(FetchVector.Dimension.CLUSTER_ID, context.node().membership().get().clusterId());
+ }
+
+ cpuCap = context.vcpuOnThisHost() * containerCpuCapFlag.value();
+ }
return ContainerResources.from(cpuCap, context.vcpuOnThisHost(), context.node().memoryGb());
}