Files
capsule/pkg/template/rules.go
T
Oliver BählerandGitHub 65a4e19e02 feat: requests and limit policies (#2095)
* chore: save progress

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* feat: requests and limit policies

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* feat: requests and limit policies

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* feat: requests and limit policies

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* feat: requests and limit policies

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* feat: requests and limit policies

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* feat: requests and limit policies

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* feat: requests and limit policies

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* feat: requests and limit policies

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* feat: requests and limit policies

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

---------

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>
2026-08-21 14:31:06 +02:00

44 lines
966 B
Go

// Copyright 2020-2026 Project Capsule Authors
// SPDX-License-Identifier: Apache-2.0
package template
import (
"fmt"
"sigs.k8s.io/yaml"
"github.com/projectcapsule/capsule/pkg/api/rules"
)
func RenderNamespaceRuleBodies(
context map[string]any,
key MissingKeyOption,
bodies []*rules.NamespaceRuleBodyNamespace,
) ([]*rules.NamespaceRuleBodyNamespace, error) {
if len(bodies) == 0 {
return nil, nil
}
raw, err := yaml.Marshal(bodies)
if err != nil {
return nil, fmt.Errorf("marshal namespace rule bodies: %w", err)
}
rendered, err := RenderTemplateBytes(context, key, raw)
if err != nil {
return nil, fmt.Errorf("render namespace rule bodies template: %w", err)
}
var out []*rules.NamespaceRuleBodyNamespace
if err := yaml.Unmarshal(rendered, &out); err != nil {
return nil, fmt.Errorf(
"unmarshal rendered namespace rule bodies: %w\nrendered template:\n%s",
err,
withLineNumbers(string(rendered)),
)
}
return out, nil
}