Support mount propagation

fixex #185

Signed-off-by: Yanqiang Miao <miao.yanqiang@zte.com.cn>
This commit is contained in:
Yanqiang Miao
2017-09-06 16:48:23 +08:00
parent 59e75d8c5e
commit 9da460ec0a
7 changed files with 451 additions and 271 deletions

View File

@@ -481,7 +481,19 @@ func addOCIBindMounts(g *generate.Generator, mounts []*runtime.Mount, mountLabel
for _, mount := range mounts {
dst := mount.GetContainerPath()
src := mount.GetHostPath()
options := []string{"rbind", "rprivate"}
options := []string{"rbind"}
switch mount.GetPropagation() {
case runtime.MountPropagation_PROPAGATION_PRIVATE:
options = append(options, "rprivate")
case runtime.MountPropagation_PROPAGATION_BIDIRECTIONAL:
options = append(options, "rshared")
case runtime.MountPropagation_PROPAGATION_HOST_TO_CONTAINER:
options = append(options, "rslave")
default:
glog.Warningf("Unknown propagation mode for hostPath %q", mount.HostPath)
options = append(options, "rprivate")
}
if mount.GetReadonly() {
options = append(options, "ro")
} else {