This repository was archived by the owner on Feb 26, 2024. It is now read-only.
File tree
Expand file treeCollapse file tree
Open diff view settings
stackhead_module_api/tasks
Expand file treeCollapse file tree
Open diff view settings
Collapse file
Copy file name to clipboard +9Lines changed: 9 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
|
| 1 | +--- |
| 2 | +- name: Create Terraform provider configurations (projects folder) |
| 3 | + template: |
| 4 | + src: "{{ stackhead__templates }}/terraform/terraform-providers.tf.j2" |
| 5 | + dest: "{{ stackhead__tf_root_folder }}/terraform-providers.tf" |
| 6 | +- name: Create Terraform provider configurations (system folder) |
| 7 | + template: |
| 8 | + src: "{{ stackhead__templates }}/terraform/terraform-providers.tf.j2" |
| 9 | + dest: "{{ stackhead__system_tf_root_folder }}/terraform-providers.tf" |
Collapse file
Copy file name to clipboardExpand all lines: ansible/roles/config_terraform/tasks/replace-provider.yml +21-4Lines changed: 21 additions & 4 deletions | Original file line number | Diff line number | Diff line change |
|---|
|
3 | 3 | stat: |
4 | 4 | path: "{{ item }}/terraform.tfstate" |
5 | 5 | register: tfstate_exist |
6 | | -- name: "Replace Terraform provider {{ provider_old }} -> {{ provider_new }}" |
7 | | - shell: |
8 | | - cmd: "terraform state replace-provider '{{ provider_old }}' '{{ provider_new }}'" |
9 | | - chdir: "{{ item }}" |
| 6 | +- block: |
| 7 | + - include_tasks: "../roles/stackhead_module_api/tasks_internal/terraform.yml" |
| 8 | + # add old provider back to list and regenerate providers |
| 9 | + - set_fact: |
| 10 | + initial_loaded_terraform_providers: "{{ loaded_terraform_providers }}" |
| 11 | + loaded_terraform_providers: "{{ loaded_terraform_providers|default([]) + [{'vendor': provider_old.split('/').0, 'name': provider_old.split('/').1, 'version': provider_old_version, 'nameSuffix': 'oldprovider'}] }}" |
| 12 | + - debug: |
| 13 | + msg: "{{ loaded_terraform_providers }}" |
| 14 | + - include_tasks: "../roles/config_terraform/tasks/generate-providers.yml" |
| 15 | + - include_tasks: "../roles/config_terraform/tasks/execute.yml" |
| 16 | + |
| 17 | + - name: "Replace Terraform provider {{ provider_old }} -> {{ provider_new }}" |
| 18 | + shell: |
| 19 | + cmd: "terraform state replace-provider -auto-approve '{{ provider_old }}' '{{ provider_new }}'" |
| 20 | + chdir: "{{ item }}" |
| 21 | + |
| 22 | + # Regenerate used providers |
| 23 | + - set_fact: |
| 24 | + loaded_terraform_providers: "{{ initial_loaded_terraform_providers }}" |
| 25 | + - include_tasks: "../roles/config_terraform/tasks/generate-providers.yml" |
| 26 | + - include_tasks: "../roles/config_terraform/tasks/execute.yml" |
10 | 27 | when: tfstate_exist.stat.exists |
Collapse file
Copy file name to clipboardExpand all lines: ansible/roles/stackhead_module_api/tasks/terraform-replace-provider.yml +1Lines changed: 1 addition & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
|
3 | 3 | assert: |
4 | 4 | that: |
5 | 5 | - provider_old is defined and provider_old != "" |
| 6 | + - provider_old_version is defined and provider_old_version != "" |
6 | 7 | - provider_new is defined and provider_new != "" |
7 | 8 | - include_tasks: "{{ stackhead__roles }}/config_terraform/tasks/replace-provider.yml" |
8 | 9 | with_items: |
|
Collapse file
Copy file name to clipboardExpand all lines: ansible/roles/stackhead_setup/tasks/setup-terraform.yml +1-9Lines changed: 1 addition & 9 deletions | Original file line number | Diff line number | Diff line change |
|---|
|
18 | 18 |
|
19 | 19 | # Setup Terraform components of modules |
20 | 20 | - import_tasks: "../roles/stackhead_module_api/tasks_internal/terraform.yml" |
21 | | - |
22 | | -- name: Create Terraform provider configurations (projects folder) |
23 | | - template: |
24 | | - src: "{{ stackhead__templates }}/terraform/terraform-providers.tf.j2" |
25 | | - dest: "{{ stackhead__tf_root_folder }}/terraform-providers.tf" |
26 | | -- name: Create Terraform provider configurations (system folder) |
27 | | - template: |
28 | | - src: "{{ stackhead__templates }}/terraform/terraform-providers.tf.j2" |
29 | | - dest: "{{ stackhead__system_tf_root_folder }}/terraform-providers.tf" |
| 21 | +- import_tasks: "../roles/config_terraform/tasks/generate-providers.yml" |
30 | 22 |
|
31 | 23 | # Initial run applying settings from Terraform files created above |
32 | 24 | - import_tasks: "../roles/config_terraform/tasks/execute.yml" |
|
Collapse file
Copy file name to clipboardExpand all lines: ansible/templates/terraform/terraform-providers.tf.j2 +2-2Lines changed: 2 additions & 2 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -14,7 +14,7 @@ terraform { |
14 | 14 | version = "1.4.0" |
15 | 15 | } |
16 | 16 | {%- for provider in loaded_terraform_providers|default([]) %} |
17 | | - {{ provider.name }} = { |
| 17 | + {{ provider.name }}{%- if provider.nameSuffix is defined %}-{{ provider.nameSuffix }}{%- endif %} = { |
18 | 18 | source = "{{ provider.vendor }}/{{ provider.name }}" |
19 | 19 | version = "{{ provider.version }}" |
20 | 20 | } |
@@ -26,7 +26,7 @@ terraform { |
26 | 26 | {%- if 'init' in provider %} |
27 | 27 | {{ lookup('template', provider.init) }} |
28 | 28 | {%- else %} |
29 | | -provider "{{ provider.name }}" { |
| 29 | +provider "{{ provider.name }}{%- if provider.nameSuffix is defined %}-{{ provider.nameSuffix }}{%- endif %}" { |
30 | 30 | } |
31 | 31 | {%- endif %} |
32 | 32 | {% endfor %} |
|