Skip to content

Commit

Permalink
Merge pull request containers#16083 from dfr/freebsd-pod
Browse files Browse the repository at this point in the history
Add support for 'podman pod' on FreeBSD
  • Loading branch information
openshift-merge-robot authored Oct 10, 2022
2 parents 5908996 + b4b7011 commit bb0b184
Show file tree
Hide file tree
Showing 9 changed files with 413 additions and 360 deletions.
24 changes: 2 additions & 22 deletions libpod/pod_internal.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,10 @@ package libpod

import (
"fmt"
"path/filepath"
"time"

"github.com/containers/common/pkg/config"
"github.com/containers/podman/v4/libpod/define"
"github.com/containers/podman/v4/pkg/rootless"
"github.com/containers/storage/pkg/stringid"
"github.com/sirupsen/logrus"
)

// Creates a new, empty pod
Expand Down Expand Up @@ -64,24 +60,8 @@ func (p *Pod) refresh() error {
}
p.lock = lock

// We need to recreate the pod's cgroup
if p.config.UsePodCgroup {
switch p.runtime.config.Engine.CgroupManager {
case config.SystemdCgroupsManager:
cgroupPath, err := systemdSliceFromPath(p.config.CgroupParent, fmt.Sprintf("libpod_pod_%s", p.ID()), p.ResourceLim())
if err != nil {
logrus.Errorf("Creating Cgroup for pod %s: %v", p.ID(), err)
}
p.state.CgroupPath = cgroupPath
case config.CgroupfsCgroupsManager:
if rootless.IsRootless() && isRootlessCgroupSet(p.config.CgroupParent) {
p.state.CgroupPath = filepath.Join(p.config.CgroupParent, p.ID())

logrus.Debugf("setting pod cgroup to %s", p.state.CgroupPath)
}
default:
return fmt.Errorf("unknown cgroups manager %s specified: %w", p.runtime.config.Engine.CgroupManager, define.ErrInvalidArg)
}
if err := p.platformRefresh(); err != nil {
return err
}

// Save changes
Expand Down
5 changes: 5 additions & 0 deletions libpod/pod_internal_freebsd.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package libpod

func (p *Pod) platformRefresh() error {
return nil
}
34 changes: 34 additions & 0 deletions libpod/pod_internal_linux.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package libpod

import (
"fmt"
"path/filepath"

"github.com/containers/common/pkg/config"
"github.com/containers/podman/v4/libpod/define"
"github.com/containers/podman/v4/pkg/rootless"
"github.com/sirupsen/logrus"
)

func (p *Pod) platformRefresh() error {
// We need to recreate the pod's cgroup
if p.config.UsePodCgroup {
switch p.runtime.config.Engine.CgroupManager {
case config.SystemdCgroupsManager:
cgroupPath, err := systemdSliceFromPath(p.config.CgroupParent, fmt.Sprintf("libpod_pod_%s", p.ID()), p.ResourceLim())
if err != nil {
logrus.Errorf("Creating Cgroup for pod %s: %v", p.ID(), err)
}
p.state.CgroupPath = cgroupPath
case config.CgroupfsCgroupsManager:
if rootless.IsRootless() && isRootlessCgroupSet(p.config.CgroupParent) {
p.state.CgroupPath = filepath.Join(p.config.CgroupParent, p.ID())

logrus.Debugf("setting pod cgroup to %s", p.state.CgroupPath)
}
default:
return fmt.Errorf("unknown cgroups manager %s specified: %w", p.runtime.config.Engine.CgroupManager, define.ErrInvalidArg)
}
}
return nil
}
Loading

0 comments on commit bb0b184

Please sign in to comment.