tofu

package
v0.42.1 Latest Latest
Warning

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

Go to latest
Published: Sep 24, 2026 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package tofu provides OpenTofu execution capabilities.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BinaryName

func BinaryName() string

BinaryName returns the OpenTofu executable name for the current platform.

func DefaultBinary

func DefaultBinary() string

DefaultBinary resolves the OpenTofu binary used by regular execution. It intentionally avoids PATH fallback so a host-installed OpenTofu cannot make StackKit appear release-ready when the package is missing its own copy.

func EnsureStateDir

func EnsureStateDir(baseDir string) error

EnsureStateDir ensures the state directory exists

func HasTerraformFiles

func HasTerraformFiles(dir string) (bool, error)

HasTerraformFiles checks if directory contains .tf files

func IsTimeoutError

func IsTimeoutError(err error) bool

IsTimeoutError checks if an error is a timeout error

func PackagedBinaryPath

func PackagedBinaryPath() (string, bool)

PackagedBinaryPath returns the StackKit-packaged OpenTofu binary path. It intentionally does not fall back to PATH: product and release tests must prove that OpenTofu ships with StackKit, not that the host happens to have it.

func ValidateWorkDir

func ValidateWorkDir(dir string) error

ValidateWorkDir validates the working directory

Types

type Executor

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

Executor handles OpenTofu command execution

func NewExecutor

func NewExecutor(opts ...ExecutorOption) *Executor

NewExecutor creates a new OpenTofu executor

func (*Executor) Apply

func (e *Executor) Apply(ctx context.Context, planFile string) (*Result, error)

Apply runs tofu apply

func (*Executor) Destroy

func (e *Executor) Destroy(ctx context.Context) (*Result, error)

Destroy runs tofu destroy

func (*Executor) Format

func (e *Executor) Format(ctx context.Context) (*Result, error)

Format runs tofu fmt to format configuration files

func (*Executor) GetWorkDir

func (e *Executor) GetWorkDir() string

GetWorkDir returns the working directory

func (*Executor) Graph

func (e *Executor) Graph(ctx context.Context) (*Result, error)

Graph generates a visual graph of resources

func (*Executor) Import

func (e *Executor) Import(ctx context.Context, address, id string) (*Result, error)

Import imports an existing resource into state

func (*Executor) Init

func (e *Executor) Init(ctx context.Context) (*Result, error)

Init runs tofu init

func (*Executor) IsInstalled

func (e *Executor) IsInstalled() bool

IsInstalled checks if tofu is installed

func (*Executor) Output

func (e *Executor) Output(ctx context.Context) (*Result, error)

Output runs tofu output and returns the outputs

func (*Executor) Plan

func (e *Executor) Plan(ctx context.Context, outFile string, destroy bool) (*Result, error)

Plan runs tofu plan

func (*Executor) Providers

func (e *Executor) Providers(ctx context.Context) (*Result, error)

Providers shows required providers

func (*Executor) Refresh

func (e *Executor) Refresh(ctx context.Context) (*Result, error)

Refresh runs tofu refresh to sync state with real infrastructure

func (*Executor) SetAutoApprove

func (e *Executor) SetAutoApprove(autoApprove bool)

SetAutoApprove sets the auto-approve flag dynamically

func (*Executor) SetWorkDir

func (e *Executor) SetWorkDir(dir string)

SetWorkDir sets the working directory

func (*Executor) Show

func (e *Executor) Show(ctx context.Context, planFile string) (*Result, error)

Show runs tofu show on a plan file

func (*Executor) State

func (e *Executor) State(ctx context.Context) (*Result, error)

State returns the current state

func (*Executor) Taint

func (e *Executor) Taint(ctx context.Context, address string) (*Result, error)

Taint marks a resource for recreation

func (*Executor) Untaint

func (e *Executor) Untaint(ctx context.Context, address string) (*Result, error)

Untaint removes the taint from a resource

func (*Executor) Validate

func (e *Executor) Validate(ctx context.Context) (*Result, error)

Validate runs tofu validate

func (*Executor) Version

func (e *Executor) Version(ctx context.Context) (string, error)

Version returns the tofu version

type ExecutorOption

type ExecutorOption func(*Executor)

ExecutorOption configures the Executor

func WithAutoApprove

func WithAutoApprove(autoApprove bool) ExecutorOption

WithAutoApprove enables auto-approve for apply/destroy

func WithBinary

func WithBinary(binary string) ExecutorOption

WithBinary sets the tofu binary path

func WithEnv

func WithEnv(values ...string) ExecutorOption

WithEnv appends environment values for OpenTofu commands.

func WithTimeout

func WithTimeout(timeout time.Duration) ExecutorOption

WithTimeout sets the execution timeout

func WithWorkDir

func WithWorkDir(dir string) ExecutorOption

WithWorkDir sets the working directory

type PlanChanges

type PlanChanges struct {
	Add     int
	Change  int
	Destroy int
}

PlanChanges represents changes detected by plan

func ParsePlanOutput

func ParsePlanOutput(output string) *PlanChanges

ParsePlanOutput parses plan output to extract changes

type Result

type Result struct {
	Success  bool
	ExitCode int
	Stdout   string
	Stderr   string
	Duration time.Duration
}

Result represents the result of a tofu command

type TimeoutError

type TimeoutError struct {
	Command  string
	Duration time.Duration
}

TimeoutError represents a command timeout

func (*TimeoutError) Error

func (e *TimeoutError) Error() string

Jump to

Keyboard shortcuts

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