Atlantis: Allow supplying wildcard for dir

Created on 21 Jun 2019  路  11Comments  路  Source: runatlantis/atlantis

We define our terraform code in what we call stacks. Each stack defines multiple environments where each directory off root is the environment.

Currently we have to add a project for each directory. Would be nice if you could specify a wildcard for the dir name in the project and just have Atlantis run a plan for each directory that matches that pattern.

feature

Most helpful comment

Hi, has this feature added in atlantis?

All 11 comments

I have a project with 60+ subfolder. It will be helpful for me if we have this feature.

Hello! We also looking a way to not duplicate the whole definition for every sub-folder.
Would be very helpful to either allow wildcards or to introduce root-level workspace, apply_requirements and everything else.

Hi, has this feature added in atlantis?

Hi guys. Any news here? This option would be really useful if you have lot of subfolders. I found terragrunt-atlantis-config tool to automatically generate atlantis.yaml based on current git repo but it's not enough flexible when you have different workflow's for different sub folders.

@mjagielka Just a heads up, terragrunt-atlantis-config now supports different workflows for different subfolders by specifying a workflow name in the locals of the parent Terragrunt module 馃槃

Atlantis is applying commands in the path where *.tf file is changed, this happen when i do not have atlantis.yaml file. Why not let the same process in case we have the atlantis.yaml file and i do not have the project specified for a specific path in the config file? Is very hard to maintain atlantis.yaml file in case we have many projects and most of them we apply same version or rules.
So, i can see like this:

  • If i do not specify any project in atlantis.yaml file, the process can be default one. Execute or able to execute atlantis plan on any changes from a specific dir without to specify -d
  • If i have project in atlantis.yaml file should be the same process as it's now

For me i can see atlantis.yaml file for any custom projects with different config than other.

@wmariuss our use case is similar, and this is a common pattern if folks follow the terragrunt model. It is odd that without the repo-level atlantis.yaml, atlantis properly discovers the terraform files that should be planned/applied. However, when you add a repo-level config, all of a sudden it requires that you define every directory subsequent sub-directories. Why is that?

In our use case, we have a need to disable auto-planning but cannot because if we do, we would then have to define every directory and sub-directory since auto-plan disabling is a repo-level config. I understand that terragrunt-atlantis-config can generate this config for us, but our project has different terragrunt version dependencies for different workspaces. There are some that are not compatible with terragrunt-atlantis-config from what I saw (terragrunt v0.18.7).

  • Is there a way to specify repo-level config while inheriting the rest of configuration from the server level config?
  • @dmattia do you know if terragrunt-atlantis-config can be run to support a project that implements different versions of terragrunt?

@djenriquez feel free to move this discussion over to https://github.com/transcend-io/terragrunt-atlantis-config if you'd like to keep this Issue on topic 馃槃. But the short answer is that I think it is possible to use different versions of terragrunt:

For each version of terragrunt you use, you could define a custom atlantis workflow, and then on each terragrunt module add a atlantis_workflow local value that names the workflow it should use. To make this scalable, you can also specify the atlantis_workflow in a parent terragrunt file, and all child terragrunt modules will then inherit and use that workflow.

@mjagielka Just a heads up, terragrunt-atlantis-config now supports different workflows for different subfolders by specifying a workflow name in the locals of the parent Terragrunt module 馃槃

Hi @dmattia!

Will it be possible to share an example of how to specify workflow name in the locals. Is it something like below.

locals {
workflow = "someworkflow"
}

Hey @yasra002

locals {
  atlantis_workflow = "someworkflow"
}
  • add your workflow to atlantis.yaml
workflows:
  someworkflow:
    apply:
      steps:
      .......

Hey @yasra002

locals {
  atlantis_workflow = "someworkflow"
}
  • add your workflow to atlantis.yaml
workflows:
  someworkflow:
    apply:
      steps:
      .......

Thanks. I managed to make it work. I did not want to add workflows to atlantis.yaml so instead, I added those to Server side repo config.

Was this page helpful?
0 / 5 - 0 ratings