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.