diff options
author | valerijf <valerijf@yahoo-inc.com> | 2017-03-28 11:13:24 +0200 |
---|---|---|
committer | valerijf <valerijf@yahoo-inc.com> | 2017-03-28 12:34:13 +0200 |
commit | 95b8abfaf80e31ce843e57d348f7fb8444a25a5f (patch) | |
tree | 775d4dc4d550288c2e61e14581c1be38512a0fa2 /docker-api | |
parent | 5de34d52481b6bb289f0775d087dcef82c20f350 (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.java | 9 | ||||
-rw-r--r-- | docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Docker.java | 1 |
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); |