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
|
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
|
// Get cgroup path in a format suitable for the OCI spec
|
||||||
func (c *Container) getOCICgroupPath() (string, error) {
|
func (c *Container) getOCICgroupPath() (string, error) {
|
||||||
unified, err := cgroups.IsCgroup2UnifiedMode()
|
unified, err := cgroups.IsCgroup2UnifiedMode()
|
||||||
|
|
|
@ -356,7 +356,11 @@ func (r *Runtime) setupContainer(ctx context.Context, ctr *Container) (_ *Contai
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrapf(err, "error retrieving pod %s cgroup", pod.ID())
|
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())
|
return nil, errors.Wrapf(define.ErrInternal, "pod %s cgroup is not set", pod.ID())
|
||||||
}
|
}
|
||||||
canUseCgroup := !rootless.IsRootless() || isRootlessCgroupSet(podCgroup)
|
canUseCgroup := !rootless.IsRootless() || isRootlessCgroupSet(podCgroup)
|
||||||
|
|
Loading…
Reference in New Issue