Skip to content

Commit eadb4bc

Browse files
srac0openshift-merge-bot[bot]
authored andcommitted
[reproducer] Fix PreMetal handling of extra_variable_files
PreMetal provisions hosts from the main branch, generating reproducer-variables.yml with base scenario vars. During the actual Zuul job, overwrite_zuul_vars.yml only merges zuul_vars.yaml into reproducer-variables.yml, ignoring extra_variable_files entirely. Additionally, the slurp + copy-content pattern for transferring reproducer-variables.yml triggers Jinja2 evaluation on the file content, breaking when the bootstrap bakes raw templates into nested structures. Signed-off-by: Samuel Rac <srac@redhat.com>
1 parent af44dd0 commit eadb4bc

2 files changed

Lines changed: 28 additions & 16 deletions

File tree

roles/reproducer/tasks/overwrite_zuul_vars.yml

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,12 @@
1919
temp_reproducer_var_path: /tmp/reproducer-variables.yml
2020
temp_merged_reproducer_var_path: /tmp/merged-reproducer-variables.yml
2121
block:
22-
- name: Slurp reproducer-variables.yml to hypervisor
23-
ansible.builtin.slurp:
22+
- name: Fetch reproducer-variables.yml from controller-0
23+
ansible.builtin.fetch:
2424
src: "{{ cifmw_basedir }}/parameters/reproducer-variables.yml"
25-
register: reproducer_original
26-
delegate_to: controller-0
27-
no_log: "{{ cifmw_nolog | default(true) | bool }}"
28-
29-
- name: Create temp file reproducer-variables.yml on hypervisor
30-
ansible.builtin.copy:
31-
content: "{{ reproducer_original.content | b64decode }}"
3225
dest: "{{ temp_reproducer_var_path }}"
33-
mode: "0664"
26+
flat: true
27+
delegate_to: controller-0
3428
no_log: "{{ cifmw_nolog | default(true) | bool }}"
3529

3630
- name: Copy merge yamls script
@@ -48,15 +42,24 @@
4842
{{ temp_merged_reproducer_var_path }}
4943
no_log: "{{ cifmw_nolog | default(true) | bool }}"
5044

51-
- name: Slurp merged reproducer-variables.yml from hypervisor
52-
ansible.builtin.slurp:
53-
src: "{{ temp_merged_reproducer_var_path }}"
54-
register: merged_reproducer_slurp
45+
- name: Merge extra variable files into reproducer-variables.yml
46+
when: extra_variable_files is defined
47+
ansible.builtin.shell: >
48+
python3 /usr/local/bin/merge_yaml_override
49+
{{ temp_merged_reproducer_var_path }}
50+
{{ extra_variable_file }} >
51+
{{ temp_merged_reproducer_var_path }}.tmp &&
52+
mv {{ temp_merged_reproducer_var_path }}.tmp
53+
{{ temp_merged_reproducer_var_path }}
54+
loop: "{{ extra_variable_files }}"
55+
loop_control:
56+
loop_var: extra_variable_file
57+
label: "{{ extra_variable_file | basename }}"
5558
no_log: "{{ cifmw_nolog | default(true) | bool }}"
5659

5760
- name: Write back merged reproducer-variables.yml
5861
ansible.builtin.copy:
59-
content: "{{ merged_reproducer_slurp.content | b64decode }}"
62+
src: "{{ temp_merged_reproducer_var_path }}"
6063
dest: "{{ cifmw_basedir }}/parameters/reproducer-variables.yml"
6164
mode: "0664"
6265
backup: true
@@ -65,7 +68,7 @@
6568

6669
- name: Overwrite custom-params.yml
6770
ansible.builtin.copy:
68-
content: "{{ merged_reproducer_slurp.content | b64decode }}"
71+
src: "{{ temp_merged_reproducer_var_path }}"
6972
dest: "{{ cifmw_basedir }}/artifacts/parameters/custom-params.yml"
7073
mode: "0664"
7174
no_log: "{{ cifmw_nolog | default(true) | bool }}"

roles/reproducer/tasks/premetal.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,15 @@
3030
loop_control:
3131
loop_var: secret_file
3232

33+
- name: Pass extra variable files to deployment scripts
34+
ansible.builtin.set_fact:
35+
cifmw_deploy_architecture_args: >
36+
{{ cifmw_deploy_architecture_args | default('') }}
37+
-e @{{ extra_variable_file }}
38+
loop: "{{ extra_variable_files | default([]) }}"
39+
loop_control:
40+
loop_var: extra_variable_file
41+
3342
- name: Print final cifmw_deploy_architecture_args
3443
ansible.builtin.debug:
3544
msg: >

0 commit comments

Comments
 (0)