Skip to content

Refactor directory name assignments and streamline additional file co… #4

Merged
merged 1 commit into from
Jun 26, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 22 additions & 28 deletions ansible/generate_hcl_files.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@

- name: Set directory names from configuration with overrides
ansible.builtin.set_fact:
env_name: "{{ env_override | default(config.environment) | default(current.environment_dir) }}"
region_name: "{{ region_override | default(config.region) | default(current.region_dir) }}"
cluster_dir: "{{ cluster_dir_override | default(config.cluster_dir) | default(current.cluster_dir) }}"
env_name: "{{ config.environment }}"
region_name: "{{ config.region }}"
cluster_dir: "{{ config.cluster_dir }}"

# Consolidate all template variables in one place
- name: Set all template variables
Expand Down Expand Up @@ -108,15 +108,25 @@

- name: Create target directory structure
ansible.builtin.file:
path: "{{ output_dir }}/{{ env_name }}/{{ item }}"
state: directory
mode: '0755'
loop:
- ""
- "{{ region_name }}"
- "{{ region_name }}/vpc"
- "{{ region_name }}/vpc/{{ cluster_dir }}"
path: "{{ output_dir }}/{{ env_name }}/{{ region_name }}/vpc/{{ cluster_dir }}"

# Copy any additional files in module directories (like README.md)
- name: Find all additional files in module directories
ansible.builtin.find:
paths: "{{ base_dir }}/{{ current.environment_dir }}/{{ current.region_dir }}/vpc/{{ current.cluster_dir }}"
excludes:
- "*/terragrunt.hcl"
- "*/terragrunt.hcl.off"
recurse: yes
register: additional_files

- name: Copy additional files to target structure
ansible.builtin.copy:
src: "{{ item.path }}"
dest: "{{ output_dir }}/{{ env_name }}/{{ region_name }}/vpc/{{ cluster_dir }}/{{ item.path | regex_replace('.*' + current.cluster_dir + '/(.*)', '\\1') }}"
mode: '0644'
loop: "{{ additional_files.files }}"

- name: Generate root.hcl from template
ansible.builtin.template:
src: "{{ template_dir }}/root.hcl.j2"
Expand Down Expand Up @@ -160,23 +170,7 @@
state: directory
mode: '0755'
loop: "{{ cluster_modules.files }}"

# Copy any additional files in module directories (like README.md)
- name: Find all additional files in module directories
ansible.builtin.find:
paths: "{{ base_dir }}/{{ current.environment_dir }}/{{ current.region_dir }}/vpc/{{ current.cluster_dir }}"
excludes:
- "*/terragrunt.hcl"
- "*/terragrunt.hcl.off"
recurse: yes
register: additional_files

- name: Copy additional files to target structure
ansible.builtin.copy:
src: "{{ item.path }}"
dest: "{{ output_dir }}/{{ env_name }}/{{ region_name }}/vpc/{{ cluster_dir }}/{{ item.path | regex_replace('.*' + current.cluster_dir + '/(.*)', '\\1') }}"
mode: '0644'
loop: "{{ additional_files.files }}"


- name: Generate README.md with documentation
ansible.builtin.template:
Expand Down