digger
digger copied to clipboard
Replace terragrunt-atlantis-config with <something>
We currently use a slightly modified version of the terragrunt-atlantis-config library for parsing of Terragrunt projects. This has several drawbacks:
- It's slow. One user reported that parsing 1400 terragrunt projects (using Atlantis) takes more than 5 minutes
- It doesn't respect dependencies. Same user reported that they have to raise multiple PRs in specific order to avoid errors. Atlantis solution: execution order groups
We probably need to move away from terragrunt-atlantis-config. But what to replace it with? A few options come to mind:
- Treat each Terragrunt project as a "black box" - let Terragrunt manage it. But that would limit it to a single job; no concurrency, no scale for Terragrunt then - which kind of defies the purpose of solving the issue, because it's not going to be slow at small scale anyway and cross-project dependencies are unlikely to be a pressing problem
- Contribute to Terragrunt to expose some kind of a "project status" api so that external tools could get the status of projects without actually running terragrunt commands
- Use the existing graph-dependencies Terragrunt command
- Build our own DAG parser using this lib or smth else
Related to:
- https://github.com/diggerhq/digger/issues/962
- https://github.com/diggerhq/digger/issues/924
- https://github.com/diggerhq/digger/issues/402
- https://github.com/diggerhq/digger/issues/791
- https://github.com/diggerhq/digger/issues/424
Reported by the user C.D.
In any case please keep the functionality of atlantis_extra_dependencies. We rely heavily on them.
@ZIJ We have run into the dependency one. I noticed in the code it does look like it is attempting to use ExecutionOrderGroups now. Is part of this been implemented?