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 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) 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) 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 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 AllowedWorkflowsKey = "allowed_workflows"
const ApplyRequirementsKey = "apply_requirements"
const ApprovedCommandReq = "approved"
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 PostWorkflowHooksKey = "post_workflow_hooks"
const PreWorkflowHooksKey = "pre_workflow_hooks"
const RepoLockingKey = "repo_locking"
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 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 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 NewGlobalCfg ¶
NewGlobalCfg returns a global config that respects the parameters. allowRepoCfg is true if users want to allow repos full config functionality. mergeableReq is true if users want to set the mergeable apply requirement for all repos. approvedReq is true if users want to set the approved apply requirement for all repos. Deprecated: use NewGlobalCfgFromArgs
func NewGlobalCfgFromArgs ¶
func NewGlobalCfgFromArgs(args GlobalCfgArgs) GlobalCfg
func NewGlobalCfgWithHooks
deprecated
func NewGlobalCfgWithHooks(allowRepoCfg bool, mergeableReq bool, approvedReq bool, unDivergedReq bool, preWorkflowHooks []*WorkflowHook, postWorkflowHooks []*WorkflowHook) GlobalCfg
Deprecated: use NewGlobalCfgFromArgs
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) 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
AllowRepoCfg bool
MergeableReq bool
ApprovedReq bool
UnDivergedReq bool
PolicyCheckEnabled bool
PreWorkflowHooks []*WorkflowHook
PostWorkflowHooks []*WorkflowHook
}
type MergedProjectCfg ¶
type MergedProjectCfg struct {
PlanRequirements []string
ApplyRequirements []string
ImportRequirements []string
Workflow Workflow
AllowedWorkflows []string
RepoRelDir string
Workspace string
Name string
AutoplanEnabled bool
AutoMergeDisabled bool
TerraformVersion *version.Version
RepoCfgVersion int
PolicySets PolicySets
DeleteSourceBranchOnMerge bool
ExecutionOrderGroup int
RepoLocking bool
PolicyCheck 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
DeleteSourceBranchOnMerge *bool
RepoLocking *bool
ExecutionOrderGroup int
PolicyCheck *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
PolicyCheck *bool
}
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
ParallelApply *bool
ParallelPlan *bool
ParallelPolicyCheck *bool
DeleteSourceBranchOnMerge *bool
RepoLocking *bool
EmojiReaction string
AllowedRegexpPrefixes []string
AbortOnExcecutionOrderFail bool
}
RepoCfg is the atlantis.yaml config after it's been parsed and validated.
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 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
}