From 3c31c491d92de263037485160de1d7136ef05439 Mon Sep 17 00:00:00 2001 From: Przemyslaw Kalitowski Date: Mon, 15 Jul 2024 12:10:26 +0200 Subject: [PATCH 1/4] fix: issue with variable brackets inside any string in extra_vars --- .../fragments/filetree_create_brackets_extra_vars_issue.yml | 4 ++++ roles/filetree_create/templates/current_job_templates.j2 | 2 +- .../templates/current_workflow_job_templates.j2 | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 changelogs/fragments/filetree_create_brackets_extra_vars_issue.yml diff --git a/changelogs/fragments/filetree_create_brackets_extra_vars_issue.yml b/changelogs/fragments/filetree_create_brackets_extra_vars_issue.yml new file mode 100644 index 000000000..5219e915c --- /dev/null +++ b/changelogs/fragments/filetree_create_brackets_extra_vars_issue.yml @@ -0,0 +1,4 @@ +--- +bugfixes: + - filetree_create export extra_vars with escaping any variable brackets +... diff --git a/roles/filetree_create/templates/current_job_templates.j2 b/roles/filetree_create/templates/current_job_templates.j2 index 38762a2fa..46de734c9 100644 --- a/roles/filetree_create/templates/current_job_templates.j2 +++ b/roles/filetree_create/templates/current_job_templates.j2 @@ -54,7 +54,7 @@ controller_templates: {% endif %} {% if current_job_templates_asset_value.extra_vars and current_job_templates_asset_value.extra_vars | length > 3 %} extra_vars: - {{ current_job_templates_asset_value.extra_vars | from_yaml | to_nice_yaml(indent=2) | indent(width=6, first=False) | replace("'{{", "!unsafe \'{{") }} + {{ current_job_templates_asset_value.extra_vars | from_yaml | to_nice_yaml(indent=2) | indent(width=6, first=False) | replace("{{", "{% raw %}{{{% endraw %}") | replace("}}", "{% raw %}}}{% endraw %}") }} {%- endif %} job_tags: "{{ current_job_templates_asset_value.job_tags }}" force_handlers: {{ current_job_templates_asset_value.force_handlers | bool | lower }} diff --git a/roles/filetree_create/templates/current_workflow_job_templates.j2 b/roles/filetree_create/templates/current_workflow_job_templates.j2 index 6800a4215..b8293f82e 100644 --- a/roles/filetree_create/templates/current_workflow_job_templates.j2 +++ b/roles/filetree_create/templates/current_workflow_job_templates.j2 @@ -44,7 +44,7 @@ controller_workflows: webhook_service: "{{ current_workflow_job_templates_asset_value.webhook_service }}" {% if current_workflow_job_templates_asset_value.extra_vars and current_workflow_job_templates_asset_value.extra_vars | length > 3 %} extra_vars: - {{ current_workflow_job_templates_asset_value.extra_vars | from_yaml | to_nice_yaml(indent=2) | indent(width=6, first=False) | replace("'{{", "!unsafe \'{{") }} + {{ current_workflow_job_templates_asset_value.extra_vars | from_yaml | to_nice_yaml(indent=2) | indent(width=6, first=False) | replace("{{", "{% raw %}{{{% endraw %}") | replace("}}", "{% raw %}}}{% endraw %}") }} {%- endif %} {% if query_labels | length > 0 %} labels: From 033de8b63c56e9b83d7d4ce0d867a07fb2ecc943 Mon Sep 17 00:00:00 2001 From: Przemyslaw Kalitowski Date: Mon, 15 Jul 2024 21:08:59 +0200 Subject: [PATCH 2/4] misc: implement suggested change --- roles/filetree_create/templates/current_job_templates.j2 | 2 +- .../filetree_create/templates/current_workflow_job_templates.j2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/filetree_create/templates/current_job_templates.j2 b/roles/filetree_create/templates/current_job_templates.j2 index 46de734c9..b7cb25105 100644 --- a/roles/filetree_create/templates/current_job_templates.j2 +++ b/roles/filetree_create/templates/current_job_templates.j2 @@ -54,7 +54,7 @@ controller_templates: {% endif %} {% if current_job_templates_asset_value.extra_vars and current_job_templates_asset_value.extra_vars | length > 3 %} extra_vars: - {{ current_job_templates_asset_value.extra_vars | from_yaml | to_nice_yaml(indent=2) | indent(width=6, first=False) | replace("{{", "{% raw %}{{{% endraw %}") | replace("}}", "{% raw %}}}{% endraw %}") }} + {{ current_job_templates_asset_value.extra_vars | from_yaml | to_nice_yaml(indent=2) | indent(width=6, first=False) | regex_replace('(^[^:]*): (.*){{', '\1: !unsafe \2{{')}} {%- endif %} job_tags: "{{ current_job_templates_asset_value.job_tags }}" force_handlers: {{ current_job_templates_asset_value.force_handlers | bool | lower }} diff --git a/roles/filetree_create/templates/current_workflow_job_templates.j2 b/roles/filetree_create/templates/current_workflow_job_templates.j2 index b8293f82e..a2366d8d6 100644 --- a/roles/filetree_create/templates/current_workflow_job_templates.j2 +++ b/roles/filetree_create/templates/current_workflow_job_templates.j2 @@ -44,7 +44,7 @@ controller_workflows: webhook_service: "{{ current_workflow_job_templates_asset_value.webhook_service }}" {% if current_workflow_job_templates_asset_value.extra_vars and current_workflow_job_templates_asset_value.extra_vars | length > 3 %} extra_vars: - {{ current_workflow_job_templates_asset_value.extra_vars | from_yaml | to_nice_yaml(indent=2) | indent(width=6, first=False) | replace("{{", "{% raw %}{{{% endraw %}") | replace("}}", "{% raw %}}}{% endraw %}") }} + {{ current_workflow_job_templates_asset_value.extra_vars | from_yaml | to_nice_yaml(indent=2) | indent(width=6, first=False) | regex_replace('(^[^:]*): (.*){{', '\1: !unsafe \2{{') }} {%- endif %} {% if query_labels | length > 0 %} labels: From e62f16bea6e9fcb57f4644b1c15d633ff8e3fe76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Aragon=C3=A9s=20Muniesa?= <26822043+ivarmu@users.noreply.github.com> Date: Tue, 16 Jul 2024 15:19:20 +0200 Subject: [PATCH 3/4] Update current_job_templates.j2 Add `multiline=True` to treat multiple lines --- roles/filetree_create/templates/current_job_templates.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/filetree_create/templates/current_job_templates.j2 b/roles/filetree_create/templates/current_job_templates.j2 index b7cb25105..94c290b18 100644 --- a/roles/filetree_create/templates/current_job_templates.j2 +++ b/roles/filetree_create/templates/current_job_templates.j2 @@ -54,7 +54,7 @@ controller_templates: {% endif %} {% if current_job_templates_asset_value.extra_vars and current_job_templates_asset_value.extra_vars | length > 3 %} extra_vars: - {{ current_job_templates_asset_value.extra_vars | from_yaml | to_nice_yaml(indent=2) | indent(width=6, first=False) | regex_replace('(^[^:]*): (.*){{', '\1: !unsafe \2{{')}} + {{ current_job_templates_asset_value.extra_vars | from_yaml | to_nice_yaml(indent=2) | indent(width=6, first=False) | regex_replace('(^[^:]*): (.*){{', '\1: !unsafe \2{{', multiline=True)}} {%- endif %} job_tags: "{{ current_job_templates_asset_value.job_tags }}" force_handlers: {{ current_job_templates_asset_value.force_handlers | bool | lower }} From 4be668be0de7745357fdeb40aca59a6a7b8bc63b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Aragon=C3=A9s=20Muniesa?= <26822043+ivarmu@users.noreply.github.com> Date: Tue, 16 Jul 2024 15:19:48 +0200 Subject: [PATCH 4/4] Update current_workflow_job_templates.j2 Add `multiline=True` to treat multiple lines --- .../filetree_create/templates/current_workflow_job_templates.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/filetree_create/templates/current_workflow_job_templates.j2 b/roles/filetree_create/templates/current_workflow_job_templates.j2 index a2366d8d6..ac7873749 100644 --- a/roles/filetree_create/templates/current_workflow_job_templates.j2 +++ b/roles/filetree_create/templates/current_workflow_job_templates.j2 @@ -44,7 +44,7 @@ controller_workflows: webhook_service: "{{ current_workflow_job_templates_asset_value.webhook_service }}" {% if current_workflow_job_templates_asset_value.extra_vars and current_workflow_job_templates_asset_value.extra_vars | length > 3 %} extra_vars: - {{ current_workflow_job_templates_asset_value.extra_vars | from_yaml | to_nice_yaml(indent=2) | indent(width=6, first=False) | regex_replace('(^[^:]*): (.*){{', '\1: !unsafe \2{{') }} + {{ current_workflow_job_templates_asset_value.extra_vars | from_yaml | to_nice_yaml(indent=2) | indent(width=6, first=False) | regex_replace('(^[^:]*): (.*){{', '\1: !unsafe \2{{', multiline=True) }} {%- endif %} {% if query_labels | length > 0 %} labels: