diff --git a/lazy.ansible/.manala.yaml b/lazy.ansible/.manala.yaml index bd86078b..8d380094 100644 --- a/lazy.ansible/.manala.yaml +++ b/lazy.ansible/.manala.yaml @@ -72,3 +72,7 @@ system: version: ~ # @schema {"items": {"type": "string"}} dependencies: [] + terraform: + # @schema {"enum": [null, "1.5.7"]} + # @option {"label": "Terraform version"} + version: ~ diff --git a/lazy.ansible/.manala.yaml.tmpl b/lazy.ansible/.manala.yaml.tmpl index e8526d2b..f622f199 100644 --- a/lazy.ansible/.manala.yaml.tmpl +++ b/lazy.ansible/.manala.yaml.tmpl @@ -72,3 +72,9 @@ system: # - molecule-plugins==23.0.0 # - molecule-plugins[docker]==23.0.0 {{- end }} + + {{- $terraform := .Vars.system.terraform }} + {{- if $terraform.version }} + terraform: + version: {{ $terraform.version | toYaml }} + {{- end }} diff --git a/lazy.ansible/.manala/docker/Dockerfile.tmpl b/lazy.ansible/.manala/docker/Dockerfile.tmpl index 6ffe21d0..5213889a 100644 --- a/lazy.ansible/.manala/docker/Dockerfile.tmpl +++ b/lazy.ansible/.manala/docker/Dockerfile.tmpl @@ -168,6 +168,22 @@ RUN \ {{ end -}} +{{ $terraform := .Vars.system.terraform -}} +{{ if $terraform.version -}} +# Terraform +RUN \ + curl -sSL "https://releases.hashicorp.com/terraform/{{ $terraform.version }}/terraform_{{ $terraform.version }}_linux_{{ include "arch_map" (dict "amd64" "amd64" "arm64" "arm64") }}.zip" \ + | bsdtar -xvf - -C /usr/local/bin \ + && chmod +x /usr/local/bin/terraform \ + # Bash completion + && echo "complete -C /usr/local/bin/terraform terraform" > /etc/bash_completion.d/terraform \ + # Bash aliases + && printf "alias tf='terraform'\n\ +complete -C /usr/local/bin/terraform tf\n\ +" > /etc/profile.d/terraform.sh + +{{ end -}} + # Run COPY docker/entrypoint.sh / ENTRYPOINT ["/entrypoint.sh"] diff --git a/lazy.ansible/.manala/etc/profile.d/message.sh.tmpl b/lazy.ansible/.manala/etc/profile.d/message.sh.tmpl index cf026ab2..3c1fea7d 100644 --- a/lazy.ansible/.manala/etc/profile.d/message.sh.tmpl +++ b/lazy.ansible/.manala/etc/profile.d/message.sh.tmpl @@ -28,6 +28,10 @@ printf " \033[36m‣ molecule \033[35m{{ $molecule.version }}\033[0m\n" printf " \033[36m· {{ $dependency }}\033[0m\n" {{- end }} {{- end }} +{{- $terraform := .Vars.system.terraform }} +{{- if $terraform.version }} +printf " \033[36m‣ terraform \033[35m{{ $terraform.version }}\033[0m\n" +{{- end }} {{- $help := .Vars.project.help }} {{- if $help }} diff --git a/lazy.ansible/test/.manala.yaml b/lazy.ansible/test/.manala.yaml index d2673786..c74cb8e1 100644 --- a/lazy.ansible/test/.manala.yaml +++ b/lazy.ansible/test/.manala.yaml @@ -38,3 +38,5 @@ system: dependencies: - molecule-plugins==23.5.0 - molecule-plugins[docker]==23.5.0 + terraform: + version: 1.5.7 diff --git a/lazy.ansible/test/goss.yaml b/lazy.ansible/test/goss.yaml index 6eecf7f9..28c5a0a3 100644 --- a/lazy.ansible/test/goss.yaml +++ b/lazy.ansible/test/goss.yaml @@ -105,3 +105,8 @@ command: stdout: - "/molecule(\\s+){{ .Vars.system.molecule.version }}/" - "/molecule-plugins(\\s+)\\d+\\.\\d+\\.\\d+/" + # Terraform + terraform -version: + exit-status: 0 + stdout: + - Terraform v{{ .Vars.system.terraform.version }}