If mountPath is missing, prefix with root dir.
This commit is contained in:
parent
c3ed0f2663
commit
1b7f028ecb
@ -111,6 +111,23 @@ func (kl *Kubelet) makeDevices(pod *v1.Pod, container *v1.Container) ([]kubecont
|
|||||||
return devices, nil
|
return devices, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func makeAbsolutePath(goos, path string) string {
|
||||||
|
if goos != "windows" {
|
||||||
|
return "/" + path
|
||||||
|
}
|
||||||
|
// These are all for windows
|
||||||
|
// If there is a colon, give up.
|
||||||
|
if strings.Contains(path, ":") {
|
||||||
|
return path
|
||||||
|
}
|
||||||
|
// If there is a slash, but no drive, add 'c:'
|
||||||
|
if strings.HasPrefix(path, "/") || strings.HasPrefix(path, "\\") {
|
||||||
|
return "c:" + path
|
||||||
|
}
|
||||||
|
// Otherwise, add 'c:\'
|
||||||
|
return "c:\\" + path
|
||||||
|
}
|
||||||
|
|
||||||
// makeMounts determines the mount points for the given container.
|
// makeMounts determines the mount points for the given container.
|
||||||
func makeMounts(pod *v1.Pod, podDir string, container *v1.Container, hostName, hostDomain, podIP string, podVolumes kubecontainer.VolumeMap) ([]kubecontainer.Mount, error) {
|
func makeMounts(pod *v1.Pod, podDir string, container *v1.Container, hostName, hostDomain, podIP string, podVolumes kubecontainer.VolumeMap) ([]kubecontainer.Mount, error) {
|
||||||
// Kubernetes only mounts on /etc/hosts if:
|
// Kubernetes only mounts on /etc/hosts if:
|
||||||
@ -187,9 +204,9 @@ func makeMounts(pod *v1.Pod, podDir string, container *v1.Container, hostName, h
|
|||||||
if (strings.HasPrefix(hostPath, "/") || strings.HasPrefix(hostPath, "\\")) && !strings.Contains(hostPath, ":") {
|
if (strings.HasPrefix(hostPath, "/") || strings.HasPrefix(hostPath, "\\")) && !strings.Contains(hostPath, ":") {
|
||||||
hostPath = "c:" + hostPath
|
hostPath = "c:" + hostPath
|
||||||
}
|
}
|
||||||
if (strings.HasPrefix(containerPath, "/") || strings.HasPrefix(containerPath, "\\")) && !strings.Contains(containerPath, ":") {
|
}
|
||||||
containerPath = "c:" + containerPath
|
if !filepath.IsAbs(containerPath) {
|
||||||
}
|
containerPath = makeAbsolutePath(runtime.GOOS, containerPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
propagation, err := translateMountPropagation(mount.MountPropagation)
|
propagation, err := translateMountPropagation(mount.MountPropagation)
|
||||||
|
@ -49,6 +49,52 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/kubelet/server/remotecommand"
|
"k8s.io/kubernetes/pkg/kubelet/server/remotecommand"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func TestMakeAbsolutePath(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
goos string
|
||||||
|
path string
|
||||||
|
expectedPath string
|
||||||
|
name string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
goos: "linux",
|
||||||
|
path: "non-absolute/path",
|
||||||
|
expectedPath: "/non-absolute/path",
|
||||||
|
name: "basic linux",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
goos: "windows",
|
||||||
|
path: "some\\path",
|
||||||
|
expectedPath: "c:\\some\\path",
|
||||||
|
name: "basic windows",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
goos: "windows",
|
||||||
|
path: "/some/path",
|
||||||
|
expectedPath: "c:/some/path",
|
||||||
|
name: "linux path on windows",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
goos: "windows",
|
||||||
|
path: "\\some\\path",
|
||||||
|
expectedPath: "c:\\some\\path",
|
||||||
|
name: "windows path no drive",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
goos: "windows",
|
||||||
|
path: "\\:\\some\\path",
|
||||||
|
expectedPath: "\\:\\some\\path",
|
||||||
|
name: "windows path with colon",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, test := range tests {
|
||||||
|
path := makeAbsolutePath(test.goos, test.path)
|
||||||
|
if path != test.expectedPath {
|
||||||
|
t.Errorf("[%s] Expected %s saw %s", test.name, test.expectedPath, path)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestMakeMounts(t *testing.T) {
|
func TestMakeMounts(t *testing.T) {
|
||||||
bTrue := true
|
bTrue := true
|
||||||
propagationHostToContainer := v1.MountPropagationHostToContainer
|
propagationHostToContainer := v1.MountPropagationHostToContainer
|
||||||
|
Loading…
Reference in New Issue
Block a user