How it works

Digger stores a high-level, cloud-agnostic representation of your stack in the dgctl.json file.
The dgctl.json file has a list of blocks. Each block represents a piece of infrastructure and produces Terraform for its provisioning.
You can change behaviour of blocks by either changing their template (target) to a different repo, or by adding your custom Terraform into the overrides folder in the block's directory.



Q: Why dgctl.json and per-block config.json are split?
A: Single large config file quickly becomes unmanageable. Example: serverless.yml
TODO: figure out the right abstraction for things like CloudWatch that spans across multiple blocks. For now it is part of the block but that's not clean.
Last modified 1mo ago