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) ValidateRepoCfg(rCfg RepoCfg, repoID string) error
- type GlobalCfgArgs
- type MergedProjectCfg
- type Metrics
- type PolicyOwners
- type PolicySet
- type PolicySets
- type Project
- 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 AllowCustomWorkflowsKey = "allow_custom_workflows"
const AllowedOverridesKey = "allowed_overrides"
const AllowedWorkflowsKey = "allowed_workflows"
const ApplyRequirementsKey = "apply_requirements"
const ApprovedApplyReq = "approved"
const DefaultAutoPlanEnabled = true
const DefaultWorkflowName = "default"
const DeleteSourceBranchOnMergeKey = "delete_source_branch_on_merge"
const MergeableApplyReq = "mergeable"
const PoliciesPassedApplyReq = "policies_passed"
const PostWorkflowHooksKey = "post_workflow_hooks"
const PreWorkflowHooksKey = "pre_workflow_hooks"
const UnDivergedApplyReq = "undiverged"
const WorkflowKey = "workflow"
Variables ¶
var DefaultApplyStage = Stage{ Steps: []Step{ { StepName: "apply", }, }, }
DefaultApplyStage is the Atlantis default apply 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 NonOverrideableApplyReqs = []string{PoliciesPassedApplyReq}
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.
type GlobalCfgArgs ¶
type GlobalCfgArgs struct { AllowRepoCfg bool MergeableReq bool ApprovedReq bool UnDivergedReq bool PolicyCheckEnabled bool PreWorkflowHooks []*WorkflowHook PostWorkflowHooks []*WorkflowHook }
type MergedProjectCfg ¶
type MergedProjectCfg struct { ApplyRequirements []string Workflow Workflow AllowedWorkflows []string RepoRelDir string Workspace string Name string AutoplanEnabled bool AutoMergeDisabled bool TerraformVersion *version.Version RepoCfgVersion int PolicySets PolicySets DeleteSourceBranchOnMerge bool }
type PolicyOwners ¶
type PolicyOwners struct {
Users []string
}
type PolicySet ¶
type PolicySet struct { Source string Path string Name string Owners PolicyOwners }
type PolicySets ¶
type PolicySets struct { Version *version.Version Owners PolicyOwners 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) IsOwner ¶
func (p *PolicySets) IsOwner(username string) bool
type Project ¶
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 ApplyRequirements []string PreWorkflowHooks []*WorkflowHook Workflow *Workflow PostWorkflowHooks []*WorkflowHook AllowedWorkflows []string AllowedOverrides []string AllowCustomWorkflows *bool DeleteSourceBranchOnMerge *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 AllowedRegexpPrefixes []string }
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 // 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 }
type WorkflowHook ¶
WorkflowHook is a map of custom run commands to run before or after workflows.