diff options
author | Charlie Doern <cdoern@redhat.com> | 2022-07-07 14:44:10 -0400 |
---|---|---|
committer | Charlie Doern <cdoern@redhat.com> | 2022-07-21 14:50:01 -0400 |
commit | c00ea686fef5a382849307d393226971fb1da1f3 (patch) | |
tree | 4c63fc7fbbd8601fd639c7a30f22f9219ce8e013 /libpod/options.go | |
parent | 5f53a67742d6151fee3f62f4d82226da6246b461 (diff) | |
download | podman-c00ea686fef5a382849307d393226971fb1da1f3.tar.gz podman-c00ea686fef5a382849307d393226971fb1da1f3.tar.bz2 podman-c00ea686fef5a382849307d393226971fb1da1f3.zip |
resource limits for pods
added the following flags and handling for podman pod create
--memory-swap
--cpuset-mems
--device-read-bps
--device-write-bps
--blkio-weight
--blkio-weight-device
--cpu-shares
given the new backend for systemd in c/common, all of these can now be exposed to pod create.
most of the heavy lifting (nearly all) is done within c/common. However, some rewiring needed to be done here
as well!
Signed-off-by: Charlie Doern <cdoern@redhat.com>
Diffstat (limited to 'libpod/options.go')
-rw-r--r-- | libpod/options.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libpod/options.go b/libpod/options.go index f03980017..b31cb4ab2 100644 --- a/libpod/options.go +++ b/libpod/options.go @@ -2145,6 +2145,18 @@ func WithServiceContainer(id string) PodCreateOption { } } +// WithPodResources sets resource limits to be applied to the pod's cgroup +// these will be inherited by all containers unless overridden. +func WithPodResources(resources specs.LinuxResources) PodCreateOption { + return func(pod *Pod) error { + if pod.valid { + return define.ErrPodFinalized + } + pod.config.ResourceLimits = resources + return nil + } +} + // WithVolatile sets the volatile flag for the container storage. // The option can potentially cause data loss when used on a container that must survive a machine reboot. func WithVolatile() CtrCreateOption { |