23
23
# alias tofu="iac tofu"
24
24
# alias yc="iac yc"
25
25
26
- export DEVOPS_AWS_IMAGE=" ${DEVOPS_AWS_IMAGE:- " devopsinfra/docker-terragrunt" } "
27
26
export OPENTOFU_VERSION=" ${OPENTOFU_VERSION:- " 1.8.4" } "
28
- export TERRAGRUNT_VERSION=" ${TERRAGRUNT_VERSION:- " 0.68.5" } "
27
+ export TERRAFORM_VERSION=" ${TERRAFORM_VERSION:- " 1.9.8" } "
28
+ export TERRAGRUNT_VERSION=" ${TERRAGRUNT_VERSION:- " 0.68.7" } "
29
29
export CLOUD_API=" ${CLOUD_API:- " aws" } " # aws, azure, gcp, yc
30
- export CLOUD_SDK=" ${CLOUD_SDK:- " ot" } " # ot, tf (for OpenTofu or Terraform)
31
- export DEVOPS_AWS_VERSION=" ${DEVOPS_AWS_VERSION:- " ${CLOUD_API} -${CLOUD_SDK} -${OPENTOFU_VERSION} -tg-${TERRAGRUNT_VERSION} " } "
32
30
33
31
main () {
34
32
if [ " $( whoami) " == " runner" ]; then
35
33
: # echo "Don't execute in GitHub Actions workflow runs."
36
34
else
35
+ # Image platform.
36
+ _MACH=" ${UMACH:- ${MACHTYPE:- $(uname -m 2>/ dev/ null)} } "
37
+ _PLATFORM=" linux/$_MACH "
38
+ [[ " ${UTYPE:- } " == " darwin" * ]] && _PLATFORM=" aarch64/$_MACH "
39
+ # OpenTofu (default) or Terraform.
40
+ _SDK_TAG=" ot-${OPENTOFU_VERSION} "
41
+ [[ " ${* } " == " terraform " * ]] && _SDK_TAG=" tf-${TERRAFORM_VERSION} "
42
+ _IMAGE_TAG=" ${CLOUD_API} -${_SDK_TAG} -tg-${TERRAGRUNT_VERSION} "
43
+ # Build/run options.
37
44
local OPTS=()
38
45
OPTS+=(--rm)
39
46
[[ -z " $PS1 " ]] && OPTS+=(-it)
40
47
OPTS+=(-u " $( id -u) :$( id -g) " )
41
48
OPTS+=(-v " $( pwd) :/data" )
49
+ # OPTS+=(--platform "$_PLATFORM")
42
50
[[ -e ~ /.gitconfig ]] && OPTS+=(-v ~ /.gitconfig:/root/.gitconfig)
43
51
[[ -e ~ /.ssh/id_rsa_shared ]] && OPTS+=(-v ~ /.ssh/id_rsa_shared:/root/.ssh/id_rsa)
44
52
[[ -e ~ /.aws/credentials ]] && OPTS+=(-v ~ /.aws/credentials:/root/.aws/credentials)
@@ -47,7 +55,9 @@ main() {
47
55
[[ -n " ${AWS_ACCESS_KEY_ID:- } " ]] && OPTS+=(-e " AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} " )
48
56
[[ -n " ${AWS_SECRET_ACCESS_KEY:- } " ]] && OPTS+=(-e " AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} " )
49
57
[[ -n " ${AWS_SESSION_TOKEN:- } " ]] && OPTS+=(-e " AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN} " )
50
- docker run " ${OPTS[@]} " " ${DEVOPS_AWS_IMAGE} :${DEVOPS_AWS_VERSION} " " $@ "
58
+ # Uncomment to debug the final command.
59
+ # echo "docker run ${OPTS[*]} devopsinfra/docker-terragrunt:${_IMAGE_TAG} ${*}"
60
+ docker run " ${OPTS[@]} " " devopsinfra/docker-terragrunt:${_IMAGE_TAG} " " $@ "
51
61
fi
52
62
}
53
63
0 commit comments