Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ArchiveModuleResolver ¶
type ArchiveModuleResolver struct {
*BaseModuleResolver
}
ArchiveModuleResolver handles terraform modules from local archive files
func NewArchiveModuleResolver ¶
func NewArchiveModuleResolver(rt *runtime.Runtime, blueprintHandler blueprint.BlueprintHandler) *ArchiveModuleResolver
NewArchiveModuleResolver creates a new archive module resolver with the provided dependencies.
func (*ArchiveModuleResolver) ProcessModules ¶
func (h *ArchiveModuleResolver) ProcessModules() error
ProcessModules processes all terraform components that use file:// sources by extracting modules from local archives and generating appropriate module shims. It identifies components with resolved file:// source URLs, extracts the required modules, and creates the necessary terraform configuration files.
type BaseModuleResolver ¶
type BaseModuleResolver struct {
// contains filtered or unexported fields
}
BaseModuleResolver provides common functionality for all module resolvers
func NewBaseModuleResolver ¶
func NewBaseModuleResolver(rt *runtime.Runtime, blueprintHandler blueprint.BlueprintHandler, opts ...*BaseModuleResolver) *BaseModuleResolver
NewBaseModuleResolver creates a new base module resolver with the provided dependencies. If overrides are provided, any non-nil component in the override BaseModuleResolver will be used instead of creating a default.
func (*BaseModuleResolver) GenerateTfvars ¶
func (h *BaseModuleResolver) GenerateTfvars(overwrite bool) error
GenerateTfvars creates Terraform configuration files, including tfvars files, for all blueprint components. It processes template data keyed by "terraform/<module_path>", generating tfvars files at contexts/<context>/terraform/<module_path>.tfvars. For each entry in the input data, it skips keys not prefixed with "terraform/" and skips components not present in the blueprint. For all components in the blueprint, it ensures a tfvars file is generated if not already handled by the input data. The method uses the blueprint handler to retrieve TerraformComponents and determines the variables.tf location based on component source (remote or local). Module resolution is handled by pkg/terraform.
type CompositeModuleResolver ¶
type CompositeModuleResolver struct {
// contains filtered or unexported fields
}
CompositeModuleResolver handles terraform modules by delegating to specialized resolvers
func NewCompositeModuleResolver ¶
func NewCompositeModuleResolver(rt *runtime.Runtime, blueprintHandler blueprint.BlueprintHandler, artifactBuilder artifact.Artifact) *CompositeModuleResolver
NewCompositeModuleResolver creates a new composite module resolver with all specialized resolvers.
func (*CompositeModuleResolver) GenerateTfvars ¶
func (h *CompositeModuleResolver) GenerateTfvars(overwrite bool) error
GenerateTfvars generates tfvars files for all terraform components. It uses the standard resolver's GenerateTfvars method since all resolvers share the same base implementation.
func (*CompositeModuleResolver) ProcessModules ¶
func (h *CompositeModuleResolver) ProcessModules() error
ProcessModules processes all terraform modules by delegating to the appropriate specialized resolvers. It calls ProcessModules on each resolver in order: OCI, Archive, then Standard. Returns an error if any resolver fails.
type MockModuleResolver ¶
type MockModuleResolver struct {
ProcessModulesFunc func() error
GenerateTfvarsFunc func(overwrite bool) error
}
MockModuleResolver is a mock implementation of the ModuleResolver interface
func NewMockModuleResolver ¶
func NewMockModuleResolver() *MockModuleResolver
NewMockModuleResolver creates a new MockModuleResolver instance
func (*MockModuleResolver) GenerateTfvars ¶
func (m *MockModuleResolver) GenerateTfvars(overwrite bool) error
GenerateTfvars calls the mock GenerateTfvarsFunc 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 ¶
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(rt *runtime.Runtime, blueprintHandler blueprint.BlueprintHandler, artifactBuilder artifact.Artifact) *OCIModuleResolver
NewOCIModuleResolver creates a new OCI module resolver with the provided 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
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
ReadDir func(name string) ([]os.DirEntry, error)
RemoveAll func(path string) error
FilepathAbs func(path string) (string, error)
FilepathBase func(path string) string
}
Shims provides mockable wrappers around system and runtime functions
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(rt *runtime.Runtime, blueprintHandler blueprint.BlueprintHandler) *StandardModuleResolver
NewStandardModuleResolver creates a new standard module resolver with the provided dependencies. If overrides are provided, any non-nil component in the override StandardModuleResolver will be used instead of creating a default.
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 TerraformInitOutput ¶
TerraformInitOutput represents the JSON output structure from terraform init