Skip to content

Commit c9a0625

Browse files
authored
suport ignore include blocks for terragrunt (#1849)
* suport ignore include blocks for terragrunt * seperate lines for args
1 parent 1d8067a commit c9a0625

File tree

3 files changed

+12
-10
lines changed

3 files changed

+12
-10
lines changed

libs/digger_config/digger_config.go

+1
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,7 @@ func hydrateDiggerConfigYamlWithTerragrunt(configYaml *DiggerConfigYaml, parsing
526526
parsingConfig.CreateHclProjectChilds,
527527
ignoreParentTerragrunt,
528528
parsingConfig.IgnoreDependencyBlocks,
529+
parsingConfig.IgnoreIncludeBlocks,
529530
cascadeDependencies,
530531
parsingConfig.DefaultWorkflow,
531532
parsingConfig.DefaultApplyRequirements,

libs/digger_config/terragrunt/atlantis/generate.go

+10-10
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func sliceUnion(a, b []string) []string {
118118
}
119119

120120
// Parses the terragrunt digger_config at `path` to find all modules it depends on
121-
func getDependencies(ignoreParentTerragrunt bool, ignoreDependencyBlocks bool, gitRoot string, cascadeDependencies bool, path string, terragruntOptions *options.TerragruntOptions) ([]string, error) {
121+
func getDependencies(ignoreParentTerragrunt bool, ignoreDependencyBlocks bool, ignoreIncludeBlocks bool, gitRoot string, cascadeDependencies bool, path string, terragruntOptions *options.TerragruntOptions) ([]string, error) {
122122
res, err, _ := requestGroup.Do(path, func() (interface{}, error) {
123123
// Check if this path has already been computed
124124
cachedResult, ok := getDependenciesCache.get(path)
@@ -139,7 +139,7 @@ func getDependencies(ignoreParentTerragrunt bool, ignoreDependencyBlocks bool, g
139139
}
140140

141141
dependencies := []string{}
142-
if len(includes) > 0 {
142+
if !ignoreIncludeBlocks && len(includes) > 0 {
143143
for _, includeDep := range includes {
144144
getDependenciesCache.set(includeDep.Path, getDependenciesOutput{nil, err})
145145
dependencies = append(dependencies, includeDep.Path)
@@ -256,7 +256,7 @@ func getDependencies(ignoreParentTerragrunt bool, ignoreDependencyBlocks bool, g
256256
depPath := dep
257257
terrOpts, _ := options.NewTerragruntOptionsWithConfigPath(depPath)
258258
terrOpts.OriginalTerragruntConfigPath = terragruntOptions.OriginalTerragruntConfigPath
259-
childDeps, err := getDependencies(ignoreParentTerragrunt, ignoreDependencyBlocks, gitRoot, cascadeDependencies, depPath, terrOpts)
259+
childDeps, err := getDependencies(ignoreParentTerragrunt, ignoreDependencyBlocks, ignoreIncludeBlocks, gitRoot, cascadeDependencies, depPath, terrOpts)
260260
if err != nil {
261261
continue
262262
}
@@ -313,7 +313,7 @@ func getDependencies(ignoreParentTerragrunt bool, ignoreDependencyBlocks bool, g
313313
}
314314

315315
// Creates an AtlantisProject for a directory
316-
func createProject(ignoreParentTerragrunt bool, ignoreDependencyBlocks bool, gitRoot string, cascadeDependencies bool, defaultWorkflow string, defaultApplyRequirements []string, autoPlan bool, defaultTerraformVersion string, createProjectName bool, createWorkspace bool, sourcePath string) (*AtlantisProject, []string, error) {
316+
func createProject(ignoreParentTerragrunt bool, ignoreDependencyBlocks bool, ignoreIncludeBlocks bool, gitRoot string, cascadeDependencies bool, defaultWorkflow string, defaultApplyRequirements []string, autoPlan bool, defaultTerraformVersion string, createProjectName bool, createWorkspace bool, sourcePath string) (*AtlantisProject, []string, error) {
317317
options, err := options.NewTerragruntOptionsWithConfigPath(sourcePath)
318318

319319
var potentialProjectDependencies []string
@@ -324,7 +324,7 @@ func createProject(ignoreParentTerragrunt bool, ignoreDependencyBlocks bool, git
324324
options.RunTerragrunt = terraform.Run
325325
options.Env = getEnvs()
326326

327-
dependencies, err := getDependencies(ignoreParentTerragrunt, ignoreDependencyBlocks, gitRoot, cascadeDependencies, sourcePath, options)
327+
dependencies, err := getDependencies(ignoreParentTerragrunt, ignoreDependencyBlocks, ignoreIncludeBlocks, gitRoot, cascadeDependencies, sourcePath, options)
328328
if err != nil {
329329
return nil, potentialProjectDependencies, err
330330
}
@@ -434,7 +434,7 @@ func projectNameFromDir(projectDir string) string {
434434
return projectName
435435
}
436436

437-
func createHclProject(defaultWorkflow string, defaultApplyRequirements []string, autoplan bool, useProjectMarkers bool, defaultTerraformVersion string, ignoreParentTerragrunt bool, ignoreDependencyBlocks bool, gitRoot string, cascadeDependencies bool, createProjectName bool, createWorkspace bool, sourcePaths []string, workingDir string, projectHcl string) (*AtlantisProject, error) {
437+
func createHclProject(defaultWorkflow string, defaultApplyRequirements []string, autoplan bool, useProjectMarkers bool, defaultTerraformVersion string, ignoreParentTerragrunt bool, ignoreDependencyBlocks bool, ignoreIncludeBlocks bool, gitRoot string, cascadeDependencies bool, createProjectName bool, createWorkspace bool, sourcePaths []string, workingDir string, projectHcl string) (*AtlantisProject, error) {
438438
var projectHclDependencies []string
439439
var childDependencies []string
440440
workflow := defaultWorkflow
@@ -507,7 +507,7 @@ func createHclProject(defaultWorkflow string, defaultApplyRequirements []string,
507507
options.RunTerragrunt = terraform.Run
508508
options.Env = getEnvs()
509509

510-
dependencies, err := getDependencies(ignoreParentTerragrunt, ignoreDependencyBlocks, gitRoot, cascadeDependencies, sourcePath, options)
510+
dependencies, err := getDependencies(ignoreParentTerragrunt, ignoreDependencyBlocks, ignoreIncludeBlocks, gitRoot, cascadeDependencies, sourcePath, options)
511511
if err != nil {
512512
return nil, err
513513
}
@@ -660,7 +660,7 @@ func getAllTerragruntProjectHclFiles(projectHclFiles []string, gitRoot string) m
660660
return uniqueHclFileAbsPaths
661661
}
662662

663-
func Parse(gitRoot string, projectHclFiles []string, createHclProjectExternalChilds bool, autoMerge bool, parallel bool, filterPath string, createHclProjectChilds bool, ignoreParentTerragrunt bool, ignoreDependencyBlocks bool, cascadeDependencies bool, defaultWorkflow string, defaultApplyRequirements []string, autoPlan bool, defaultTerraformVersion string, createProjectName bool, createWorkspace bool, preserveProjects bool, useProjectMarkers bool, executionOrderGroups bool) (*AtlantisConfig, map[string][]string, error) {
663+
func Parse(gitRoot string, projectHclFiles []string, createHclProjectExternalChilds bool, autoMerge bool, parallel bool, filterPath string, createHclProjectChilds bool, ignoreParentTerragrunt bool, ignoreDependencyBlocks bool, ignoreIncludeBlocks bool, cascadeDependencies bool, defaultWorkflow string, defaultApplyRequirements []string, autoPlan bool, defaultTerraformVersion string, createProjectName bool, createWorkspace bool, preserveProjects bool, useProjectMarkers bool, executionOrderGroups bool) (*AtlantisConfig, map[string][]string, error) {
664664
// Ensure the gitRoot has a trailing slash and is an absolute path
665665
absoluteGitRoot, err := filepath.Abs(gitRoot)
666666
if err != nil {
@@ -726,7 +726,7 @@ func Parse(gitRoot string, projectHclFiles []string, createHclProjectExternalChi
726726

727727
errGroup.Go(func() error {
728728
defer sem.Release(1)
729-
project, projDeps, err := createProject(ignoreParentTerragrunt, ignoreDependencyBlocks, gitRoot, cascadeDependencies, defaultWorkflow, defaultApplyRequirements, autoPlan, defaultTerraformVersion, createProjectName, createWorkspace, terragruntPath)
729+
project, projDeps, err := createProject(ignoreParentTerragrunt, ignoreDependencyBlocks, ignoreIncludeBlocks, gitRoot, cascadeDependencies, defaultWorkflow, defaultApplyRequirements, autoPlan, defaultTerraformVersion, createProjectName, createWorkspace, terragruntPath)
730730
if err != nil {
731731
return err
732732
}
@@ -785,7 +785,7 @@ func Parse(gitRoot string, projectHclFiles []string, createHclProjectExternalChi
785785

786786
errGroup.Go(func() error {
787787
defer sem.Release(1)
788-
project, err := createHclProject(defaultWorkflow, defaultApplyRequirements, autoPlan, useProjectMarkers, defaultTerraformVersion, ignoreParentTerragrunt, ignoreDependencyBlocks, gitRoot, cascadeDependencies, createProjectName, createWorkspace, terragruntFiles, workingDir, projectHcl)
788+
project, err := createHclProject(defaultWorkflow, defaultApplyRequirements, autoPlan, useProjectMarkers, defaultTerraformVersion, ignoreParentTerragrunt, ignoreDependencyBlocks, ignoreIncludeBlocks, gitRoot, cascadeDependencies, createProjectName, createWorkspace, terragruntFiles, workingDir, projectHcl)
789789
if err != nil {
790790
return err
791791
}

libs/digger_config/yaml.go

+1
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ type TerragruntParsingConfig struct {
143143
IgnoreParentTerragrunt *bool `yaml:"ignoreParentTerragrunt,omitempty"`
144144
CreateParentProject bool `yaml:"createParentProject"`
145145
IgnoreDependencyBlocks bool `yaml:"ignoreDependencyBlocks"`
146+
IgnoreIncludeBlocks bool `yaml:"ignoreIncludeBlocks"`
146147
Parallel *bool `yaml:"parallel,omitempty"`
147148
CreateWorkspace bool `yaml:"createWorkspace"`
148149
CreateProjectName bool `yaml:"createProjectName"`

0 commit comments

Comments
 (0)