Documentation
¶
Overview ¶
Package renderer handles ResourceTemplate orchestration for ComponentTypes.
The renderer evaluates ResourceTemplate control flow (includeWhen, forEach) and uses the template engine to render Kubernetes resources.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExtractTemplateData ¶
func ExtractTemplateData(tmpl v1alpha1.ResourceTemplate) (any, error)
ExtractTemplateData extracts the template data from a ResourceTemplate. This is a helper for testing.
func MustRawExtension ¶
func MustRawExtension(v any) runtime.RawExtension
MustRawExtension creates a runtime.RawExtension from any value. Panics if marshaling fails. For testing only.
Types ¶
type Renderer ¶
type Renderer struct {
// contains filtered or unexported fields
}
Renderer orchestrates the rendering of ResourceTemplates from ComponentTypes.
func NewRenderer ¶
NewRenderer creates a new ResourceTemplate renderer.
func (*Renderer) RenderResources ¶
func (r *Renderer) RenderResources( templates []v1alpha1.ResourceTemplate, context map[string]any, ) ([]map[string]any, error)
RenderResources renders all resources from a ComponentType.
The process:
- Iterate through ComponentType.Spec.Resources
- For each ResourceTemplate: - Evaluate includeWhen (skip if false) - Check forEach (render multiple times if present) - Render template field using template engine
- Return all rendered resources
Returns an error if any template fails to render (unless it's a missing data error for includeWhen evaluation).