From deaa0e569d3a1ad51315baf6581c0b5930d42699 Mon Sep 17 00:00:00 2001 From: Victor Marmol Date: Mon, 18 May 2015 23:53:41 -0700 Subject: [PATCH] Set CPU and memory in Create() and Start(). This allows for backwards and forwards compatability since old Docker versions expect it in Create() and newer ones do so in Start(). Fixes #8358 --- pkg/kubelet/dockertools/manager.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pkg/kubelet/dockertools/manager.go b/pkg/kubelet/dockertools/manager.go index 924945c887d..7e1a9692cf8 100644 --- a/pkg/kubelet/dockertools/manager.go +++ b/pkg/kubelet/dockertools/manager.go @@ -573,6 +573,8 @@ func (dm *DockerManager) runContainer( labels[kubernetesContainerLabel] = container.Name } } + memoryLimit := container.Resources.Limits.Memory().Value() + cpuShares := milliCPUToShares(container.Resources.Limits.Cpu().MilliValue()) dockerOpts := docker.CreateContainerOptions{ Name: BuildDockerName(dockerName, container), Config: &docker.Config{ @@ -580,10 +582,11 @@ func (dm *DockerManager) runContainer( ExposedPorts: exposedPorts, Hostname: containerHostname, Image: container.Image, - Memory: container.Resources.Limits.Memory().Value(), - CPUShares: milliCPUToShares(container.Resources.Limits.Cpu().MilliValue()), - WorkingDir: container.WorkingDir, - Labels: labels, + // Memory and CPU are set here for older versions of Docker (pre-1.6). + Memory: memoryLimit, + CPUShares: cpuShares, + WorkingDir: container.WorkingDir, + Labels: labels, }, } @@ -630,6 +633,9 @@ func (dm *DockerManager) runContainer( Binds: binds, NetworkMode: netMode, IpcMode: ipcMode, + // Memory and CPU are set here for newer versions of Docker (1.6+). + Memory: memoryLimit, + CPUShares: cpuShares, } if len(opts.DNS) > 0 { hc.DNS = opts.DNS