From 97b05619f1b96a860f7dd6990243f4475bb3c33b Mon Sep 17 00:00:00 2001 From: Daniel Smith Date: Tue, 26 Aug 2014 22:08:06 -0700 Subject: [PATCH] Remove deprecated bits from kubelet --- pkg/kubelet/kubelet.go | 32 ++++++++++------------------- pkg/kubelet/kubelet_test.go | 40 ++++++++++++++----------------------- 2 files changed, 26 insertions(+), 46 deletions(-) diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index 9691ebf7ef1..f6bc2734fcb 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -198,29 +198,20 @@ func makeEnvironmentVariables(container *api.Container) []string { return result } -func makeVolumesAndBinds(pod *Pod, container *api.Container, podVolumes volumeMap) (map[string]struct{}, []string) { - volumes := map[string]struct{}{} +func makeBinds(pod *Pod, container *api.Container, podVolumes volumeMap) []string { binds := []string{} - for _, volume := range container.VolumeMounts { - var basePath string - if vol, ok := podVolumes[volume.Name]; ok { - // Host volumes are not Docker volumes and are directly mounted from the host. - basePath = fmt.Sprintf("%s:%s", vol.GetPath(), volume.MountPath) - } else if volume.MountType == "HOST" { - // DEPRECATED: VolumeMount.MountType will be handled by the Volume struct. - basePath = fmt.Sprintf("%s:%s", volume.MountPath, volume.MountPath) - } else { - // TODO(jonesdl) This clause should be deleted and an error should be thrown. The default - // behavior is now supported by the EmptyDirectory type. - volumes[volume.MountPath] = struct{}{} - basePath = fmt.Sprintf("/exports/%s/%s:%s", GetPodFullName(pod), volume.Name, volume.MountPath) + for _, mount := range container.VolumeMounts { + vol, ok := podVolumes[mount.Name] + if !ok { + continue } - if volume.ReadOnly { - basePath += ":ro" + b := fmt.Sprintf("%s:%s", vol.GetPath(), mount.MountPath) + if mount.ReadOnly { + b += ":ro" } - binds = append(binds, basePath) + binds = append(binds, b) } - return volumes, binds + return binds } func makePortsAndBindings(container *api.Container) (map[docker.Port]struct{}, map[docker.Port][]docker.PortBinding) { @@ -294,7 +285,7 @@ func (kl *Kubelet) mountExternalVolumes(manifest *api.ContainerManifest) (volume // Run a single container from a pod. Returns the docker container ID func (kl *Kubelet) runContainer(pod *Pod, container *api.Container, podVolumes volumeMap, netMode string) (id DockerID, err error) { envVariables := makeEnvironmentVariables(container) - volumes, binds := makeVolumesAndBinds(pod, container, podVolumes) + binds := makeBinds(pod, container, podVolumes) exposedPorts, portBindings := makePortsAndBindings(container) opts := docker.CreateContainerOptions{ @@ -307,7 +298,6 @@ func (kl *Kubelet) runContainer(pod *Pod, container *api.Container, podVolumes v Image: container.Image, Memory: int64(container.Memory), CpuShares: int64(milliCPUToShares(container.CPU)), - Volumes: volumes, WorkingDir: container.WorkingDir, }, } diff --git a/pkg/kubelet/kubelet_test.go b/pkg/kubelet/kubelet_test.go index 71ae0c83f49..bdbeeb9e886 100644 --- a/pkg/kubelet/kubelet_test.go +++ b/pkg/kubelet/kubelet_test.go @@ -671,17 +671,10 @@ func TestMakeVolumesAndBinds(t *testing.T) { Name: "disk", ReadOnly: false, }, - { - MountPath: "/mnt/path2", - Name: "disk2", - ReadOnly: true, - MountType: "LOCAL", - }, { MountPath: "/mnt/path3", - Name: "disk3", - ReadOnly: false, - MountType: "HOST", + Name: "disk", + ReadOnly: true, }, { MountPath: "/mnt/path4", @@ -701,24 +694,21 @@ func TestMakeVolumesAndBinds(t *testing.T) { Namespace: "test", } - podVolumes := make(volumeMap) - podVolumes["disk4"] = &volume.HostDirectory{"/mnt/host"} - podVolumes["disk5"] = &volume.EmptyDirectory{"disk5", "podID", "/var/lib/kubelet"} - - volumes, binds := makeVolumesAndBinds(&pod, &container, podVolumes) - - expectedVolumes := []string{"/mnt/path", "/mnt/path2"} - expectedBinds := []string{"/exports/pod.test/disk:/mnt/path", "/exports/pod.test/disk2:/mnt/path2:ro", "/mnt/path3:/mnt/path3", - "/mnt/host:/mnt/path4", "/var/lib/kubelet/podID/volumes/empty/disk5:/mnt/path5"} - - if len(volumes) != len(expectedVolumes) { - t.Errorf("Unexpected volumes. Expected %#v got %#v. Container was: %#v", expectedVolumes, volumes, container) + podVolumes := volumeMap{ + "disk": &volume.HostDirectory{"/mnt/disk"}, + "disk4": &volume.HostDirectory{"/mnt/host"}, + "disk5": &volume.EmptyDirectory{"disk5", "podID", "/var/lib/kubelet"}, } - for _, expectedVolume := range expectedVolumes { - if _, ok := volumes[expectedVolume]; !ok { - t.Errorf("Volumes map is missing key: %s. %#v", expectedVolume, volumes) - } + + binds := makeBinds(&pod, &container, podVolumes) + + expectedBinds := []string{ + "/mnt/disk:/mnt/path", + "/mnt/disk:/mnt/path3:ro", + "/mnt/host:/mnt/path4", + "/var/lib/kubelet/podID/volumes/empty/disk5:/mnt/path5", } + if len(binds) != len(expectedBinds) { t.Errorf("Unexpected binds: Expected %#v got %#v. Container was: %#v", expectedBinds, binds, container) }