engine

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 19, 2026 License: Apache-2.0 Imports: 11 Imported by: 5

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Engine

type Engine struct {
	// contains filtered or unexported fields
}

Engine represents the core manifest rendering and processing engine.

func New

func New(opts ...Option) (*Engine, error)

New creates a new Engine with the given options.

func (*Engine) Render

func (e *Engine) Render(ctx context.Context, opts ...RenderOption) ([]unstructured.Unstructured, error)

Render processes all inputs associated with the registered renderer configurations and returns a consolidated slice of unstructured.Unstructured objects.

The rendering pipeline has three stages for filters and transformers:

  1. renderer-specific: Each renderer applies its own filters/transformers during Process()
  2. engine-level: Filters/transformers configured via New() are applied to aggregated results
  3. render-time: Filters/transformers passed via opts are merged with engine-level ones

Render-time options are additive - they append to engine-level options. Render-time values are passed to all renderers and deep merged with Source-level values.

type Option

type Option = util.Option[Options]

Option is a generic option for Options.

func WithFilter

func WithFilter(f types.Filter) Option

WithFilter adds an engine-level filter function to the processing chain. Engine-level filters are applied to aggregated results from all renderers on every Render() call. For renderer-specific filtering, use the renderer's WithFilter option (e.g., helm.WithFilter). For one-time filtering on a single Render() call, use WithRenderFilter.

func WithParallel

func WithParallel(enabled bool) Option

WithParallel enables or disables parallel execution of renderers. When enabled, all renderers execute concurrently using goroutines. When disabled (default), renderers execute sequentially. Parallel execution is beneficial for I/O-bound renderers (Helm OCI fetch, file reads).

func WithRenderer

func WithRenderer(r types.Renderer) Option

WithRenderer adds a configured renderer to the engine. Can only be used during engine creation.

func WithTransformer

func WithTransformer(t types.Transformer) Option

WithTransformer adds an engine-level transformer function to the processing chain. Engine-level transformers are applied to aggregated results from all renderers on every Render() call. For renderer-specific transformation, use the renderer's WithTransformer option (e.g., helm.WithTransformer). For one-time transformation on a single Render() call, use WithRenderTransformer.

type Options

type Options struct {
	// Filters are engine-level filters applied to all renders.
	Filters []types.Filter

	// Transformers are engine-level transformers applied to all renders.
	Transformers []types.Transformer

	// Values are values passed to renderers (used internally during rendering).
	Values map[string]any

	// Renderers are the manifest sources to process (e.g., Helm, Kustomize, YAML).
	Renderers []types.Renderer

	// Parallel enables parallel execution of renderers.
	Parallel bool
}

Options represents the processing options for the engine.

func (Options) ApplyTo

func (opts Options) ApplyTo(target *Options)

ApplyTo implements the Option interface for Options.

type RenderOption

type RenderOption = util.Option[RenderOptions]

RenderOption is a generic option for RenderOptions.

func WithRenderFilter

func WithRenderFilter(f types.Filter) RenderOption

WithRenderFilter adds a render-time filter function for a single Render() call. Render-time filters are merged with (appended to) engine-level filters. Use this for one-off filtering that doesn't apply to all renders.

func WithRenderTransformer

func WithRenderTransformer(t types.Transformer) RenderOption

WithRenderTransformer adds a render-time transformer function for a single Render() call. Render-time transformers are merged with (appended to) engine-level transformers. Use this for one-off transformation that doesn't apply to all renders.

func WithValues

func WithValues(values map[string]any) RenderOption

WithValues adds render-time values for a single Render() call. These values are passed to all renderers and deep merged with Source-level values, with render-time values taking precedence for conflicting keys. Renderers that support dynamic values (Helm, Kustomize, GoTemplate) will use these values. Renderers that don't support values (YAML, Mem) will ignore them.

type RenderOptions

type RenderOptions struct {
	// Filters are render-time filters applied only to this specific Render() call.
	// These are merged with (appended to) engine-level filters.
	Filters []types.Filter

	// Transformers are render-time transformers applied only to this specific Render() call.
	// These are merged with (appended to) engine-level transformers.
	Transformers []types.Transformer

	// Values are render-time values passed to all renderers during this specific Render() call.
	// These values are deep merged with Source-level values, with render-time values taking precedence.
	Values map[string]any
}

RenderOptions represents the processing options for rendering.

func (RenderOptions) ApplyTo

func (opts RenderOptions) ApplyTo(target *RenderOptions)

ApplyTo implements the Option interface for RenderOptions.

Directories

Path Synopsis
Package filter provides combinators for composing multiple filters using boolean logic.
Package filter provides combinators for composing multiple filters using boolean logic.
jq
Package transformer provides combinators for composing multiple transformers.
Package transformer provides combinators for composing multiple transformers.
jq

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL