diff --git a/pkg/kubelet/container/runtime.go b/pkg/kubelet/container/runtime.go index 70fd30e479c..e4f16dc892b 100644 --- a/pkg/kubelet/container/runtime.go +++ b/pkg/kubelet/container/runtime.go @@ -23,6 +23,7 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/types" + "github.com/GoogleCloudPlatform/kubernetes/pkg/volume" ) type Version interface { @@ -205,6 +206,8 @@ type RunContainerOptions struct { CgroupParent string } +type VolumeMap map[string]volume.Volume + type Pods []*Pod // FindPodByID finds and returns a pod in the pod list by UID. It will return an empty pod diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index b3c04ade5c8..a519836b5d7 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -93,8 +93,6 @@ type SyncHandler interface { type SourcesReadyFn func() bool -type volumeMap map[string]volume.Volume - // Wait for the container runtime to be up with a timeout. func waitUntilRuntimeIsUp(cr kubecontainer.Runtime, timeout time.Duration) error { var err error = nil @@ -645,7 +643,7 @@ func (kl *Kubelet) syncNodeStatus() { } } -func makeBinds(container *api.Container, podVolumes volumeMap) (binds []string) { +func makeBinds(container *api.Container, podVolumes kubecontainer.VolumeMap) (binds []string) { for _, mount := range container.VolumeMounts { vol, ok := podVolumes[mount.Name] if !ok { diff --git a/pkg/kubelet/kubelet_test.go b/pkg/kubelet/kubelet_test.go index 44b06c4f88a..88e5487c38f 100644 --- a/pkg/kubelet/kubelet_test.go +++ b/pkg/kubelet/kubelet_test.go @@ -1307,7 +1307,7 @@ func TestMakeVolumesAndBinds(t *testing.T) { }, } - podVolumes := volumeMap{ + podVolumes := kubecontainer.VolumeMap{ "disk": &stubVolume{"/mnt/disk"}, "disk4": &stubVolume{"/mnt/host"}, "disk5": &stubVolume{"/var/lib/kubelet/podID/volumes/empty/disk5"}, @@ -3990,7 +3990,7 @@ func TestGetPodCreationFailureReason(t *testing.T) { } pods := []*api.Pod{pod} kubelet.podManager.SetPods(pods) - kubelet.volumeManager.SetVolumes(pod.UID, volumeMap{}) + kubelet.volumeManager.SetVolumes(pod.UID, kubecontainer.VolumeMap{}) // TODO: Move this test to dockertools so that we don't have to do the hacky // type assertion here. dm := kubelet.containerRuntime.(*dockertools.DockerManager) diff --git a/pkg/kubelet/volume_manager.go b/pkg/kubelet/volume_manager.go index 46cc3fe9af9..d615f5b340b 100644 --- a/pkg/kubelet/volume_manager.go +++ b/pkg/kubelet/volume_manager.go @@ -19,6 +19,7 @@ package kubelet import ( "sync" + kubecontainer "github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/container" "github.com/GoogleCloudPlatform/kubernetes/pkg/types" ) @@ -27,18 +28,18 @@ import ( // take care of the volumePlugins. type volumeManager struct { lock sync.RWMutex - volumeMaps map[types.UID]volumeMap + volumeMaps map[types.UID]kubecontainer.VolumeMap } func newVolumeManager() *volumeManager { vm := &volumeManager{} - vm.volumeMaps = make(map[types.UID]volumeMap) + vm.volumeMaps = make(map[types.UID]kubecontainer.VolumeMap) return vm } // SetVolumes sets the volume map for a pod. // TODO(yifan): Currently we assume the volume is already mounted, so we only do a book keeping here. -func (vm *volumeManager) SetVolumes(podUID types.UID, podVolumes volumeMap) { +func (vm *volumeManager) SetVolumes(podUID types.UID, podVolumes kubecontainer.VolumeMap) { vm.lock.Lock() defer vm.lock.Unlock() vm.volumeMaps[podUID] = podVolumes @@ -46,7 +47,7 @@ func (vm *volumeManager) SetVolumes(podUID types.UID, podVolumes volumeMap) { // GetVolumes returns the volume map which are already mounted on the host machine // for a pod. -func (vm *volumeManager) GetVolumes(podUID types.UID) (volumeMap, bool) { +func (vm *volumeManager) GetVolumes(podUID types.UID) (kubecontainer.VolumeMap, bool) { vm.lock.RLock() defer vm.lock.RUnlock() vol, ok := vm.volumeMaps[podUID] diff --git a/pkg/kubelet/volumes.go b/pkg/kubelet/volumes.go index ee437d643df..96a6153abf3 100644 --- a/pkg/kubelet/volumes.go +++ b/pkg/kubelet/volumes.go @@ -23,6 +23,7 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/client" + kubecontainer "github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/container" "github.com/GoogleCloudPlatform/kubernetes/pkg/types" "github.com/GoogleCloudPlatform/kubernetes/pkg/util" "github.com/GoogleCloudPlatform/kubernetes/pkg/util/mount" @@ -96,8 +97,8 @@ func (kl *Kubelet) newVolumeBuilderFromPlugins(spec *volume.Spec, podRef *api.Ob return builder, nil } -func (kl *Kubelet) mountExternalVolumes(pod *api.Pod) (volumeMap, error) { - podVolumes := make(volumeMap) +func (kl *Kubelet) mountExternalVolumes(pod *api.Pod) (kubecontainer.VolumeMap, error) { + podVolumes := make(kubecontainer.VolumeMap) for i := range pod.Spec.Volumes { volSpec := &pod.Spec.Volumes[i]