Documentation
¶
Index ¶
- Constants
- Variables
- func FindAllStackConfigsInPaths(cliConfig CliConfiguration, includeStackPaths []string, ...) ([]string, []string, error)
- func FindAllStackConfigsInPathsForStack(cliConfig CliConfiguration, stack string, includeStackPaths []string, ...) ([]string, []string, bool, error)
- func GetContextPrefix(stack string, context Context, stackNamePattern string, stackFile string) (string, error)
- func GetStackNameFromContextAndStackNamePattern(namespace string, tenant string, environment string, stage string, ...) (string, error)
- func ReplaceContextTokens(context Context, pattern string) string
- type Affected
- type ArgsAndFlagsInfo
- type Atlantis
- type AtlantisConfigOutput
- type AtlantisProjectAutoplanConfig
- type AtlantisProjectConfig
- type AtlantisRepoConfig
- type AwsEksUpdateKubeconfigContext
- type BaseComponentConfig
- type CliConfiguration
- type Command
- type CommandArgument
- type CommandComponentConfig
- type CommandEnv
- type CommandFlag
- type Components
- type ConfigAndStacksInfo
- type Context
- type Cue
- type Dependant
- type DependsOn
- type Helmfile
- type Integrations
- type JsonSchema
- type Logs
- type Opa
- type Schemas
- type Settings
- type StackImport
- type Stacks
- type Terraform
- type Validation
- type ValidationItem
- type VendorComponentConfig
- type VendorComponentMetadata
- type VendorComponentMixins
- type VendorComponentSource
- type VendorComponentSpec
- type WorkflowConfig
- type WorkflowDefinition
- type WorkflowFile
- type WorkflowStep
- type Workflows
Constants ¶
const ( DefaultStackConfigFileExtension = ".yaml" CliConfigFileName = "atmos.yaml" SystemDirConfigFilePath = "/usr/local/etc/atmos" WindowsAppDataEnvVar = "LOCALAPPDATA" // GlobalOptionsFlag is a custom flag to specify helmfile `GLOBAL OPTIONS` // https://github.com/roboll/helmfile#cli-reference GlobalOptionsFlag = "--global-options" TerraformDirFlag = "--terraform-dir" HelmfileDirFlag = "--helmfile-dir" CliConfigDirFlag = "--config-dir" StackDirFlag = "--stacks-dir" BasePathFlag = "--base-path" WorkflowDirFlag = "--workflows-dir" KubeConfigConfigFlag = "--kubeconfig-path" JsonSchemaDirFlag = "--schemas-jsonschema-dir" OpaDirFlag = "--schemas-opa-dir" CueDirFlag = "--schemas-cue-dir" DeployRunInitFlag = "--deploy-run-init" AutoGenerateBackendFileFlag = "--auto-generate-backend-file" InitRunReconfigure = "--init-run-reconfigure" FromPlanFlag = "--from-plan" PlanFileFlag = "--planfile" DryRunFlag = "--dry-run" SkipInitFlag = "--skip-init" RedirectStdErrFlag = "--redirect-stderr" HelpFlag1 = "-h" HelpFlag2 = "--help" ComponentConfigFileName = "component.yaml" ImportSectionName = "import" )
Variables ¶
var NotFound = errors.New("\n'atmos.yaml' CLI config files not found in any of the searched paths: system dir, home dir, current dir, ENV vars." +
"\nYou can download a sample config and adapt it to your requirements from " +
"https://raw.githubusercontent.com/cloudposse/atmos/master/examples/complete/atmos.yaml")
Functions ¶
func FindAllStackConfigsInPaths ¶ added in v1.4.13
func FindAllStackConfigsInPaths( cliConfig CliConfiguration, includeStackPaths []string, excludeStackPaths []string, ) ([]string, []string, error)
FindAllStackConfigsInPaths finds all stack config files in the paths specified by globs
func FindAllStackConfigsInPathsForStack ¶ added in v1.4.13
func FindAllStackConfigsInPathsForStack( cliConfig CliConfiguration, stack string, includeStackPaths []string, excludeStackPaths []string, ) ([]string, []string, bool, error)
FindAllStackConfigsInPathsForStack finds all stack config files in the paths specified by globs for the provided stack
func GetContextPrefix ¶ added in v1.3.5
func GetContextPrefix(stack string, context Context, stackNamePattern string, stackFile string) (string, error)
GetContextPrefix calculates context prefix from the context
func GetStackNameFromContextAndStackNamePattern ¶ added in v1.4.9
func GetStackNameFromContextAndStackNamePattern( namespace string, tenant string, environment string, stage string, stackNamePattern string, ) (string, error)
GetStackNameFromContextAndStackNamePattern calculates stack name from the provided context using the provided stack name pattern
func ReplaceContextTokens ¶ added in v1.3.5
ReplaceContextTokens replaces context tokens in the provided pattern and returns a string with all the tokens replaced
Types ¶
type Affected ¶ added in v1.17.0
type Affected struct {
Component string `yaml:"component" json:"component" mapstructure:"component"`
ComponentType string `yaml:"component_type" json:"component_type" mapstructure:"component_type"`
ComponentPath string `yaml:"component_path" json:"component_path" mapstructure:"component_path"`
Namespace string `yaml:"namespace,omitempty" json:"namespace,omitempty" mapstructure:"namespace"`
Tenant string `yaml:"tenant,omitempty" json:"tenant,omitempty" mapstructure:"tenant"`
Environment string `yaml:"environment,omitempty" json:"environment,omitempty" mapstructure:"environment"`
Stage string `yaml:"stage,omitempty" json:"stage,omitempty" mapstructure:"stage"`
Stack string `yaml:"stack" json:"stack" mapstructure:"stack"`
StackSlug string `yaml:"stack_slug" json:"stack_slug" mapstructure:"stack_slug"`
SpaceliftStack string `yaml:"spacelift_stack,omitempty" json:"spacelift_stack,omitempty" mapstructure:"spacelift_stack"`
AtlantisProject string `yaml:"atlantis_project,omitempty" json:"atlantis_project,omitempty" mapstructure:"atlantis_project"`
Affected string `yaml:"affected" json:"affected" mapstructure:"affected"`
}
type ArgsAndFlagsInfo ¶
type ArgsAndFlagsInfo struct {
AdditionalArgsAndFlags []string
SubCommand string
SubCommand2 string
ComponentFromArg string
GlobalOptions []string
TerraformDir string
HelmfileDir string
ConfigDir string
StacksDir string
WorkflowsDir string
BasePath string
DeployRunInit string
InitRunReconfigure string
AutoGenerateBackendFile string
UseTerraformPlan bool
PlanFile string
DryRun bool
SkipInit bool
NeedHelp bool
JsonSchemaDir string
OpaDir string
CueDir string
RedirectStdErr string
}
type Atlantis ¶ added in v1.5.0
type Atlantis struct {
Path string `yaml:"path" json:"path" mapstructure:"path"`
ConfigTemplates map[string]AtlantisRepoConfig `yaml:"config_templates" json:"config_templates" mapstructure:"config_templates"`
ProjectTemplates map[string]AtlantisProjectConfig `yaml:"project_templates" json:"project_templates" mapstructure:"project_templates"`
WorkflowTemplates map[string]any `yaml:"workflow_templates" json:"workflow_templates" mapstructure:"workflow_templates"`
}
type AtlantisConfigOutput ¶ added in v1.5.0
type AtlantisConfigOutput struct {
Version int `yaml:"version" json:"version" mapstructure:"version"`
Automerge bool `yaml:"automerge" json:"automerge" mapstructure:"automerge"`
DeleteSourceBranchOnMerge bool `yaml:"delete_source_branch_on_merge" json:"delete_source_branch_on_merge" mapstructure:"delete_source_branch_on_merge"`
ParallelPlan bool `yaml:"parallel_plan" json:"parallel_plan" mapstructure:"parallel_plan"`
ParallelApply bool `yaml:"parallel_apply" json:"parallel_apply" mapstructure:"parallel_apply"`
AllowedRegexpPrefixes []string `yaml:"allowed_regexp_prefixes" json:"allowed_regexp_prefixes" mapstructure:"allowed_regexp_prefixes"`
Projects []AtlantisProjectConfig `yaml:"projects" json:"projects" mapstructure:"projects"`
Workflows map[string]any `yaml:"workflows,omitempty" json:"workflows,omitempty" mapstructure:"workflows"`
}
type AtlantisProjectAutoplanConfig ¶ added in v1.5.0
type AtlantisProjectConfig ¶ added in v1.5.0
type AtlantisProjectConfig struct {
Name string `yaml:"name" json:"name" mapstructure:"name"`
Workspace string `yaml:"workspace" json:"workspace" mapstructure:"workspace"`
Workflow string `yaml:"workflow,omitempty" json:"workflow,omitempty" mapstructure:"workflow"`
Dir string `yaml:"dir" json:"dir" mapstructure:"dir"`
TerraformVersion string `yaml:"terraform_version" json:"terraform_version" mapstructure:"terraform_version"`
DeleteSourceBranchOnMerge bool `yaml:"delete_source_branch_on_merge" json:"delete_source_branch_on_merge" mapstructure:"delete_source_branch_on_merge"`
Autoplan AtlantisProjectAutoplanConfig `yaml:"autoplan" json:"autoplan" mapstructure:"autoplan"`
ApplyRequirements []string `yaml:"apply_requirements" json:"apply_requirements" mapstructure:"apply_requirements"`
}
type AtlantisRepoConfig ¶ added in v1.5.0
type AtlantisRepoConfig struct {
Version int `yaml:"version" json:"version" mapstructure:"version"`
Automerge bool `yaml:"automerge" json:"automerge" mapstructure:"automerge"`
DeleteSourceBranchOnMerge bool `yaml:"delete_source_branch_on_merge" json:"delete_source_branch_on_merge" mapstructure:"delete_source_branch_on_merge"`
ParallelPlan bool `yaml:"parallel_plan" json:"parallel_plan" mapstructure:"parallel_plan"`
ParallelApply bool `yaml:"parallel_apply" json:"parallel_apply" mapstructure:"parallel_apply"`
AllowedRegexpPrefixes []string `yaml:"allowed_regexp_prefixes" json:"allowed_regexp_prefixes" mapstructure:"allowed_regexp_prefixes"`
}
type AwsEksUpdateKubeconfigContext ¶ added in v1.4.9
type BaseComponentConfig ¶ added in v1.25.0
type BaseComponentConfig struct {
BaseComponentVars map[any]any
BaseComponentSettings map[any]any
BaseComponentEnv map[any]any
FinalBaseComponentName string
BaseComponentCommand string
BaseComponentBackendType string
BaseComponentBackendSection map[any]any
BaseComponentRemoteStateBackendType string
BaseComponentRemoteStateBackendSection map[any]any
ComponentInheritanceChain []string
}
type CliConfiguration ¶ added in v1.10.0
type CliConfiguration struct {
BasePath string `yaml:"base_path" json:"base_path" mapstructure:"base_path"`
Components Components `yaml:"components" json:"components" mapstructure:"components"`
Stacks Stacks `yaml:"stacks" json:"stacks" mapstructure:"stacks"`
Workflows Workflows `yaml:"workflows" json:"workflows" mapstructure:"workflows"`
Logs Logs `yaml:"logs" json:"logs" mapstructure:"logs"`
Commands []Command `yaml:"commands" json:"commands" mapstructure:"commands"`
Integrations Integrations `yaml:"integrations" json:"integrations" mapstructure:"integrations"`
Schemas Schemas `yaml:"schemas" json:"schemas" mapstructure:"schemas"`
Initialized bool `yaml:"initialized" json:"initialized" mapstructure:"initialized"`
StacksBaseAbsolutePath string `yaml:"stacksBaseAbsolutePath" json:"stacksBaseAbsolutePath"`
IncludeStackAbsolutePaths []string `yaml:"includeStackAbsolutePaths" json:"includeStackAbsolutePaths"`
ExcludeStackAbsolutePaths []string `yaml:"excludeStackAbsolutePaths" json:"excludeStackAbsolutePaths"`
TerraformDirAbsolutePath string `yaml:"terraformDirAbsolutePath" json:"terraformDirAbsolutePath"`
HelmfileDirAbsolutePath string `yaml:"helmfileDirAbsolutePath" json:"helmfileDirAbsolutePath"`
StackConfigFilesRelativePaths []string `yaml:"stackConfigFilesRelativePaths" json:"stackConfigFilesRelativePaths"`
StackConfigFilesAbsolutePaths []string `yaml:"stackConfigFilesAbsolutePaths" json:"stackConfigFilesAbsolutePaths"`
StackType string `yaml:"stackType" json:"StackType"`
}
CliConfiguration structure represents schema for `atmos.yaml` CLI config
func InitCliConfig ¶ added in v1.10.0
func InitCliConfig(configAndStacksInfo ConfigAndStacksInfo, processStacks bool) (CliConfiguration, error)
InitCliConfig finds and merges CLI configurations in the following order: system dir, home dir, current dir, ENV vars, command-line arguments https://dev.to/techschoolguru/load-config-from-file-environment-variables-in-golang-with-viper-2j2d https://medium.com/@bnprashanth256/reading-configuration-files-and-environment-variables-in-go-golang-c2607f912b63
type Command ¶ added in v1.4.22
type Command struct {
Name string `yaml:"name" json:"name" mapstructure:"name"`
Description string `yaml:"description" json:"description" mapstructure:"description"`
Env []CommandEnv `yaml:"env" json:"env" mapstructure:"env"`
Arguments []CommandArgument `yaml:"arguments" json:"arguments" mapstructure:"arguments"`
Flags []CommandFlag `yaml:"flags" json:"flags" mapstructure:"flags"`
ComponentConfig CommandComponentConfig `yaml:"component_config" json:"component_config" mapstructure:"component_config"`
Steps []string `yaml:"steps" json:"steps" mapstructure:"steps"`
Commands []Command `yaml:"commands" json:"commands" mapstructure:"commands"`
Verbose bool `yaml:"verbose" json:"verbose" mapstructure:"verbose"`
}
type CommandArgument ¶ added in v1.4.22
type CommandComponentConfig ¶ added in v1.11.0
type CommandEnv ¶ added in v1.4.22
type CommandFlag ¶ added in v1.4.22
type CommandFlag struct {
Name string `yaml:"name" json:"name" mapstructure:"name"`
Shorthand string `yaml:"shorthand" json:"shorthand" mapstructure:"shorthand"`
Type string `yaml:"type" json:"type" mapstructure:"type"`
Description string `yaml:"description" json:"description" mapstructure:"description"`
Usage string `yaml:"usage" json:"usage" mapstructure:"usage"`
Required bool `yaml:"required" json:"required" mapstructure:"required"`
}
type Components ¶
type ConfigAndStacksInfo ¶
type ConfigAndStacksInfo struct {
StackFromArg string
Stack string
StackFile string
ComponentType string
ComponentFromArg string
Component string
ComponentFolderPrefix string
ComponentFolderPrefixReplaced string
BaseComponentPath string
BaseComponent string
FinalComponent string
Command string
SubCommand string
SubCommand2 string
ComponentSection map[string]any
ComponentVarsSection map[any]any
ComponentEnvSection map[any]any
ComponentEnvList []string
ComponentBackendSection map[any]any
ComponentBackendType string
AdditionalArgsAndFlags []string
GlobalOptions []string
BasePath string
TerraformDir string
HelmfileDir string
ConfigDir string
StacksDir string
WorkflowsDir string
Context Context
ContextPrefix string
DeployRunInit string
InitRunReconfigure string
AutoGenerateBackendFile string
UseTerraformPlan bool
PlanFile string
DryRun bool
SkipInit bool
ComponentInheritanceChain []string
NeedHelp bool
ComponentIsAbstract bool
ComponentMetadataSection map[any]any
TerraformWorkspace string
JsonSchemaDir string
OpaDir string
CueDir string
AtmosCliConfigPath string
AtmosBasePath string
RedirectStdErr string
}
type Context ¶
type Context struct {
Namespace string `yaml:"namespace" json:"namespace" mapstructure:"namespace"`
Tenant string `yaml:"tenant" json:"tenant" mapstructure:"tenant"`
Environment string `yaml:"environment" json:"environment" mapstructure:"environment"`
Stage string `yaml:"stage" json:"stage" mapstructure:"stage"`
Region string `yaml:"region" json:"region" mapstructure:"region"`
Component string `yaml:"component" json:"component" mapstructure:"component"`
BaseComponent string `yaml:"base_component" json:"base_component" mapstructure:"base_component"`
ComponentPath string `yaml:"component_path" json:"component_path" mapstructure:"component_path"`
Workspace string `yaml:"workspace" json:"workspace" mapstructure:"workspace"`
Attributes []string `yaml:"attributes" json:"attributes" mapstructure:"attributes"`
}
func GetContextFromVars ¶ added in v1.3.5
GetContextFromVars creates a context object from the provided variables
type Cue ¶ added in v1.9.0
type Cue struct {
BasePath string `yaml:"base_path" json:"base_path" mapstructure:"base_path"`
}
type Dependant ¶ added in v1.31.0
type Dependant struct {
Component string `yaml:"component" json:"component" mapstructure:"component"`
ComponentType string `yaml:"component_type" json:"component_type" mapstructure:"component_type"`
ComponentPath string `yaml:"component_path" json:"component_path" mapstructure:"component_path"`
Namespace string `yaml:"namespace,omitempty" json:"namespace,omitempty" mapstructure:"namespace"`
Tenant string `yaml:"tenant,omitempty" json:"tenant,omitempty" mapstructure:"tenant"`
Environment string `yaml:"environment,omitempty" json:"environment,omitempty" mapstructure:"environment"`
Stage string `yaml:"stage,omitempty" json:"stage,omitempty" mapstructure:"stage"`
Stack string `yaml:"stack" json:"stack" mapstructure:"stack"`
StackSlug string `yaml:"stack_slug" json:"stack_slug" mapstructure:"stack_slug"`
SpaceliftStack string `yaml:"spacelift_stack,omitempty" json:"spacelift_stack,omitempty" mapstructure:"spacelift_stack"`
AtlantisProject string `yaml:"atlantis_project,omitempty" json:"atlantis_project,omitempty" mapstructure:"atlantis_project"`
}
type Helmfile ¶
type Helmfile struct {
BasePath string `yaml:"base_path" json:"base_path" mapstructure:"base_path"`
UseEKS bool `yaml:"use_eks" json:"use_eks" mapstructure:"use_eks"`
KubeconfigPath string `yaml:"kubeconfig_path" json:"kubeconfig_path" mapstructure:"kubeconfig_path"`
HelmAwsProfilePattern string `yaml:"helm_aws_profile_pattern" json:"helm_aws_profile_pattern" mapstructure:"helm_aws_profile_pattern"`
ClusterNamePattern string `yaml:"cluster_name_pattern" json:"cluster_name_pattern" mapstructure:"cluster_name_pattern"`
}
type Integrations ¶ added in v1.5.0
type Integrations struct {
Atlantis Atlantis `yaml:"atlantis" json:"atlantis" mapstructure:"atlantis"`
}
type JsonSchema ¶ added in v1.9.0
type JsonSchema struct {
BasePath string `yaml:"base_path" json:"base_path" mapstructure:"base_path"`
}
type Opa ¶ added in v1.9.0
type Opa struct {
BasePath string `yaml:"base_path" json:"base_path" mapstructure:"base_path"`
}
type Schemas ¶ added in v1.9.0
type Schemas struct {
JsonSchema JsonSchema `yaml:"jsonschema" json:"jsonschema" mapstructure:"jsonschema"`
Cue Cue `yaml:"cue" json:"cue" mapstructure:"cue"`
Opa Opa `yaml:"opa" json:"opa" mapstructure:"opa"`
}
type Settings ¶ added in v1.31.0
type Settings struct {
DependsOn DependsOn `yaml:"depends_on" json:"depends_on" mapstructure:"depends_on"`
}
type StackImport ¶ added in v1.25.0
type Stacks ¶
type Stacks struct {
BasePath string `yaml:"base_path" json:"base_path" mapstructure:"base_path"`
IncludedPaths []string `yaml:"included_paths" json:"included_paths" mapstructure:"included_paths"`
ExcludedPaths []string `yaml:"excluded_paths" json:"excluded_paths" mapstructure:"excluded_paths"`
NamePattern string `yaml:"name_pattern" json:"name_pattern" mapstructure:"name_pattern"`
}
type Terraform ¶
type Terraform struct {
BasePath string `yaml:"base_path" json:"base_path" mapstructure:"base_path"`
ApplyAutoApprove bool `yaml:"apply_auto_approve" json:"apply_auto_approve" mapstructure:"apply_auto_approve"`
DeployRunInit bool `yaml:"deploy_run_init" json:"deploy_run_init" mapstructure:"deploy_run_init"`
InitRunReconfigure bool `yaml:"init_run_reconfigure" json:"init_run_reconfigure" mapstructure:"init_run_reconfigure"`
AutoGenerateBackendFile bool `yaml:"auto_generate_backend_file" json:"auto_generate_backend_file" mapstructure:"auto_generate_backend_file"`
}
type Validation ¶ added in v1.9.0
type Validation map[string]ValidationItem
type ValidationItem ¶ added in v1.9.0
type ValidationItem struct {
SchemaType string `yaml:"schema_type" json:"schema_type" mapstructure:"schema_type"`
SchemaPath string `yaml:"schema_path" json:"schema_path" mapstructure:"schema_path"`
Description string `yaml:"description" json:"description" mapstructure:"description"`
Disabled bool `yaml:"disabled" json:"disabled" mapstructure:"disabled"`
}
type VendorComponentConfig ¶ added in v1.4.12
type VendorComponentConfig struct {
ApiVersion string `yaml:"apiVersion" json:"apiVersion" mapstructure:"apiVersion"`
Kind string `yaml:"kind" json:"kind" mapstructure:"kind"`
Metadata VendorComponentMetadata
Spec VendorComponentSpec `yaml:"spec" json:"spec" mapstructure:"spec"`
}
type VendorComponentMetadata ¶ added in v1.4.12
type VendorComponentMixins ¶ added in v1.4.12
type VendorComponentSource ¶ added in v1.4.12
type VendorComponentSource struct {
Type string `yaml:"type" json:"type" mapstructure:"type"`
Uri string `yaml:"uri" json:"uri" mapstructure:"uri"`
Version string `yaml:"version" json:"version" mapstructure:"version"`
IncludedPaths []string `yaml:"included_paths" json:"included_paths" mapstructure:"included_paths"`
ExcludedPaths []string `yaml:"excluded_paths" json:"excluded_paths" mapstructure:"excluded_paths"`
}
type VendorComponentSpec ¶ added in v1.4.12
type VendorComponentSpec struct {
Source VendorComponentSource
Mixins []VendorComponentMixins
}
type WorkflowConfig ¶ added in v1.4.0
type WorkflowConfig map[string]WorkflowDefinition
type WorkflowDefinition ¶ added in v1.4.0
type WorkflowDefinition struct {
Description string `yaml:"description,omitempty" json:"description,omitempty" mapstructure:"description"`
Steps []WorkflowStep `yaml:"steps" json:"steps" mapstructure:"steps"`
Stack string `yaml:"stack,omitempty" json:"stack,omitempty" mapstructure:"stack"`
}
type WorkflowFile ¶ added in v1.4.0
type WorkflowFile map[string]WorkflowConfig
type WorkflowStep ¶ added in v1.4.0
type WorkflowStep struct {
Name string `yaml:"name" json:"name" mapstructure:"name"`
Command string `yaml:"command" json:"command" mapstructure:"command"`
Stack string `yaml:"stack,omitempty" json:"stack,omitempty" mapstructure:"stack"`
Type string `yaml:"type,omitempty" json:"type,omitempty" mapstructure:"type"`
}