Auto-trigger docker build for terragrunt when new terraform version released
enhanced tool to manage terraform deployment with terragrunt
If enjoy, please consider buying me a coffee.
Auto-trigger docker build for terragrunt when new terraform version is related.
Notes
- Never use tag
latestin prod environment. - Multi-Arch supported (linux/amd64, linux/arm64)
- For examples, below tags are supported now:
Tools included in this container
- terraform - terraform version is this docker image's tag
- terragrunt - The latest terragrunt version when running the build.
- boilerplate - The latest boilerplate version when running the build.
- terraform-docs - The latest terraform-docs version when running the build.
- (TODO, not ready yet) OpenTofu - the latest opentofu version when running the build
Repo:
https://github.com/alpine-docker/terragrunt
Daily build logs:
https://github.com/alpine-docker/terragrunt/actions
Docker image tags:
https://hub.docker.com/r/alpine/terragrunt/tags/
Multiple platforms supported
- linux/arm64
- linux/amd64
Why we need it
This is mostly used during Continuous Integration and Continuous Delivery (CI/CD), or as a component of an automated build and deployment process.
Usage:
# (1) must mount the local folder to /apps in container. # (2) must mount the aws credentials and ssh config folder in container. $ docker run -ti --rm -v $HOME/.aws:/root/.aws -v ${HOME}/.ssh:/root/.ssh -v pwd:/apps alpine/terragrunt:0.12.16 bash # # common terraform steps $ terraform init $ terraform fmt $ terraform validate $ terraform plan $ terraform apply # common opentofu steps $ tofu init $ tofu fmt $ tofu validate $ tofu plan $ tofu apply # common terragrunt steps # cd to terragrunt configuration directory, if required. # Terraform and OpenTofu Version Compatibility Table # https://terragrunt.gruntwork.io/docs/getting-started/supported-versions/ $ terragrunt hclfmt $ terragrunt run-all plan $ terragrunt run-all apply
The Processes to build this image
- Enable CI cronjob on this repo to run build weekly on master branch
- Check if there are new versions announced via Terraform Github REST API
- Match the exist docker image tags via Hub.docker.io REST API
- If not matched, build the image with latest
terraform versionas tag and push to hub.docker.com - Always install latest version of terragrunt