mirror of https://github.com/containers/podman.git
Merge pull request #12828 from giuseppe/drop-check
libpod: drop check for empty pod cgroup
This commit is contained in:
commit
2c510146aa
|
@ -2728,6 +2728,24 @@ func isRootlessCgroupSet(cgroup string) bool {
|
|||
return cgroup != CgroupfsDefaultCgroupParent && filepath.Dir(cgroup) != CgroupfsDefaultCgroupParent
|
||||
}
|
||||
|
||||
func (c *Container) expectPodCgroup() (bool, error) {
|
||||
unified, err := cgroups.IsCgroup2UnifiedMode()
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
cgroupManager := c.CgroupManager()
|
||||
switch {
|
||||
case c.config.NoCgroups:
|
||||
return false, nil
|
||||
case cgroupManager == config.SystemdCgroupsManager:
|
||||
return !rootless.IsRootless() || unified, nil
|
||||
case cgroupManager == config.CgroupfsCgroupsManager:
|
||||
return !rootless.IsRootless(), nil
|
||||
default:
|
||||
return false, errors.Wrapf(define.ErrInvalidArg, "invalid cgroup mode %s requested for pods", cgroupManager)
|
||||
}
|
||||
}
|
||||
|
||||
// Get cgroup path in a format suitable for the OCI spec
|
||||
func (c *Container) getOCICgroupPath() (string, error) {
|
||||
unified, err := cgroups.IsCgroup2UnifiedMode()
|
||||
|
|
|
@ -356,7 +356,11 @@ func (r *Runtime) setupContainer(ctx context.Context, ctr *Container) (_ *Contai
|
|||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "error retrieving pod %s cgroup", pod.ID())
|
||||
}
|
||||
if podCgroup == "" {
|
||||
expectPodCgroup, err := ctr.expectPodCgroup()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if expectPodCgroup && podCgroup == "" {
|
||||
return nil, errors.Wrapf(define.ErrInternal, "pod %s cgroup is not set", pod.ID())
|
||||
}
|
||||
canUseCgroup := !rootless.IsRootless() || isRootlessCgroupSet(podCgroup)
|
||||
|
|
Loading…
Reference in New Issue