From 8e194a25948ff38b8ca2a02df39a44e305ec6c3f Mon Sep 17 00:00:00 2001 From: Etienne Champetier Date: Wed, 22 Jan 2025 21:22:00 -0500 Subject: [PATCH] runtime-tools/generate: adjust LinuxNamespaces Signed-off-by: Etienne Champetier --- pkg/runtime-tools/generate/generate.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pkg/runtime-tools/generate/generate.go b/pkg/runtime-tools/generate/generate.go index cd2bc287..2692ec96 100644 --- a/pkg/runtime-tools/generate/generate.go +++ b/pkg/runtime-tools/generate/generate.go @@ -117,6 +117,7 @@ func (g *Generator) Adjust(adjust *nri.ContainerAdjustment) error { g.AdjustDevices(adjust.GetLinux().GetDevices()) g.AdjustCgroupsPath(adjust.GetLinux().GetCgroupsPath()) g.AdjustOomScoreAdj(adjust.GetLinux().GetOomScoreAdj()) + g.AdjustNamespaces(adjust.GetLinux().GetNamespaces()) resources := adjust.GetLinux().GetResources() if err := g.AdjustResources(resources); err != nil { @@ -332,6 +333,21 @@ func (g *Generator) AdjustOomScoreAdj(score *nri.OptionalInt) { } } +// AdjustNamespaces adds or replaces namespaces in the OCI Spec. +func (g *Generator) AdjustNamespaces(namespaces []*nri.LinuxNamespace) error { + for _, n := range namespaces { + if n == nil { + continue + } + if key, marked := n.IsMarkedForRemoval(); marked { + g.RemoveLinuxNamespace(key) + } else { + g.AddOrReplaceLinuxNamespace(n.Type, n.Path) + } + } + return nil +} + // AdjustDevices adjusts the (Linux) devices in the OCI Spec. func (g *Generator) AdjustDevices(devices []*nri.LinuxDevice) { for _, d := range devices {