diff --git a/internal/cri/nri/nri_api_linux.go b/internal/cri/nri/nri_api_linux.go index c6f1a0e513..cf4ab845f1 100644 --- a/internal/cri/nri/nri_api_linux.go +++ b/internal/cri/nri/nri_api_linux.go @@ -1017,6 +1017,24 @@ func (c *criContainer) GetPid() uint32 { return c.pid } +func (c *criContainer) GetRlimits() []*api.POSIXRlimit { + if c.spec == nil { + return nil + } + + var rlimits []*api.POSIXRlimit + + for _, l := range c.spec.Process.Rlimits { + rlimits = append(rlimits, &api.POSIXRlimit{ + Type: l.Type, + Hard: l.Hard, + Soft: l.Soft, + }) + } + + return rlimits +} + // // conversion to/from CRI types // diff --git a/internal/nri/container.go b/internal/nri/container.go index c798036761..4dc2883701 100644 --- a/internal/nri/container.go +++ b/internal/nri/container.go @@ -47,6 +47,7 @@ type Container interface { GetHooks() *nri.Hooks GetLinuxContainer() LinuxContainer GetCDIDevices() []*nri.CDIDevice + GetRlimits() []*nri.POSIXRlimit } type LinuxContainer interface { @@ -82,6 +83,7 @@ func commonContainerToNRI(ctr Container) *nri.Container { StartedAt: status.StartedAt, FinishedAt: status.FinishedAt, ExitCode: status.ExitCode, + Rlimits: ctr.GetRlimits(), } }