Recursively test a directory tree for Terraform diffs and coverage
Key Features •Install •Usage •Quickstart •Credits •Support •License
%
coverage for each module and root directoryThe recommended way to install on MacOS is via brew:
brew tap jatalocks/jatalocksbrewinstallterracove
If you’d like to use Docker, you can use the official image:
docker run--rm-v$(pwd):/data ghcr.io/jatalocks/terracove /data--json--junit
Or, you can install directly from release:
curl-sS https://raw.githubusercontent.com/jatalocks/terracove/main/install.sh | bash
Usage: terracove[paths]...[flags]Flags:-e,--exclude strings Exclude directorieswhileparsing tree-h,--helphelpforterracove-w,--html Output HTML Report-j,--json Output JSON-x,--junit Output Junit XML--minimal Don't Append Raw/JSON Plan to the Exported Output --o-html string Output HTML Report File (default "terracove.html") --o-json string Output JSON File (default "terracove.json") --o-junit string Output Junit XML File (default "terracove.xml") -t, --validate-tf-by string validate terraform by the existence of [filename] in a directory (default "main.tf") -g, --validate-tg-by string validate terragrunt by the existence of [filename] in a directory (default "terragrunt.hcl") -v, --version version for terracove
Note that you must have terraform/terragrunt binaries installed on your machine
Theexamples directory contains4 modules. 2 of them areterraform and 2 areterragrunt.
Oh no! It appears some of them have some problems. Let’s see exactly what is going on.Clone this repository and give it a try.
git clone https://github.com/jatalocks/terracove.gitcdterracoveterracove--minimal--junit--json--html.# . == examples == examples/terraform examples/terragrunt
Open theterracove.xml,terracove.json orterracove.html and observe the results. You should see the following:
[{"Timestamp":"1984-01-01T19:32:58+05:00","Path":".","Results":[{"Path":"examples/terragrunt/no-resources","ResourceCount":0,"Coverage":100,...},{"Path":"examples/terragrunt/error","Coverage":0,...},{"Path":"examples/terraform/tfstate-diff","ResourceCount":2,"ResourceCountDiff":1,"Coverage":50,...},{"Path":"examples/terraform/success","ResourceCount":2,"ResourceCountExists":2,"Coverage":100,...}],"Coverage":62.5}]
This project uses or is inspired by the following open source projects: