From dacc363605992258bc3e1d0bfe9ac3275d95a957 Mon Sep 17 00:00:00 2001 From: Paulo Pires Date: Wed, 11 Jan 2017 10:37:53 +0000 Subject: [PATCH 1/2] dockertools: fix Windows implementation. Fixes #39005 Fixes #39714 --- pkg/kubelet/dockertools/docker_manager.go | 2 +- pkg/kubelet/dockertools/docker_manager_linux.go | 3 ++- pkg/kubelet/dockertools/docker_manager_unsupported.go | 7 ++++--- pkg/kubelet/dockertools/docker_manager_windows.go | 7 ++++--- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/pkg/kubelet/dockertools/docker_manager.go b/pkg/kubelet/dockertools/docker_manager.go index f48abb33035..447bf1108ef 100644 --- a/pkg/kubelet/dockertools/docker_manager.go +++ b/pkg/kubelet/dockertools/docker_manager.go @@ -709,7 +709,7 @@ func (dm *DockerManager) runContainer( SecurityOpt: fmtSecurityOpts, } - updateHostConfig(hc) + updateHostConfig(hc, opts) // Set sysctls if requested if container.Name == PodInfraContainerName { diff --git a/pkg/kubelet/dockertools/docker_manager_linux.go b/pkg/kubelet/dockertools/docker_manager_linux.go index 920c58ae990..b0d7b67a100 100644 --- a/pkg/kubelet/dockertools/docker_manager_linux.go +++ b/pkg/kubelet/dockertools/docker_manager_linux.go @@ -23,10 +23,11 @@ import ( dockercontainer "github.com/docker/engine-api/types/container" "k8s.io/kubernetes/pkg/api/v1" + kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" ) // These two functions are OS specific (for now at least) -func updateHostConfig(config *dockercontainer.HostConfig) { +func updateHostConfig(hc *dockercontainer.HostConfig, opts *kubecontainer.RunContainerOptions) { // no-op, there is a windows implementation that is different. } diff --git a/pkg/kubelet/dockertools/docker_manager_unsupported.go b/pkg/kubelet/dockertools/docker_manager_unsupported.go index 1a095294a90..ecfe5fce112 100644 --- a/pkg/kubelet/dockertools/docker_manager_unsupported.go +++ b/pkg/kubelet/dockertools/docker_manager_unsupported.go @@ -19,14 +19,15 @@ limitations under the License. package dockertools import ( - "k8s.io/kubernetes/pkg/api/v1" - dockertypes "github.com/docker/engine-api/types" dockercontainer "github.com/docker/engine-api/types/container" + + "k8s.io/kubernetes/pkg/api/v1" + kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" ) // These two functions are OS specific (for now at least) -func updateHostConfig(config *dockercontainer.HostConfig) { +func updateHostConfig(hc *dockercontainer.HostConfig, opts *kubecontainer.RunContainerOptions) { } func DefaultMemorySwap() int64 { diff --git a/pkg/kubelet/dockertools/docker_manager_windows.go b/pkg/kubelet/dockertools/docker_manager_windows.go index 31ba2d6f812..4a9ab80693e 100644 --- a/pkg/kubelet/dockertools/docker_manager_windows.go +++ b/pkg/kubelet/dockertools/docker_manager_windows.go @@ -21,14 +21,15 @@ package dockertools import ( "os" - "k8s.io/kubernetes/pkg/api/v1" - dockertypes "github.com/docker/engine-api/types" dockercontainer "github.com/docker/engine-api/types/container" + + "k8s.io/kubernetes/pkg/api/v1" + kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" ) // These two functions are OS specific (for now at least) -func updateHostConfig(config *dockercontainer.HostConfig) { +func updateHostConfig(hc *dockercontainer.HostConfig, opts *kubecontainer.RunContainerOptions) { // There is no /etc/resolv.conf in Windows, DNS and DNSSearch options would have to be passed to Docker runtime instead hc.DNS = opts.DNS hc.DNSSearch = opts.DNSSearch From f4edaf2b8c32463d6485e2c12b7fd776aef948bc Mon Sep 17 00:00:00 2001 From: Paulo Pires Date: Wed, 11 Jan 2017 10:38:01 +0000 Subject: [PATCH 2/2] dockertools: disable swap on Linux since it's unsupported. Refs #39005 --- pkg/kubelet/dockertools/docker_manager_linux.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/kubelet/dockertools/docker_manager_linux.go b/pkg/kubelet/dockertools/docker_manager_linux.go index b0d7b67a100..333ab4673b8 100644 --- a/pkg/kubelet/dockertools/docker_manager_linux.go +++ b/pkg/kubelet/dockertools/docker_manager_linux.go @@ -32,7 +32,7 @@ func updateHostConfig(hc *dockercontainer.HostConfig, opts *kubecontainer.RunCon } func DefaultMemorySwap() int64 { - return -1 + return 0 } func getContainerIP(container *dockertypes.ContainerJSON) string {