diff options
Diffstat (limited to 'libpod/container.go')
-rw-r--r-- | libpod/container.go | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/libpod/container.go b/libpod/container.go index 89b042d12..7003396ac 100644 --- a/libpod/container.go +++ b/libpod/container.go @@ -81,6 +81,8 @@ const ( UserNS LinuxNS = iota // UTSNS is the UTS namespace UTSNS LinuxNS = iota + // CgroupNS is the CGroup namespace + CgroupNS LinuxNS = iota ) // String returns a string representation of a Linux namespace @@ -101,6 +103,8 @@ func (ns LinuxNS) String() string { return "user" case UTSNS: return "uts" + case CgroupNS: + return "cgroup" default: return "unknown" } @@ -920,6 +924,21 @@ func (c *Container) Init() (err error) { return err } } + if c.config.CgroupNsCtr != "" { + cgroupCtr, err := c.runtime.state.Container(c.config.CgroupNsCtr) + if err != nil { + return err + } + + nsPath, err := cgroupCtr.NamespacePath(CgroupNS) + if err != nil { + return err + } + + if err := g.AddOrReplaceLinuxNamespace(spec.CgroupNamespace, nsPath); err != nil { + return err + } + } c.runningSpec = g.Spec() c.runningSpec.Root.Path = c.state.Mountpoint |