Skip to content

Commit

Permalink
Create subPaths and set their permissions like we do mountPaths
Browse files Browse the repository at this point in the history
  • Loading branch information
wongma7 committed Apr 21, 2017
1 parent d6f034d commit 21871aa
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions pkg/kubelet/kubelet_pods.go
Expand Up @@ -135,7 +135,28 @@ func makeMounts(pod *v1.Pod, podDir string, container *v1.Container, hostName, h
return nil, err
}
if mount.SubPath != "" {
fileinfo, err := os.Lstat(hostPath)
if err != nil {
return nil, err
}
perm := fileinfo.Mode()

hostPath = filepath.Join(hostPath, mount.SubPath)

// Create the sub path now because if it's auto-created later when referenced, it may have an
// incorrect ownership and mode. For example, the sub path directory must have at least g+rwx
// when the pod specifies an fsGroup, and if the directory is not created here, Docker will
// later auto-create it with the incorrect mode 0750
if err := os.MkdirAll(hostPath, perm); err != nil {
glog.Errorf("failed to mkdir:%s", hostPath)
return nil, err
}

// chmod the sub path because umask may have prevented us from making the sub path with the same
// permissions as the mounter path
if err := os.Chmod(hostPath, perm); err != nil {
return nil, err
}
}

// Docker Volume Mounts fail on Windows if it is not of the form C:/
Expand Down

0 comments on commit 21871aa

Please sign in to comment.