mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-08-05 21:54:22 -07:00
Terraform init -upgrade flag (#4455)
* Adds optional `-upgrade` flag to terraform init. This allows Terraform to install provider dependencies into an existing project when the provider constraints change. * fix transposed documentation keys * Add integration tests for terraform init * Revert to validate_certs: yes for general public testing * skip integration tests on irrelevant platforms * skip legacy Python versions from CI tests * add changelog fragment * Update plugins/modules/cloud/misc/terraform.py Adds version_added metadata to the new module option. Co-authored-by: Felix Fontein <felix@fontein.de> * Change terraform_arch constant to Ansible fact mapping * correct var typo, clarify task purpose * Squashed some logic bugs, added override for local Terraform If `existing_terraform_path` is provided, the playbook will not download Terraform or check its version. I also tested this on a local system with Terraform installed, and squashed some bugs related to using of an existing binary. * revert to previous test behavior for TF install * readability cleanup * Update plugins/modules/cloud/misc/terraform.py Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
06675034fe
commit
e4a25beedc
9 changed files with 167 additions and 2 deletions
37
tests/integration/targets/terraform/vars/main.yml
Normal file
37
tests/integration/targets/terraform/vars/main.yml
Normal file
|
@ -0,0 +1,37 @@
|
|||
---
|
||||
|
||||
# Terraform version that will be downloaded
|
||||
terraform_version: 1.1.7
|
||||
|
||||
# Architecture of the downloaded Terraform release (needs to match target testing platform)
|
||||
|
||||
terraform_arch: "{{ ansible_system | lower }}_{{terraform_arch_map[ansible_architecture] }}"
|
||||
|
||||
# URL of where the Terraform binary will be downloaded from
|
||||
terraform_url: "https://releases.hashicorp.com/terraform/{{ terraform_version }}/terraform_{{ terraform_version }}_{{ terraform_arch }}.zip"
|
||||
|
||||
# Controls whether the unarchive task will validate TLS certs of the Terraform binary host
|
||||
validate_certs: yes
|
||||
|
||||
# Directory where Terraform tests will be created
|
||||
terraform_project_dir: "{{ remote_tmp_dir }}/tf_provider_test"
|
||||
|
||||
# Controls whether terraform init will use the `-upgrade` flag
|
||||
terraform_provider_upgrade: yes
|
||||
|
||||
# list of dicts containing Terraform providers that will be tested
|
||||
# The null provider is a good candidate, as it's small and has no external dependencies
|
||||
terraform_provider_versions:
|
||||
- name: "null"
|
||||
source: "hashicorp/null"
|
||||
version: ">=2.0.0, < 3.0.0"
|
||||
- name: "null"
|
||||
source: "hashicorp/null"
|
||||
version: ">=3.0.0"
|
||||
|
||||
# mapping between values returned from ansible_architecture and arch names used by golang builds of Terraform
|
||||
# see https://www.terraform.io/downloads
|
||||
|
||||
terraform_arch_map:
|
||||
x86_64: amd64
|
||||
arm64: arm64
|
Loading…
Add table
Add a link
Reference in a new issue