terraform

package
v0.7.1 Latest Latest
Warning

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

Go to latest
Published: Jul 30, 2025 License: MPL-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseModuleResolver

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

BaseModuleResolver provides common functionality for all module resolvers

func NewBaseModuleResolver

func NewBaseModuleResolver(injector di.Injector) *BaseModuleResolver

NewBaseModuleResolver creates a new base module resolver

func (*BaseModuleResolver) Initialize

func (h *BaseModuleResolver) Initialize() error

Initialize sets up the base module resolver

type MockModuleResolver

type MockModuleResolver struct {
	InitializeFunc     func() error
	ProcessModulesFunc func() error
}

MockModuleResolver is a mock implementation of the ModuleResolver interface

func NewMockModuleResolver

func NewMockModuleResolver(injector di.Injector) *MockModuleResolver

NewMockModuleResolver creates a new MockModuleResolver instance

func (*MockModuleResolver) Initialize

func (m *MockModuleResolver) Initialize() error

Initialize calls the mock InitializeFunc if set, otherwise returns nil

func (*MockModuleResolver) ProcessModules

func (m *MockModuleResolver) ProcessModules() error

ProcessModules calls the mock ProcessModulesFunc if set, otherwise returns nil

type ModuleResolver

type ModuleResolver interface {
	Initialize() error
	ProcessModules() error
}

ModuleResolver processes terraform module sources and generates appropriate module configurations

type OCIModuleResolver

type OCIModuleResolver struct {
	*BaseModuleResolver
	// contains filtered or unexported fields
}

OCIModuleResolver handles terraform modules from OCI artifacts

func NewOCIModuleResolver

func NewOCIModuleResolver(injector di.Injector) *OCIModuleResolver

NewOCIModuleResolver creates a new OCI module resolver

func (*OCIModuleResolver) Initialize

func (h *OCIModuleResolver) Initialize() error

Initialize sets up the OCI module resolver with required dependencies

func (*OCIModuleResolver) ProcessModules

func (h *OCIModuleResolver) ProcessModules() error

ProcessModules processes all terraform components that use OCI sources by extracting modules from OCI artifacts and generating appropriate module shims. It identifies components with resolved OCI source URLs, extracts the required modules, and creates the necessary terraform configuration files.

type RealTarReader

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

RealTarReader is the real implementation of TarReader

func (*RealTarReader) Next

func (r *RealTarReader) Next() (*tar.Header, error)

Next returns the next header in the tar archive

func (*RealTarReader) Read

func (r *RealTarReader) Read(p []byte) (int, error)

Read reads data from the current tar entry

type Shims

type Shims struct {
	MkdirAll       func(path string, perm os.FileMode) error
	WriteFile      func(filename string, data []byte, perm os.FileMode) error
	ReadFile       func(filename string) ([]byte, error)
	Stat           func(name string) (os.FileInfo, error)
	Chdir          func(dir string) error
	FilepathRel    func(basepath, targpath string) (string, error)
	JsonUnmarshal  func(data []byte, v any) error
	NewBytesReader func(b []byte) *bytes.Reader
	NewTarReader   func(r io.Reader) TarReader
	EOFError       func() error
	TypeDir        func() byte
	Create         func(name string) (*os.File, error)
	Copy           func(dst io.Writer, src io.Reader) (int64, error)
	Chmod          func(name string, mode os.FileMode) error
	Setenv         func(key, value string) error
}

Shims provides mockable wrappers around system and runtime functions

func NewShims

func NewShims() *Shims

NewShims creates a new Shims instance with default implementations

type StandardModuleResolver

type StandardModuleResolver struct {
	*BaseModuleResolver
	// contains filtered or unexported fields
}

StandardModuleResolver handles standard terraform module sources (git, local paths, etc.)

func NewStandardModuleResolver

func NewStandardModuleResolver(injector di.Injector) *StandardModuleResolver

NewStandardModuleResolver creates a new standard module resolver

func (*StandardModuleResolver) Initialize

func (h *StandardModuleResolver) Initialize() error

Initialize sets up the StandardModuleResolver by resolving and assigning required dependencies. It initializes the base resolver, then resolves and assigns the blueprint handler, shell, and config handler from the dependency injector. Returns an error if any dependency cannot be resolved.

func (*StandardModuleResolver) ProcessModules

func (h *StandardModuleResolver) ProcessModules() error

ProcessModules processes all standard terraform modules from the blueprint. It iterates over each terraform component, determines if the resolver should handle the source, creates the module directory, writes shim files (main.tf, variables.tf, outputs.tf), initializes the module with terraform, and determines the correct module path for shimming. Errors are returned if any step fails, ensuring that only valid and initialized modules are processed.

type TarReader

type TarReader interface {
	Next() (*tar.Header, error)
	Read([]byte) (int, error)
}

TarReader provides an interface for tar archive reading operations

type TerraformInitOutput

type TerraformInitOutput struct {
	Type    string `json:"@type"`
	Message string `json:"@message"`
}

TerraformInitOutput represents the JSON output structure from terraform init

Jump to

Keyboard shortcuts

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