diff options
author | Håkon Hallingstad <hakon@verizonmedia.com> | 2021-04-01 12:11:45 +0200 |
---|---|---|
committer | Håkon Hallingstad <hakon@verizonmedia.com> | 2021-04-01 12:11:45 +0200 |
commit | 9637c5f0de67dfe6fa54489177f9e6cda47f4165 (patch) | |
tree | 954a5e3e99f475d0b03e8415db7623a76be88f62 /node-admin | |
parent | 1e5e5325e02f79a9875b83fb1e8edd9919844f3a (diff) |
Resolve container-cpu-cap based on cluster type and ID
Diffstat (limited to 'node-admin')
-rw-r--r-- | node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java | 26 |
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()); } |