Documentation
¶
Index ¶
- Constants
- Variables
- func BuildDep(m Module, dep *Dependency) error
- func ConvertToShellVar(name string) string
- func ConvertToShellVarName(name string) string
- func ConvertToTfVarName(name string) string
- func RegisterBackendFactory(f BackendsFactory, provider string) error
- func RegisterModuleDriverFactory(modDrv ModuleDriverFactory, driverType string) error
- func ScanMarkers(data interface{}, procFunc MarkerScanner, module Module) error
- type Backend
- type BackendsFactory
- type Dependency
- type Infrastructure
- type MarkerScanner
- type Module
- type ModuleDriver
- type ModuleDriverFactory
- type ModulesPack
- type Project
Constants ¶
const OutputMarkerCatName = "outputMarkers"
Variables ¶
var BackendsFactories = map[string]BackendsFactory{}
BackendsFactories map of backend providers factories. Use BackendsFactories["prov_name"].New() to create backend of provider 'prov_name'
var ModuleDriverFactories = map[string]ModuleDriverFactory{}
ModuleDriverFactories map of module drivers factories. Use ModulesFactories["type"].New() to create module driver of type 'type'
Functions ¶
func BuildDep ¶
func BuildDep(m Module, dep *Dependency) error
func ConvertToShellVar ¶
func ConvertToShellVarName ¶
func ConvertToTfVarName ¶
func RegisterBackendFactory ¶
func RegisterBackendFactory(f BackendsFactory, provider string) error
RegisterBackendFactory - register factory of some provider (like s3) in map.
func RegisterModuleDriverFactory ¶
func RegisterModuleDriverFactory(modDrv ModuleDriverFactory, driverType string) error
RegisterModuleDriverFactory - register factory of some driver type (like terraform) in map.
func ScanMarkers ¶
func ScanMarkers(data interface{}, procFunc MarkerScanner, module Module) error
ScanMarkers use marker scanner function to replace templated markers.
Types ¶
type Backend ¶
type Backend interface {
Name() string
Provider() string
GetBackendHCL(Module) ([]byte, error)
GetRemoteStateHCL(Module) ([]byte, error)
}
Backend interface for backend provider.
type BackendsFactory ¶
BackendsFactory - interface for backend provider factory. New() creates backend.
type Dependency ¶
Dependency describe module dependency.
type Infrastructure ¶
type MarkerScanner ¶
MarkerScanner type witch describe function for scaning markers in templated and unmarshaled yaml data.
type Module ¶
type Module interface {
CreateCodeDir(string) error
Name() string
InfraPtr() *Infrastructure
ProjectPtr() *Project
InfraName() string
ReplaceMarkers() error
GetApplyShellCmd() string
GetDestroyShellCmd() string
Dependencies() []*Dependency
Self() interface{}
// ExpectedOutputs return expected outputs.
ExpectedOutputs() *map[string]bool
// BuildDeps - check string dependencies, finds the corresponding module and add module ptr to dependency.
BuildDeps() error
PreHook() *Dependency
}
Module interface for module drivers.
type ModuleDriver ¶
type ModuleDriver interface {
GetTemplateFunctions() map[string]interface{}
GetScanners() []MarkerScanner
NewModule(map[string]interface{}, *Infrastructure) (Module, error)
}
type ModuleDriverFactory ¶
type ModuleDriverFactory interface {
New(*Project) ModuleDriver
}
ModuleDriverFactory - interface for module driver factory. New() creates module driver.
type Project ¶
type Project struct {
Modules map[string]Module
ModuleDrivers map[string]ModuleDriver
Infrastructures map[string]*Infrastructure
TmplFunctionsMap template.FuncMap
Backends map[string]Backend
DeploySequence []ModulesPack
Markers map[string]interface{}
// contains filtered or unexported fields
}
Project describes main config with user-defined variables.
func NewProject ¶
NewProject creates init and check new project.
func (*Project) CheckContainsMarkers ¶
CheckContainsMarkers - check if string contains any template markers.
func (*Project) CreateMarker ¶
CreateMarker generate hash string for template markers.