runnerpool

package
v0.86.3 Latest Latest
Warning

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

Go to latest
Published: Sep 5, 2025 License: MIT Imports: 23 Imported by: 0

Documentation

Overview

Package runnerpool provides a runner implementation based on a pool pattern for executing multiple units concurrently.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Build

func Build(ctx context.Context, l log.Logger, terragruntOptions *options.TerragruntOptions, opts ...common.Option) (common.StackRunner, error)

Build stack runner using discovery and queueing mechanisms.

func NewRunnerPoolStack

func NewRunnerPoolStack(ctx context.Context, l log.Logger, terragruntOptions *options.TerragruntOptions, discovered discovery.DiscoveredConfigs, opts ...common.Option) (common.StackRunner, error)

NewRunnerPoolStack creates a new stack from discovered units.

Types

type Controller added in v0.83.2

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

Controller orchestrates concurrent execution over a DAG.

func NewController added in v0.83.2

func NewController(q *queue.Queue, units []*common.Unit, opts ...ControllerOption) *Controller

NewController creates a new Controller with the given options and a pre-built queue.

func (*Controller) Run added in v0.83.2

func (dr *Controller) Run(ctx context.Context, l log.Logger) error

Run executes the Queue return error summarizing all entries that failed to run.

type ControllerOption added in v0.83.2

type ControllerOption func(*Controller)

ControllerOption is a function that modifies a Controller.

func WithMaxConcurrency

func WithMaxConcurrency(concurrency int) ControllerOption

WithMaxConcurrency sets the concurrency for the Controller.

func WithRunner

func WithRunner(runner UnitRunner) ControllerOption

WithRunner sets the UnitRunner for the Controller.

type Runner

type Runner struct {
	Stack *common.Stack
	// contains filtered or unexported fields
}

Runner implements the Stack interface for runner pool execution.

func (*Runner) GetStack

func (r *Runner) GetStack() *common.Stack

GetStack returns the stack associated with the runner.

func (*Runner) JSONUnitDeployOrder

func (r *Runner) JSONUnitDeployOrder(_ string) (string, error)

JSONUnitDeployOrder returns the order of units to be processed for a given Terraform command in JSON format.

func (*Runner) ListStackDependentUnits

func (r *Runner) ListStackDependentUnits() map[string][]string

ListStackDependentUnits returns a map of units and their dependent units in the stack.

func (*Runner) LogUnitDeployOrder

func (r *Runner) LogUnitDeployOrder(l log.Logger, terraformCommand string) error

LogUnitDeployOrder logs the order of units to be processed for a given Terraform command.

func (*Runner) Run

Run executes the stack according to TerragruntOptions and returns the first error (or a joined error) once execution is finished.

func (*Runner) SetParseOptions

func (r *Runner) SetParseOptions(parserOptions []hclparse.Option)

SetParseOptions sets the ParseOptions for the stack.

func (*Runner) SetReport

func (r *Runner) SetReport(report *report.Report)

SetReport sets the report for the stack.

func (*Runner) SetTerragruntConfig

func (r *Runner) SetTerragruntConfig(config *config.TerragruntConfig)

SetTerragruntConfig sets the config for the stack.

func (*Runner) WithOptions

func (r *Runner) WithOptions(opts ...common.Option) *Runner

WithOptions updates the stack with the provided options.

type UnitRunner added in v0.83.2

type UnitRunner func(ctx context.Context, u *common.Unit) error

UnitRunner defines a function type that executes a Unit within a given context and returns an error.

Jump to

Keyboard shortcuts

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