Documentation ¶
Overview ¶
Package valid contains the structs representing the atlantis.yaml config after it's been parsed and validated.
Package valid contains definitions of valid yaml configuration after its been parsed and validated.
Index ¶
- Constants
- Variables
- type AutoDiscover
- type AutoDiscoverMode
- type Autoplan
- type GlobalCfg
- func (g GlobalCfg) DefaultProjCfg(log logging.SimpleLogging, repoID string, repoRelDir string, workspace string) MergedProjectCfg
- func (g GlobalCfg) MatchingRepo(repoID string) *Repo
- func (g GlobalCfg) MergeProjectCfg(log logging.SimpleLogging, repoID string, proj Project, rCfg RepoCfg) MergedProjectCfg
- func (g GlobalCfg) RepoAutoDiscoverCfg(repoID string) *AutoDiscover
- func (g GlobalCfg) RepoConfigFile(repoID string) string
- func (g GlobalCfg) ValidateRepoCfg(rCfg RepoCfg, repoID string) error
- type GlobalCfgArgs
- type MergedProjectCfg
- type Metrics
- type PolicyOwners
- type PolicySet
- type PolicySets
- type PostProcessRunOutputOption
- type Project
- type Prometheus
- type Repo
- type RepoCfg
- func (r RepoCfg) AutoDiscoverEnabled(defaultAutoDiscoverMode AutoDiscoverMode) bool
- func (r RepoCfg) FindProjectByName(name string) *Project
- func (r RepoCfg) FindProjectsByDir(dir string) []Project
- func (r RepoCfg) FindProjectsByDirWorkspace(repoRelDir string, workspace string) []Project
- func (r RepoCfg) FindProjectsByName(name string) []Project
- func (r RepoCfg) ValidateWorkspaceAllowed(repoRelDir string, workspace string) error
- type RepoLocks
- type RepoLocksMode
- type Stage
- type Statsd
- type Step
- type Workflow
- type WorkflowHook
Constants ¶
const ( LocalPolicySet string = "local" GithubPolicySet string = "github" )
const ( PostProcessRunOutputShow = "show" PostProcessRunOutputHide = "hide" PostProcessRunOutputStripRefreshing = "strip_refreshing" )
const AllowCustomWorkflowsKey = "allow_custom_workflows"
const AllowedOverridesKey = "allowed_overrides"
const ApplyRequirementsKey = "apply_requirements"
const ApprovedCommandReq = "approved"
const AutoDiscoverKey = "autodiscover"
const CustomPolicyCheckKey = "custom_policy_check"
const DefaultAtlantisFile = "atlantis.yaml"
DefaultAtlantisFile is the default name of the config file for each repo.
const DefaultAutoPlanEnabled = true
const DefaultWorkflowName = "default"
const DeleteSourceBranchOnMergeKey = "delete_source_branch_on_merge"
const ImportRequirementsKey = "import_requirements"
const MergeableCommandReq = "mergeable"
const PlanRequirementsKey = "plan_requirements"
const PoliciesPassedCommandReq = "policies_passed"
const PolicyCheckKey = "policy_check"
const RepoLockingKey = "repo_locking"
const RepoLocksKey = "repo_locks"
const UnDivergedCommandReq = "undiverged"
const WorkflowKey = "workflow"
Variables ¶
var DefaultApplyStage = Stage{ Steps: []Step{ { StepName: "apply", }, }, }
DefaultApplyStage is the Atlantis default apply stage.
var DefaultImportStage = Stage{ Steps: []Step{ { StepName: "init", }, { StepName: "import", }, }, }
DefaultImportStage is the Atlantis default import stage.
var DefaultPlanStage = Stage{ Steps: []Step{ { StepName: "init", }, { StepName: "plan", }, }, }
DefaultPlanStage is the Atlantis default plan stage.
var DefaultPolicyCheckStage = Stage{ Steps: []Step{ { StepName: "show", }, { StepName: "policy_check", }, }, }
DefaultPolicyCheckStage is the Atlantis default policy check stage.
var DefaultRepoLocks = RepoLocks{ Mode: DefaultRepoLocksMode, }
var DefaultRepoLocksMode = RepoLocksOnPlanMode
var DefaultStateRmStage = Stage{ Steps: []Step{ { StepName: "init", }, { StepName: "state_rm", }, }, }
DefaultStateRmStage is the Atlantis default state_rm stage.
var NonOverrideableApplyReqs = []string{PoliciesPassedCommandReq}
NonOverrideableApplyReqs will get applied across all "repos" in the server side config. If repo config is allowed overrides, they can override this. TODO: Make this more customizable, not everyone wants this rigid workflow maybe something along the lines of defining overridable/non-overrideable apply requirements in the config and removing the flag to enable policy checking.
Functions ¶
This section is empty.
Types ¶
type AutoDiscover ¶ added in v0.27.0
type AutoDiscover struct {
Mode AutoDiscoverMode
}
type AutoDiscoverMode ¶ added in v0.27.0
type AutoDiscoverMode string
AutoDiscoverMode enum
const ( AutoDiscoverEnabledMode AutoDiscoverMode = "enabled" AutoDiscoverDisabledMode AutoDiscoverMode = "disabled" AutoDiscoverAutoMode AutoDiscoverMode = "auto" )
type GlobalCfg ¶
type GlobalCfg struct { Repos []Repo Workflows map[string]Workflow PolicySets PolicySets Metrics Metrics }
GlobalCfg is the final parsed version of server-side repo config.
func NewGlobalCfgFromArgs ¶
func NewGlobalCfgFromArgs(args GlobalCfgArgs) GlobalCfg
func (GlobalCfg) DefaultProjCfg ¶
func (g GlobalCfg) DefaultProjCfg(log logging.SimpleLogging, repoID string, repoRelDir string, workspace string) MergedProjectCfg
DefaultProjCfg returns the default project config for all projects under the repo with id repoID. It is used when there is no repo config.
func (GlobalCfg) MatchingRepo ¶
MatchingRepo returns an instance of Repo which matches a given repoID. If multiple repos match, return the last one for consistency with getMatchingCfg.
func (GlobalCfg) MergeProjectCfg ¶
func (g GlobalCfg) MergeProjectCfg(log logging.SimpleLogging, repoID string, proj Project, rCfg RepoCfg) MergedProjectCfg
MergeProjectCfg merges proj and rCfg with the global config to return a final config. It assumes that all configs have been validated.
func (GlobalCfg) RepoAutoDiscoverCfg ¶ added in v0.27.0
func (g GlobalCfg) RepoAutoDiscoverCfg(repoID string) *AutoDiscover
RepoAutoDiscoverCfg returns the AutoDiscover config from the global config for the repo with id repoID. If no matching repo is found or there is no AutoDiscover config then this function returns nil.
func (GlobalCfg) RepoConfigFile ¶ added in v0.22.0
RepoConfigFile returns a repository specific file path If not defined, return atlantis.yaml as default
type GlobalCfgArgs ¶
type GlobalCfgArgs struct { RepoConfigFile string // No longer a user option as of https://github.com/runatlantis/atlantis/pull/3911, // but useful for tests to set to true to not require enumeration of allowed settings // on the repo side AllowAllRepoSettings bool PolicyCheckEnabled bool PreWorkflowHooks []*WorkflowHook PostWorkflowHooks []*WorkflowHook }
type MergedProjectCfg ¶
type MergedProjectCfg struct { PlanRequirements []string ApplyRequirements []string ImportRequirements []string Workflow Workflow AllowedWorkflows []string DependsOn []string RepoRelDir string Workspace string Name string AutoplanEnabled bool AutoMergeDisabled bool TerraformVersion *version.Version RepoCfgVersion int PolicySets PolicySets DeleteSourceBranchOnMerge bool ExecutionOrderGroup int RepoLocks RepoLocks PolicyCheck bool CustomPolicyCheck bool }
type Metrics ¶ added in v0.19.3
type Metrics struct { Statsd *Statsd Prometheus *Prometheus }
type PolicyOwners ¶
type PolicySet ¶
type PolicySet struct { Source string Path string Name string ApproveCount int Owners PolicyOwners }
type PolicySets ¶
type PolicySets struct { Version *version.Version Owners PolicyOwners ApproveCount int PolicySets []PolicySet }
PolicySets defines version of policy checker binary(conftest) and a list of PolicySet objects. PolicySets struct is used by PolicyCheck workflow to build context to enforce policies.
func (*PolicySets) HasPolicies ¶
func (p *PolicySets) HasPolicies() bool
func (*PolicySets) HasTeamOwners ¶ added in v0.22.3
func (p *PolicySets) HasTeamOwners() bool
Check if any level of policy owners includes teams
type PostProcessRunOutputOption ¶ added in v0.24.4
type PostProcessRunOutputOption string
PostProcessRunOutputOption is an enum of options for post-processing RunCommand output
type Project ¶
type Project struct { Dir string BranchRegex *regexp.Regexp Workspace string Name *string WorkflowName *string TerraformVersion *version.Version Autoplan Autoplan PlanRequirements []string ApplyRequirements []string ImportRequirements []string DependsOn []string DeleteSourceBranchOnMerge *bool RepoLocking *bool RepoLocks *RepoLocks ExecutionOrderGroup int PolicyCheck *bool CustomPolicyCheck *bool }
type Prometheus ¶ added in v0.19.5
type Prometheus struct {
Endpoint string
}
type Repo ¶
type Repo struct { // ID is the exact match id of this config. // If IDRegex is set then this will be empty. ID string // IDRegex is the regex match for this config. // If ID is set then this will be nil. IDRegex *regexp.Regexp BranchRegex *regexp.Regexp RepoConfigFile string PlanRequirements []string ApplyRequirements []string ImportRequirements []string PreWorkflowHooks []*WorkflowHook Workflow *Workflow PostWorkflowHooks []*WorkflowHook AllowedWorkflows []string AllowedOverrides []string AllowCustomWorkflows *bool DeleteSourceBranchOnMerge *bool RepoLocking *bool RepoLocks *RepoLocks PolicyCheck *bool CustomPolicyCheck *bool AutoDiscover *AutoDiscover }
Repo is the final parsed version of server-side repo config.
func (Repo) BranchMatches ¶
BranchMatches returns true if the branch other matches a branch regex (if preset).
type RepoCfg ¶
type RepoCfg struct { // Version is the version of the atlantis YAML file. Version int Projects []Project Workflows map[string]Workflow PolicySets PolicySets Automerge *bool AutoDiscover *AutoDiscover ParallelApply *bool ParallelPlan *bool ParallelPolicyCheck *bool DeleteSourceBranchOnMerge *bool RepoLocks *RepoLocks CustomPolicyCheck *bool EmojiReaction string AllowedRegexpPrefixes []string AbortOnExcecutionOrderFail bool }
RepoCfg is the atlantis.yaml config after it's been parsed and validated.
func (RepoCfg) AutoDiscoverEnabled ¶ added in v0.27.0
func (r RepoCfg) AutoDiscoverEnabled(defaultAutoDiscoverMode AutoDiscoverMode) bool
This function returns a final true/false decision for whether AutoDiscover is enabled for a repo. It takes into account the defaultAutoDiscoverMode when there is no explicit repo config. The defaultAutoDiscoverMode param should be understood as the default AutoDiscover mode as may be set via CLI params or server side repo config.
func (RepoCfg) FindProjectByName ¶
func (RepoCfg) FindProjectsByDir ¶
FindProjectsByDir returns all projects that are in dir.
func (RepoCfg) FindProjectsByDirWorkspace ¶
func (RepoCfg) FindProjectsByName ¶
FindProjectsByName returns all projects that match with name.
func (RepoCfg) ValidateWorkspaceAllowed ¶
validateWorkspaceAllowed returns an error if repoCfg defines projects in repoRelDir but none of them use workspace. We want this to be an error because if users have gone to the trouble of defining projects in repoRelDir then it's likely that if we're running a command for a workspace that isn't defined then they probably just typed the workspace name wrong.
type RepoLocks ¶ added in v0.28.0
type RepoLocks struct {
Mode RepoLocksMode
}
type RepoLocksMode ¶ added in v0.28.0
type RepoLocksMode string
RepoLocksMode enum
const ( RepoLocksDisabledMode RepoLocksMode = "disabled" RepoLocksOnPlanMode RepoLocksMode = "on_plan" RepoLocksOnApplyMode RepoLocksMode = "on_apply" )
type Step ¶
type Step struct { StepName string ExtraArgs []string // RunCommand is either a custom run step or the command to run // during an env step to populate the environment variable dynamically. RunCommand string // Output is option for post-processing a RunCommand output Output PostProcessRunOutputOption // EnvVarName is the name of the // environment variable that should be set by this step. EnvVarName string // EnvVarValue is the value to set EnvVarName to. EnvVarValue string }