summaryrefslogtreecommitdiffstats
path: root/docker-api
diff options
context:
space:
mode:
authorvalerijf <valerijf@yahoo-inc.com>2017-03-28 11:13:24 +0200
committervalerijf <valerijf@yahoo-inc.com>2017-03-28 12:34:13 +0200
commit95b8abfaf80e31ce843e57d348f7fb8444a25a5f (patch)
tree775d4dc4d550288c2e61e14581c1be38512a0fa2 /docker-api
parent5de34d52481b6bb289f0775d087dcef82c20f350 (diff)
Set CPU shares when starting a container
Diffstat (limited to 'docker-api')
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java9
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Docker.java1
2 files changed, 10 insertions, 0 deletions
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java
index 27b2a6b1d77..dba7b157892 100644
--- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java
+++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java
@@ -32,6 +32,7 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand {
private final List<Ulimit> ulimits = new ArrayList<>();
private Optional<Long> memoryInB = Optional.empty();
+ private Optional<Integer> cpuShares = Optional.empty();
private Optional<String> networkMode = Optional.empty();
private Optional<String> ipv4Address = Optional.empty();
private Optional<String> ipv6Address = Optional.empty();
@@ -107,6 +108,12 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand {
}
@Override
+ public Docker.CreateContainerCommand withCpuShares(int shares) {
+ cpuShares = Optional.of(shares);
+ return this;
+ }
+
+ @Override
public Docker.CreateContainerCommand withNetworkMode(String mode) {
networkMode = Optional.of(mode);
return this;
@@ -150,6 +157,7 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand {
.ifPresent(mode -> containerCmd.withMacAddress(generateRandomMACAddress()));
memoryInB.ifPresent(containerCmd::withMemory);
+ cpuShares.ifPresent(containerCmd::withCpuShares);
networkMode.ifPresent(containerCmd::withNetworkMode);
ipv4Address.ifPresent(containerCmd::withIpv4Address);
ipv6Address.ifPresent(containerCmd::withIpv6Address);
@@ -189,6 +197,7 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand {
+ toRepeatedOption("--cap-add", addCapabilitiesList)
+ toRepeatedOption("--cap-drop", dropCapabilitiesList)
+ toOptionalOption("--memory", memoryInB)
+ + toOptionalOption("--cpu-shares", cpuShares)
+ toOptionalOption("--net", networkMode)
+ toOptionalOption("--ip", ipv4Address)
+ toOptionalOption("--ip6", ipv6Address)
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Docker.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Docker.java
index f61998aba4c..b628bd77d91 100644
--- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Docker.java
+++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Docker.java
@@ -18,6 +18,7 @@ public interface Docker {
CreateContainerCommand withEnvironment(String name, String value);
CreateContainerCommand withVolume(String path, String volumePath);
CreateContainerCommand withMemoryInMb(long megaBytes);
+ CreateContainerCommand withCpuShares(int shares);
CreateContainerCommand withNetworkMode(String mode);
CreateContainerCommand withIpAddress(InetAddress address);
CreateContainerCommand withUlimit(String name, int softLimit, int hardLimit);