Files
capsule/pkg/template/rules.go
T
Oliver BählerandGitHub 0b11582e4a feat: add scheduler enforcement rule (#1971)
* fix(controller): decode old object for delete requests

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: modernize golang

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: modernize golang

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: modernize golang

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* fix: preserve ca-bundles injected from external providers

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

* feat: abstract ruling

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

* feat: migrate events api

* feat: migrate events api

* feat: migrate events api

* feat: migrate events api

* feat: migrate events  api

* feat: migrate events api

* feat: migrate events api

* feat: migrate events api

* feat: migrate events api

* feat: migrate events api

---------

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>
Signed-off-by: Oliver Baehler <oliver@sudo-i.net>
2026-06-19 14:34:16 +02:00

44 lines
968 B
Go

// Copyright 2020-2026 Project Capsule Authors
// SPDX-License-Identifier: Apache-2.0
package template
import (
"fmt"
"go.yaml.in/yaml/v2"
"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
}