Skip to content

alpine-docker/terragrunt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

DockerHub Badge

Notes

  • Never use tag latest in prod environment.
  • For examples, below tags are supported now:
    • alpine/terragrunt:latest
    • alpine/terragrunt:1.8.4 (terraform version)
    • alpine/terragrunt:tf1.8.4 (terraform version)
    • alpine/terragrunt:otf1.7.1 (opentofu version)

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.
  • OpenTofu - the latest opentofu version when running the build

Repo:

https://github.com/alpine-docker/terragrunt

Daily build logs:

https://app.circleci.com/pipelines/github/alpine-docker/terragrunt

Docker image tags:

https://hub.docker.com/r/alpine/terragrunt/tags/

Multiple platforms supported

  • linux/arm64
  • linux/amd64
  • linux/386

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 version as tag and push to hub.docker.com
  • Always install latest version of terragrunt