summaryrefslogtreecommitdiff
path: root/libpod/container.go
diff options
context:
space:
mode:
Diffstat (limited to 'libpod/container.go')
-rw-r--r--libpod/container.go19
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