stack

package
v1.4.17 Latest Latest
Warning

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

Go to latest
Published: May 21, 2022 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateComponentStackMap

func CreateComponentStackMap(
	stacksBasePath string,
	terraformComponentsBasePath string,
	helmfileComponentsBasePath string,
	filePath string,
) (map[string]map[string][]string, error)

CreateComponentStackMap accepts a config file and creates a map of component-stack dependencies

func FindComponentDependencies

func FindComponentDependencies(
	stack string,
	componentType string,
	component string,
	baseComponent string,
	importsConfig map[string]map[interface{}]interface{}) ([]string, error)

FindComponentDependencies finds all imports where the component or the base component is defined Component depends on the imported config file if any of the following conditions is true:

  1. The imported file has any of the global `backend`, `backend_type`, `env`, `remote_state_backend`, `remote_state_backend_type`, `settings` or `vars` sections which are not empty
  2. The imported file has the component type section, which has any of the `backend`, `backend_type`, `env`, `remote_state_backend`, `remote_state_backend_type`, `settings` or `vars` sections which are not empty
  3. The imported config file has the "components" section, which has the component type section, which has the component section
  4. The imported config file has the "components" section, which has the component type section, which has the base component section

func FindComponentStacks

func FindComponentStacks(
	componentType string,
	component string,
	baseComponent string,
	componentStackMap map[string]map[string][]string) ([]string, error)

FindComponentStacks finds all infrastructure stack config files where the component or the base component is defined

func FindComponentsDerivedFromBaseComponents added in v1.4.15

func FindComponentsDerivedFromBaseComponents(
	stack string,
	allComponents map[string]interface{},
	baseComponents []string,
) ([]string, error)

FindComponentsDerivedFromBaseComponents finds all components that derive from the given base components

func GetGlobMatches added in v1.3.2

func GetGlobMatches(pattern string) ([]string, error)

GetGlobMatches tries to read and return the Glob matches content from the sync map if it exists in the map, otherwise it finds and returns all files matching the pattern, stores the files in the map and returns the files

func ProcessBaseComponentConfig added in v1.4.15

func ProcessBaseComponentConfig(
	baseComponentConfig *BaseComponentConfig,
	allComponentsMap map[interface{}]interface{},
	component string,
	stack string,
	baseComponent string,
	componentBasePath string,
	checkBaseComponentExists bool) error

ProcessBaseComponentConfig processes base component(s) config

func ProcessStackConfig added in v1.4.15

func ProcessStackConfig(
	stacksBasePath string,
	terraformComponentsBasePath string,
	helmfileComponentsBasePath string,
	stack string,
	config map[interface{}]interface{},
	processStackDeps bool,
	processComponentDeps bool,
	componentTypeFilter string,
	componentStackMap map[string]map[string][]string,
	importsConfig map[string]map[interface{}]interface{},
	checkBaseComponentExists bool,
) (map[interface{}]interface{}, error)

ProcessStackConfig takes a raw stack config, deep-merges all variables, settings, environments and backends, and returns the final stack configuration for all Terraform and helmfile components

func ProcessYAMLConfigFile

func ProcessYAMLConfigFile(
	basePath string,
	filePath string,
	importsConfig map[string]map[interface{}]interface{}) (map[interface{}]interface{}, map[string]map[interface{}]interface{}, error)

ProcessYAMLConfigFile takes a path to a YAML stack config file, recursively processes and deep-merges all imports, and returns stack config as map[interface{}]interface{}

func ProcessYAMLConfigFiles

func ProcessYAMLConfigFiles(
	stacksBasePath string,
	terraformComponentsBasePath string,
	helmfileComponentsBasePath string,
	filePaths []string,
	processStackDeps bool,
	processComponentDeps bool) ([]string, map[string]interface{}, error)

ProcessYAMLConfigFiles takes a list of paths to YAML config files, processes and deep-merges all imports, and returns a list of stack configs

Types

type BaseComponentConfig added in v1.3.10

type BaseComponentConfig struct {
	BaseComponentVars                      map[interface{}]interface{}
	BaseComponentSettings                  map[interface{}]interface{}
	BaseComponentEnv                       map[interface{}]interface{}
	FinalBaseComponentName                 string
	BaseComponentCommand                   string
	BaseComponentBackendType               string
	BaseComponentBackendSection            map[interface{}]interface{}
	BaseComponentRemoteStateBackendType    string
	BaseComponentRemoteStateBackendSection map[interface{}]interface{}
	ComponentInheritanceChain              []string
}

Jump to

Keyboard shortcuts

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