From: Chuck Lever <cel@kernel.org>
To: Luis Chamberlain <mcgrof@kernel.org>,
Daniel Gomez <da.gomez@kruces.com>,
kdevops@lists.linux.dev
Subject: Re: [PATCH 1/2] gen_hosts: refactor monolithic hosts.j2 template into per-workflow templates
Date: Fri, 29 Aug 2025 12:42:34 -0400 [thread overview]
Message-ID: <ffbe68d3-7e05-4d49-b143-3ca5b5c17b25@kernel.org> (raw)
In-Reply-To: <20250829105645.1289069-2-mcgrof@kernel.org>
On 8/29/25 6:56 AM, Luis Chamberlain wrote:
> The hosts.j2 template had become unwieldy spaghetti code with all workflows
> mixed together in a single file, making it difficult to read, maintain, and
> extend. This was particularly problematic when attempting to add new features.
>
> This refactoring:
> - Splits the monolithic hosts.j2 into individual workflow templates under
> playbooks/roles/gen_hosts/templates/workflows/
> - Creates dedicated templates for each workflow (fstests, blktests, selftests,
> mmtests, sysbench, ai, fio-tests, etc.)
> - Converts the main hosts.j2 to use Jinja2 includes for cleaner organization
> - Maintains exact same functionality with improved maintainability
> - Removes workflow-specific template overrides from all workflow Makefiles
> as they now all use the unified hosts.j2 template
>
> Benefits:
> - Each workflow template is now self-contained and easy to understand
> - Adding new workflows no longer requires navigating through hundreds of
> lines of unrelated configuration
> - Template logic is easier to debug and test
> - All workflows now use a consistent template system
>
> This is a pure refactoring with no functional changes. The generated hosts
> files remain identical to the previous implementation.
>
> Generated-by: Claude AI
> Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
> ---
> playbooks/roles/gen_hosts/templates/hosts.j2 | 264 +++---------------
> .../roles/gen_hosts/templates/workflows/ai.j2 | 99 +++++++
> .../gen_hosts/templates/workflows/blktests.j2 | 58 ++++
> .../gen_hosts/templates/workflows/cxl.j2 | 7 +
> .../gen_hosts/templates/workflows/default.j2 | 62 ++++
> .../templates/workflows/fio-tests.j2 | 38 +++
> .../gen_hosts/templates/workflows/fstests.j2 | 72 +++++
> .../gen_hosts/templates/workflows/gitr.j2 | 41 +++
> .../gen_hosts/templates/workflows/ltp.j2 | 41 +++
> .../gen_hosts/templates/workflows/mmtests.j2 | 77 +++++
> .../gen_hosts/templates/workflows/nfstest.j2 | 41 +++
> .../gen_hosts/templates/workflows/pynfs.j2 | 7 +
> .../templates/workflows/reboot-limit.j2 | 33 +++
> .../templates/workflows/selftests.j2 | 53 ++++
> .../gen_hosts/templates/workflows/sysbench.j2 | 53 ++++
> workflows/ai/Makefile | 3 +-
> workflows/blktests/Makefile | 3 +-
> workflows/cxl/Makefile | 3 +-
> workflows/fio-tests/Makefile | 3 +-
> workflows/fstests/Makefile | 3 +-
> workflows/gitr/Makefile | 3 +-
> workflows/linux/Makefile | 3 +-
> workflows/ltp/Makefile | 3 +-
> workflows/mmtests/Makefile | 3 +-
> workflows/nfstest/Makefile | 3 +-
> workflows/pynfs/Makefile | 3 +-
> workflows/selftests/Makefile | 3 +-
> workflows/sysbench/Makefile | 3 +-
> 28 files changed, 741 insertions(+), 244 deletions(-)
> create mode 100644 playbooks/roles/gen_hosts/templates/workflows/ai.j2
> create mode 100644 playbooks/roles/gen_hosts/templates/workflows/blktests.j2
> create mode 100644 playbooks/roles/gen_hosts/templates/workflows/cxl.j2
> create mode 100644 playbooks/roles/gen_hosts/templates/workflows/default.j2
> create mode 100644 playbooks/roles/gen_hosts/templates/workflows/fio-tests.j2
> create mode 100644 playbooks/roles/gen_hosts/templates/workflows/fstests.j2
> create mode 100644 playbooks/roles/gen_hosts/templates/workflows/gitr.j2
> create mode 100644 playbooks/roles/gen_hosts/templates/workflows/ltp.j2
> create mode 100644 playbooks/roles/gen_hosts/templates/workflows/mmtests.j2
> create mode 100644 playbooks/roles/gen_hosts/templates/workflows/nfstest.j2
> create mode 100644 playbooks/roles/gen_hosts/templates/workflows/pynfs.j2
> create mode 100644 playbooks/roles/gen_hosts/templates/workflows/reboot-limit.j2
> create mode 100644 playbooks/roles/gen_hosts/templates/workflows/selftests.j2
> create mode 100644 playbooks/roles/gen_hosts/templates/workflows/sysbench.j2
>
> diff --git a/playbooks/roles/gen_hosts/templates/hosts.j2 b/playbooks/roles/gen_hosts/templates/hosts.j2
> index 0e896481..2f2f5d41 100644
> --- a/playbooks/roles/gen_hosts/templates/hosts.j2
> +++ b/playbooks/roles/gen_hosts/templates/hosts.j2
> @@ -5,242 +5,44 @@ proper identation. We don't need identation for the ansible hosts file.
> Each workflow which has its own custom ansible host file generated should use
> its own jinja2 template file and define its own ansible task for its generation.
> #}
> -{% if kdevops_workflows_dedicated_workflow %}
> +{% if kdevops_declared_hosts is defined and kdevops_declared_hosts %}
> +{# Use declared hosts that skip bringup process - for bare metal or pre-existing infrastructure #}
> +{% include 'workflows/declared-hosts.j2' %}
> +{% elif kdevops_workflows_dedicated_workflow %}
> +{# Include workflow-specific template based on enabled workflow. Each workflow has its own
> + template file under workflows/ directory for better maintainability and modularity #}
> {% if workflows_reboot_limit %}
> -[all]
> -localhost ansible_connection=local
> -{{ kdevops_host_prefix }}-reboot-limit
> -{% if kdevops_baseline_and_dev %}
> -{{ kdevops_host_prefix }}-reboot-limit-dev
> -{% endif %}
> -
> -[all:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -
> -[baseline]
> -{{ kdevops_host_prefix }}-reboot-limit
> -
> -[baseline:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -
> -{% if kdevops_baseline_and_dev %}
> -[dev]
> -{{ kdevops_host_prefix }}-reboot-limit-dev
> -
> -[dev:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -
> -{% endif %}
> -[reboot-limit]
> -{{ kdevops_host_prefix }}-reboot-limit
> -{% if kdevops_baseline_and_dev %}
> -{{ kdevops_host_prefix }}-reboot-limit-dev
> -{% endif %}
> -
> -[reboot-limit:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +{% include 'workflows/reboot-limit.j2' %}
> {% elif kdevops_workflow_enable_fio_tests %}
> -[all]
> -localhost ansible_connection=local
> -{{ kdevops_host_prefix }}-fio-tests
> -{% if kdevops_baseline_and_dev %}
> -{{ kdevops_host_prefix }}-fio-tests-dev
> -{% endif %}
> -
> -[all:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -
> -[baseline]
> -{{ kdevops_host_prefix }}-fio-tests
> -
> -[baseline:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -
> -{% if kdevops_baseline_and_dev %}
> -[dev]
> -{{ kdevops_host_prefix }}-fio-tests-dev
> -
> -[dev:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -
> -{% endif %}
> -[fio_tests]
> -{{ kdevops_host_prefix }}-fio-tests
> -{% if kdevops_baseline_and_dev %}
> -{{ kdevops_host_prefix }}-fio-tests-dev
> -{% endif %}
> -
> -[fio_tests:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -
> -[service]
> -
> -[service:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -{% elif kdevops_workflow_enable_ai %}
> -{% if ai_enable_multifs_testing|default(false)|bool %}
> -{# Multi-filesystem section-based hosts #}
> -[all]
> -localhost ansible_connection=local
> -{% for node in all_generic_nodes %}
> -{{ node }}
> -{% endfor %}
> -
> -[all:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -
> -[baseline]
> -{% for node in all_generic_nodes %}
> -{% if not node.endswith('-dev') %}
> -{{ node }}
> -{% endif %}
> -{% endfor %}
> -
> -[baseline:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -
> -{% if kdevops_baseline_and_dev %}
> -[dev]
> -{% for node in all_generic_nodes %}
> -{% if node.endswith('-dev') %}
> -{{ node }}
> -{% endif %}
> -{% endfor %}
> -
> -[dev:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -
> -{% endif %}
> -[ai]
> -{% for node in all_generic_nodes %}
> -{{ node }}
> -{% endfor %}
> -
> -[ai:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -
> -{# Individual section groups for multi-filesystem testing #}
> -{% set section_names = [] %}
> -{% for node in all_generic_nodes %}
> -{% if not node.endswith('-dev') %}
> -{% set section = node.replace(kdevops_host_prefix + '-ai-', '') %}
> -{% if section != kdevops_host_prefix + '-ai' %}
> -{% if section_names.append(section) %}{% endif %}
> -{% endif %}
> -{% endif %}
> -{% endfor %}
> -
> -{% for section in section_names %}
> -[ai_{{ section | replace('-', '_') }}]
> -{{ kdevops_host_prefix }}-ai-{{ section }}
> -{% if kdevops_baseline_and_dev %}
> -{{ kdevops_host_prefix }}-ai-{{ section }}-dev
> -{% endif %}
> -
> -[ai_{{ section | replace('-', '_') }}:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -
> -{% endfor %}
> -{% else %}
> -{# Single filesystem hosts (original behavior) #}
> -[all]
> -localhost ansible_connection=local
> -{{ kdevops_host_prefix }}-ai
> -{% if kdevops_baseline_and_dev %}
> -{{ kdevops_host_prefix }}-ai-dev
> -{% endif %}
> -
> -[all:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -
> -[baseline]
> -{{ kdevops_host_prefix }}-ai
> -
> -[baseline:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -
> -{% if kdevops_baseline_and_dev %}
> -[dev]
> -{{ kdevops_host_prefix }}-ai-dev
> -
> -[dev:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -
> -{% endif %}
> -[ai]
> -{{ kdevops_host_prefix }}-ai
> -{% if kdevops_baseline_and_dev %}
> -{{ kdevops_host_prefix }}-ai-dev
> -{% endif %}
> -
> -[ai:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -{% endif %}
> +{% include 'workflows/fio-tests.j2' %}
> +{% elif kdevops_workflow_enable_fstests %}
> +{% include 'workflows/fstests.j2' %}
> +{% elif kdevops_workflow_enable_blktests %}
> +{% include 'workflows/blktests.j2' %}
> +{% elif kdevops_workflow_enable_selftests %}
> +{% include 'workflows/selftests.j2' %}
> +{% elif kdevops_workflow_enable_mmtests %}
> +{% include 'workflows/mmtests.j2' %}
> +{% elif kdevops_workflow_enable_sysbench %}
> +{% include 'workflows/sysbench.j2' %}
> +{% elif kdevops_workflow_enable_cxl %}
> +{% include 'workflows/cxl.j2' %}
> +{% elif kdevops_workflow_enable_pynfs %}
> +{% include 'workflows/pynfs.j2' %}
> +{% elif kdevops_workflow_enable_gitr %}
> +{% include 'workflows/gitr.j2' %}
> +{% elif kdevops_workflow_enable_ltp %}
> +{% include 'workflows/ltp.j2' %}
> +{% elif kdevops_workflow_enable_nfstest %}
> +{% include 'workflows/nfstest.j2' %}
> +{% elif kdevops_workflow_enable_ai|default(false)|bool %}
> +{% include 'workflows/ai.j2' %}
Seems like a smarter approach here would be to have the gen_hosts
playbook's "ansible.builtin.template" step select the .j2 file to
templatize. Just construct the template's pathname based on the name of
the workflow.
Then you don't have to add a new "if" arm when adding a new workflow
template.
> {% else %}
> [all]
> localhost ansible_connection=local
> write-your-own-template-for-your-workflow-and-task
> {% endif %}
> {% else %}
> -[all]
> -localhost ansible_connection=local
> -{% if kdevops_enable_nixos|default(false) %}
> -{{ kdevops_host_prefix }} ansible_python_interpreter=/run/current-system/sw/bin/python3
> -{% else %}
> -{{ kdevops_host_prefix }}
> -{% endif %}
> -{% if kdevops_baseline_and_dev == True %}
> -{% if kdevops_enable_nixos|default(false) %}
> -{{ kdevops_host_prefix }}-dev ansible_python_interpreter=/run/current-system/sw/bin/python3
> -{% else %}
> -{{ kdevops_host_prefix }}-dev
> -{% endif %}
> -{% endif %}
> -{% if kdevops_enable_iscsi %}
> -{{ kdevops_host_prefix }}-iscsi
> -{% endif %}
> -{% if kdevops_nfsd_enable %}
> -{{ kdevops_host_prefix }}-nfsd
> -{% endif %}
> -[all:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -[baseline]
> -{% if kdevops_enable_nixos|default(false) %}
> -{{ kdevops_host_prefix }} ansible_python_interpreter=/run/current-system/sw/bin/python3
> -{% else %}
> -{{ kdevops_host_prefix }}
> -{% endif %}
> -[baseline:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -[dev]
> -{% if kdevops_baseline_and_dev %}
> -{% if kdevops_enable_nixos|default(false) %}
> -{{ kdevops_host_prefix }}-dev ansible_python_interpreter=/run/current-system/sw/bin/python3
> -{% else %}
> -{{ kdevops_host_prefix }}-dev
> -{% endif %}
> -{% endif %}
> -[dev:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -{% if kdevops_enable_iscsi %}
> -[iscsi]
> -{{ kdevops_host_prefix }}-iscsi
> -[iscsi:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -{% endif %}
> -{% if kdevops_nfsd_enable %}
> -[nfsd]
> -{{ kdevops_host_prefix }}-nfsd
> -[nfsd:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -{% endif %}
> -[service]
> -{% if kdevops_enable_iscsi %}
> -{{ kdevops_host_prefix }}-iscsi
> -{% endif %}
> -{% if kdevops_nfsd_enable %}
> -{{ kdevops_host_prefix }}-nfsd
> -{% endif %}
> -[service:vars]
> -ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> -{% endif %}
> +{# Default non-workflow template #}
> +{% include 'workflows/default.j2' %}
> +{% endif %}
> \ No newline at end of file
> diff --git a/playbooks/roles/gen_hosts/templates/workflows/ai.j2 b/playbooks/roles/gen_hosts/templates/workflows/ai.j2
> new file mode 100644
> index 00000000..d0914436
> --- /dev/null
> +++ b/playbooks/roles/gen_hosts/templates/workflows/ai.j2
> @@ -0,0 +1,99 @@
> +{# Workflow template for AI #}
> +{% if ai_enable_multifs_testing|default(false)|bool %}
> +{# Multi-filesystem section-based hosts #}
> +[all]
> +localhost ansible_connection=local
> +{% for node in all_generic_nodes %}
> +{{ node }}
> +{% endfor %}
> +
> +[all:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +[baseline]
> +{% for node in all_generic_nodes %}
> +{% if not node.endswith('-dev') %}
> +{{ node }}
> +{% endif %}
> +{% endfor %}
> +
> +[baseline:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% if kdevops_baseline_and_dev %}
> +[dev]
> +{% for node in all_generic_nodes %}
> +{% if node.endswith('-dev') %}
> +{{ node }}
> +{% endif %}
> +{% endfor %}
> +
> +[dev:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% endif %}
> +[ai]
> +{% for node in all_generic_nodes %}
> +{{ node }}
> +{% endfor %}
> +
> +[ai:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{# Individual section groups for multi-filesystem testing #}
> +{% set section_names = [] %}
> +{% for node in all_generic_nodes %}
> +{% if not node.endswith('-dev') %}
> +{% set section = node.replace(kdevops_host_prefix + '-ai-', '') %}
> +{% if section != kdevops_host_prefix + '-ai' %}
> +{% if section_names.append(section) %}{% endif %}
> +{% endif %}
> +{% endif %}
> +{% endfor %}
> +
> +{% for section in section_names %}
> +[ai_{{ section | replace('-', '_') }}]
> +{{ kdevops_host_prefix }}-ai-{{ section }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-ai-{{ section }}-dev
> +{% endif %}
> +
> +[ai_{{ section | replace('-', '_') }}:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% endfor %}
> +{% else %}
> +{# Single filesystem hosts (original behavior) #}
> +[all]
> +localhost ansible_connection=local
> +{{ kdevops_host_prefix }}-ai
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-ai-dev
> +{% endif %}
> +
> +[all:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +[baseline]
> +{{ kdevops_host_prefix }}-ai
> +
> +[baseline:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% if kdevops_baseline_and_dev %}
> +[dev]
> +{{ kdevops_host_prefix }}-ai-dev
> +
> +[dev:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% endif %}
> +[ai]
> +{{ kdevops_host_prefix }}-ai
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-ai-dev
> +{% endif %}
> +
> +[ai:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +{% endif %}
> diff --git a/playbooks/roles/gen_hosts/templates/workflows/blktests.j2 b/playbooks/roles/gen_hosts/templates/workflows/blktests.j2
> new file mode 100644
> index 00000000..eea3eef3
> --- /dev/null
> +++ b/playbooks/roles/gen_hosts/templates/workflows/blktests.j2
> @@ -0,0 +1,58 @@
> +{# Workflow template for blktests #}
> +[all]
> +localhost ansible_connection=local
> +{% for test_type in blktests_enabled_test_types %}
> +{{ kdevops_host_prefix }}-{{ test_type }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ test_type }}-dev
> +{% endif %}
> +{% endfor %}
> +
> +[all:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +[baseline]
> +{% for test_type in blktests_enabled_test_types %}
> +{{ kdevops_host_prefix }}-{{ test_type }}
> +{% endfor %}
> +
> +[baseline:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% if kdevops_baseline_and_dev %}
> +[dev]
> +{% for test_type in blktests_enabled_test_types %}
> +{{ kdevops_host_prefix }}-{{ test_type }}-dev
> +{% endfor %}
> +
> +[dev:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% endif %}
> +[blktests]
> +{% for test_type in blktests_enabled_test_types %}
> +{{ kdevops_host_prefix }}-{{ test_type }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ test_type }}-dev
> +{% endif %}
> +{% endfor %}
> +
> +[blktests:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% for test_type in blktests_enabled_test_types %}
> +[blktests_{{ test_type | replace('-', '_') }}]
> +{{ kdevops_host_prefix }}-{{ test_type }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ test_type }}-dev
> +{% endif %}
> +
> +[blktests_{{ test_type | replace('-', '_') }}:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% endfor %}
> +
> +[service]
> +
> +[service:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> diff --git a/playbooks/roles/gen_hosts/templates/workflows/cxl.j2 b/playbooks/roles/gen_hosts/templates/workflows/cxl.j2
> new file mode 100644
> index 00000000..53790f29
> --- /dev/null
> +++ b/playbooks/roles/gen_hosts/templates/workflows/cxl.j2
> @@ -0,0 +1,7 @@
> +{# Workflow template for CXL #}
> +[all]
> +localhost ansible_connection=local
> +write-your-own-template-for-cxl-workflow
> +
> +[all:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> diff --git a/playbooks/roles/gen_hosts/templates/workflows/default.j2 b/playbooks/roles/gen_hosts/templates/workflows/default.j2
> new file mode 100644
> index 00000000..86619309
> --- /dev/null
> +++ b/playbooks/roles/gen_hosts/templates/workflows/default.j2
> @@ -0,0 +1,62 @@
> +{# Default template for non-workflow setups #}
> +[all]
> +localhost ansible_connection=local
> +{% if kdevops_enable_nixos|default(false) %}
> +{{ kdevops_host_prefix }} ansible_python_interpreter=/run/current-system/sw/bin/python3
> +{% else %}
> +{{ kdevops_host_prefix }}
> +{% endif %}
> +{% if kdevops_baseline_and_dev == True %}
> +{% if kdevops_enable_nixos|default(false) %}
> +{{ kdevops_host_prefix }}-dev ansible_python_interpreter=/run/current-system/sw/bin/python3
> +{% else %}
> +{{ kdevops_host_prefix }}-dev
> +{% endif %}
> +{% endif %}
> +{% if kdevops_enable_iscsi %}
> +{{ kdevops_host_prefix }}-iscsi
> +{% endif %}
> +{% if kdevops_nfsd_enable %}
> +{{ kdevops_host_prefix }}-nfsd
> +{% endif %}
> +[all:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +[baseline]
> +{% if kdevops_enable_nixos|default(false) %}
> +{{ kdevops_host_prefix }} ansible_python_interpreter=/run/current-system/sw/bin/python3
> +{% else %}
> +{{ kdevops_host_prefix }}
> +{% endif %}
> +[baseline:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +[dev]
> +{% if kdevops_baseline_and_dev %}
> +{% if kdevops_enable_nixos|default(false) %}
> +{{ kdevops_host_prefix }}-dev ansible_python_interpreter=/run/current-system/sw/bin/python3
> +{% else %}
> +{{ kdevops_host_prefix }}-dev
> +{% endif %}
> +{% endif %}
> +[dev:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +{% if kdevops_enable_iscsi %}
> +[iscsi]
> +{{ kdevops_host_prefix }}-iscsi
> +[iscsi:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +{% endif %}
> +{% if kdevops_nfsd_enable %}
> +[nfsd]
> +{{ kdevops_host_prefix }}-nfsd
> +[nfsd:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +{% endif %}
> +[service]
> +{% if kdevops_enable_iscsi %}
> +{{ kdevops_host_prefix }}-iscsi
> +{% endif %}
> +{% if kdevops_nfsd_enable %}
> +{{ kdevops_host_prefix }}-nfsd
> +{% endif %}
> +[service:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> diff --git a/playbooks/roles/gen_hosts/templates/workflows/fio-tests.j2 b/playbooks/roles/gen_hosts/templates/workflows/fio-tests.j2
> new file mode 100644
> index 00000000..548941a0
> --- /dev/null
> +++ b/playbooks/roles/gen_hosts/templates/workflows/fio-tests.j2
> @@ -0,0 +1,38 @@
> +{# Workflow template for fio-tests #}
> +[all]
> +localhost ansible_connection=local
> +{{ kdevops_host_prefix }}-fio-tests
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-fio-tests-dev
> +{% endif %}
> +
> +[all:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +[baseline]
> +{{ kdevops_host_prefix }}-fio-tests
> +
> +[baseline:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% if kdevops_baseline_and_dev %}
> +[dev]
> +{{ kdevops_host_prefix }}-fio-tests-dev
> +
> +[dev:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% endif %}
> +[fio_tests]
> +{{ kdevops_host_prefix }}-fio-tests
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-fio-tests-dev
> +{% endif %}
> +
> +[fio_tests:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +[service]
> +
> +[service:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> diff --git a/playbooks/roles/gen_hosts/templates/workflows/fstests.j2 b/playbooks/roles/gen_hosts/templates/workflows/fstests.j2
> new file mode 100644
> index 00000000..600d125f
> --- /dev/null
> +++ b/playbooks/roles/gen_hosts/templates/workflows/fstests.j2
> @@ -0,0 +1,72 @@
> +{# Workflow template for fstests #}
> +[all]
> +localhost ansible_connection=local
> +{% for node_section in fstests_enabled_test_types %}
> +{{ kdevops_host_prefix }}-{{ node_section }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ node_section }}-dev
> +{% endif %}
> +{% endfor %}
> +
> +[all:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +[baseline]
> +{% for node_section in fstests_enabled_test_types %}
> +{{ kdevops_host_prefix }}-{{ node_section }}
> +{% endfor %}
> +
> +[baseline:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% if kdevops_baseline_and_dev %}
> +[dev]
> +{% for node_section in fstests_enabled_test_types %}
> +{{ kdevops_host_prefix }}-{{ node_section }}-dev
> +{% endfor %}
> +
> +[dev:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% endif %}
> +[fstests]
> +{% for node_section in fstests_enabled_test_types %}
> +{{ kdevops_host_prefix }}-{{ node_section }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ node_section }}-dev
> +{% endif %}
> +{% endfor %}
> +
> +[fstests:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% for section in sections %}
> +[fstests_{{ section | replace('-', '_') }}]
> +{{ kdevops_host_prefix }}-{{ section }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ section }}-dev
> +{% endif %}
> +
> +[fstests_{{ section | replace('-', '_') }}:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% endfor %}
> +
> +[nfsd]
> +{% if kdevops_nfsd_enable %}
> +{{ kdevops_host_prefix }}-nfsd
> +{% endif %}
> +
> +[nfsd:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +[service]
> +{% if kdevops_enable_iscsi %}
> +{{ kdevops_host_prefix }}-iscsi
> +{% endif %}
> +{% if kdevops_nfsd_enable %}
> +{{ kdevops_host_prefix }}-nfsd
> +{% endif %}
> +
> +[service:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> diff --git a/playbooks/roles/gen_hosts/templates/workflows/gitr.j2 b/playbooks/roles/gen_hosts/templates/workflows/gitr.j2
> new file mode 100644
> index 00000000..86ee9326
> --- /dev/null
> +++ b/playbooks/roles/gen_hosts/templates/workflows/gitr.j2
> @@ -0,0 +1,41 @@
> +{# Workflow template for gitr #}
> +[all]
> +localhost ansible_connection=local
> +{% for host in gitr_enabled_hosts %}
> +{{ kdevops_host_prefix }}-{{ host }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ host }}-dev
> +{% endif %}
> +{% endfor %}
> +
> +[all:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +[baseline]
> +{% for host in gitr_enabled_hosts %}
> +{{ kdevops_host_prefix }}-{{ host }}
> +{% endfor %}
> +
> +[baseline:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% if kdevops_baseline_and_dev %}
> +[dev]
> +{% for host in gitr_enabled_hosts %}
> +{{ kdevops_host_prefix }}-{{ host }}-dev
> +{% endfor %}
> +
> +[dev:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% endif %}
> +[gitr]
> +{% for host in gitr_enabled_hosts %}
> +{{ kdevops_host_prefix }}-{{ host }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ host }}-dev
> +{% endif %}
> +{% endfor %}
> +
> +[gitr:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> diff --git a/playbooks/roles/gen_hosts/templates/workflows/ltp.j2 b/playbooks/roles/gen_hosts/templates/workflows/ltp.j2
> new file mode 100644
> index 00000000..fb120828
> --- /dev/null
> +++ b/playbooks/roles/gen_hosts/templates/workflows/ltp.j2
> @@ -0,0 +1,41 @@
> +{# Workflow template for ltp #}
> +[all]
> +localhost ansible_connection=local
> +{% for host in ltp_enabled_hosts %}
> +{{ kdevops_host_prefix }}-{{ host }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ host }}-dev
> +{% endif %}
> +{% endfor %}
> +
> +[all:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +[baseline]
> +{% for host in ltp_enabled_hosts %}
> +{{ kdevops_host_prefix }}-{{ host }}
> +{% endfor %}
> +
> +[baseline:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% if kdevops_baseline_and_dev %}
> +[dev]
> +{% for host in ltp_enabled_hosts %}
> +{{ kdevops_host_prefix }}-{{ host }}-dev
> +{% endfor %}
> +
> +[dev:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% endif %}
> +[ltp]
> +{% for host in ltp_enabled_hosts %}
> +{{ kdevops_host_prefix }}-{{ host }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ host }}-dev
> +{% endif %}
> +{% endfor %}
> +
> +[ltp:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> diff --git a/playbooks/roles/gen_hosts/templates/workflows/mmtests.j2 b/playbooks/roles/gen_hosts/templates/workflows/mmtests.j2
> new file mode 100644
> index 00000000..d796cbe6
> --- /dev/null
> +++ b/playbooks/roles/gen_hosts/templates/workflows/mmtests.j2
> @@ -0,0 +1,77 @@
> +{# Workflow template for mmtests #}
> +[all]
> +localhost ansible_connection=local
> +{% if mmtests_enabled_test_types %}
> +{% for test_type in mmtests_enabled_test_types %}
> +{{ kdevops_host_prefix }}-{{ test_type }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ test_type }}-dev
> +{% endif %}
> +{% endfor %}
> +{% else %}
> +{{ kdevops_host_prefix }}-mmtests
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-mmtests-dev
> +{% endif %}
> +{% endif %}
> +
> +[all:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +[baseline]
> +{% if mmtests_enabled_test_types %}
> +{% for test_type in mmtests_enabled_test_types %}
> +{{ kdevops_host_prefix }}-{{ test_type }}
> +{% endfor %}
> +{% else %}
> +{{ kdevops_host_prefix }}-mmtests
> +{% endif %}
> +
> +[baseline:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% if kdevops_baseline_and_dev %}
> +[dev]
> +{% if mmtests_enabled_test_types %}
> +{% for test_type in mmtests_enabled_test_types %}
> +{{ kdevops_host_prefix }}-{{ test_type }}-dev
> +{% endfor %}
> +{% else %}
> +{{ kdevops_host_prefix }}-mmtests-dev
> +{% endif %}
> +
> +[dev:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% endif %}
> +[mmtests]
> +{% if mmtests_enabled_test_types %}
> +{% for test_type in mmtests_enabled_test_types %}
> +{{ kdevops_host_prefix }}-{{ test_type }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ test_type }}-dev
> +{% endif %}
> +{% endfor %}
> +{% else %}
> +{{ kdevops_host_prefix }}-mmtests
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-mmtests-dev
> +{% endif %}
> +{% endif %}
> +
> +[mmtests:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% if mmtests_enabled_test_types %}
> +{% for test_type in mmtests_enabled_test_types %}
> +[mmtests_{{ test_type | replace('-', '_') }}]
> +{{ kdevops_host_prefix }}-{{ test_type }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ test_type }}-dev
> +{% endif %}
> +
> +[mmtests_{{ test_type | replace('-', '_') }}:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% endfor %}
> +{% endif %}
> diff --git a/playbooks/roles/gen_hosts/templates/workflows/nfstest.j2 b/playbooks/roles/gen_hosts/templates/workflows/nfstest.j2
> new file mode 100644
> index 00000000..34aa7dfe
> --- /dev/null
> +++ b/playbooks/roles/gen_hosts/templates/workflows/nfstest.j2
> @@ -0,0 +1,41 @@
> +{# Workflow template for nfstest #}
> +[all]
> +localhost ansible_connection=local
> +{% for host in nfstest_enabled_hosts %}
> +{{ kdevops_host_prefix }}-{{ host }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ host }}-dev
> +{% endif %}
> +{% endfor %}
> +
> +[all:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +[baseline]
> +{% for host in nfstest_enabled_hosts %}
> +{{ kdevops_host_prefix }}-{{ host }}
> +{% endfor %}
> +
> +[baseline:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% if kdevops_baseline_and_dev %}
> +[dev]
> +{% for host in nfstest_enabled_hosts %}
> +{{ kdevops_host_prefix }}-{{ host }}-dev
> +{% endfor %}
> +
> +[dev:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% endif %}
> +[nfstest]
> +{% for host in nfstest_enabled_hosts %}
> +{{ kdevops_host_prefix }}-{{ host }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ host }}-dev
> +{% endif %}
> +{% endfor %}
> +
> +[nfstest:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> diff --git a/playbooks/roles/gen_hosts/templates/workflows/pynfs.j2 b/playbooks/roles/gen_hosts/templates/workflows/pynfs.j2
> new file mode 100644
> index 00000000..6145b1a0
> --- /dev/null
> +++ b/playbooks/roles/gen_hosts/templates/workflows/pynfs.j2
> @@ -0,0 +1,7 @@
> +{# Workflow template for pynfs #}
> +[all]
> +localhost ansible_connection=local
> +write-your-own-template-for-pynfs-workflow
> +
> +[all:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> diff --git a/playbooks/roles/gen_hosts/templates/workflows/reboot-limit.j2 b/playbooks/roles/gen_hosts/templates/workflows/reboot-limit.j2
> new file mode 100644
> index 00000000..07bd6f80
> --- /dev/null
> +++ b/playbooks/roles/gen_hosts/templates/workflows/reboot-limit.j2
> @@ -0,0 +1,33 @@
> +{# Workflow template for reboot-limit #}
> +[all]
> +localhost ansible_connection=local
> +{{ kdevops_host_prefix }}-reboot-limit
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-reboot-limit-dev
> +{% endif %}
> +
> +[all:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +[baseline]
> +{{ kdevops_host_prefix }}-reboot-limit
> +
> +[baseline:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% if kdevops_baseline_and_dev %}
> +[dev]
> +{{ kdevops_host_prefix }}-reboot-limit-dev
> +
> +[dev:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% endif %}
> +[reboot-limit]
> +{{ kdevops_host_prefix }}-reboot-limit
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-reboot-limit-dev
> +{% endif %}
> +
> +[reboot-limit:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> diff --git a/playbooks/roles/gen_hosts/templates/workflows/selftests.j2 b/playbooks/roles/gen_hosts/templates/workflows/selftests.j2
> new file mode 100644
> index 00000000..4ef598c7
> --- /dev/null
> +++ b/playbooks/roles/gen_hosts/templates/workflows/selftests.j2
> @@ -0,0 +1,53 @@
> +{# Workflow template for selftests #}
> +[all]
> +localhost ansible_connection=local
> +{% for test_type in selftests_enabled_test_types %}
> +{{ kdevops_host_prefix }}-{{ test_type }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ test_type }}-dev
> +{% endif %}
> +{% endfor %}
> +
> +[all:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +[baseline]
> +{% for test_type in selftests_enabled_test_types %}
> +{{ kdevops_host_prefix }}-{{ test_type }}
> +{% endfor %}
> +
> +[baseline:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% if kdevops_baseline_and_dev %}
> +[dev]
> +{% for test_type in selftests_enabled_test_types %}
> +{{ kdevops_host_prefix }}-{{ test_type }}-dev
> +{% endfor %}
> +
> +[dev:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% endif %}
> +[selftests]
> +{% for test_type in selftests_enabled_test_types %}
> +{{ kdevops_host_prefix }}-{{ test_type }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ test_type }}-dev
> +{% endif %}
> +{% endfor %}
> +
> +[selftests:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% for test_type in selftests_enabled_test_types %}
> +[selftests_{{ test_type | replace('-', '_') }}]
> +{{ kdevops_host_prefix }}-{{ test_type }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ test_type }}-dev
> +{% endif %}
> +
> +[selftests_{{ test_type | replace('-', '_') }}:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% endfor %}
> diff --git a/playbooks/roles/gen_hosts/templates/workflows/sysbench.j2 b/playbooks/roles/gen_hosts/templates/workflows/sysbench.j2
> new file mode 100644
> index 00000000..34f22a83
> --- /dev/null
> +++ b/playbooks/roles/gen_hosts/templates/workflows/sysbench.j2
> @@ -0,0 +1,53 @@
> +{# Workflow template for sysbench #}
> +[all]
> +localhost ansible_connection=local
> +{% for test in enabled_sysbench_tests %}
> +{{ kdevops_host_prefix }}-{{ test }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ test }}-dev
> +{% endif %}
> +{% endfor %}
> +
> +[all:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +[baseline]
> +{% for test in enabled_sysbench_tests %}
> +{{ kdevops_host_prefix }}-{{ test }}
> +{% endfor %}
> +
> +[baseline:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% if kdevops_baseline_and_dev %}
> +[dev]
> +{% for test in enabled_sysbench_tests %}
> +{{ kdevops_host_prefix }}-{{ test }}-dev
> +{% endfor %}
> +
> +[dev:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% endif %}
> +[sysbench]
> +{% for test in enabled_sysbench_tests %}
> +{{ kdevops_host_prefix }}-{{ test }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ test }}-dev
> +{% endif %}
> +{% endfor %}
> +
> +[sysbench:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% for test in enabled_sysbench_tests %}
> +[sysbench_{{ test | replace('-', '_') }}]
> +{{ kdevops_host_prefix }}-{{ test }}
> +{% if kdevops_baseline_and_dev %}
> +{{ kdevops_host_prefix }}-{{ test }}-dev
> +{% endif %}
> +
> +[sysbench_{{ test | replace('-', '_') }}:vars]
> +ansible_python_interpreter = "{{ kdevops_python_interpreter }}"
> +
> +{% endfor %}
> diff --git a/workflows/ai/Makefile b/workflows/ai/Makefile
> index 1c297edd..27dea382 100644
> --- a/workflows/ai/Makefile
> +++ b/workflows/ai/Makefile
> @@ -4,7 +4,8 @@ PHONY += ai-tests ai-tests-baseline ai-tests-dev
> PHONY += ai-tests-results
>
> ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW))
> -export KDEVOPS_HOSTS_TEMPLATE := hosts.j2
> +# After refactoring, all workflows use hosts.j2 which includes workflow-specific templates
> +# export KDEVOPS_HOSTS_TEMPLATE := hosts.j2
This comment seems like Claude is "showing his work". I'm not sure there
is a long-term value in keeping these comments, and they might end up
becoming technical debt over time.
> endif
>
> export AI_DATA_TARGET := $(subst ",,$(CONFIG_AI_BENCHMARK_RESULTS_DIR))
> diff --git a/workflows/blktests/Makefile b/workflows/blktests/Makefile
> index 11cd9a65..97649026 100644
> --- a/workflows/blktests/Makefile
> +++ b/workflows/blktests/Makefile
> @@ -12,7 +12,8 @@ ID=$(shell id -u)
> BLKTESTS_ARGS :=
>
> ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW))
> -export KDEVOPS_HOSTS_TEMPLATE := blktests.j2
> +# After refactoring, all workflows use hosts.j2 which includes workflow-specific templates
> +# export KDEVOPS_HOSTS_TEMPLATE := blktests.j2
> endif
>
> BLKTESTS_GIT:=$(subst ",,$(CONFIG_BLKTESTS_GIT))
> diff --git a/workflows/cxl/Makefile b/workflows/cxl/Makefile
> index bb130057..feabe197 100644
> --- a/workflows/cxl/Makefile
> +++ b/workflows/cxl/Makefile
> @@ -1,6 +1,7 @@
> # SPDX-License-Identifier: copyleft-next-0.3.1
>
> -export KDEVOPS_HOSTS_TEMPLATE := cxl.j2
> +# After refactoring, all workflows use hosts.j2 which includes workflow-specific templates
> +# export KDEVOPS_HOSTS_TEMPLATE := cxl.j2
>
> CXL_ARGS :=
> CXL_ARGS += ndctl_git='$(subst ",,$(CONFIG_NDCTL_GIT))'
> diff --git a/workflows/fio-tests/Makefile b/workflows/fio-tests/Makefile
> index 5eb2ccbd..20a5d192 100644
> --- a/workflows/fio-tests/Makefile
> +++ b/workflows/fio-tests/Makefile
> @@ -1,5 +1,6 @@
> ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW))
> -export KDEVOPS_HOSTS_TEMPLATE := fio-tests.j2
> +# After refactoring, all workflows use hosts.j2 which includes workflow-specific templates
> +# export KDEVOPS_HOSTS_TEMPLATE := fio-tests.j2
> endif
>
> fio-tests:
> diff --git a/workflows/fstests/Makefile b/workflows/fstests/Makefile
> index d2e5c636..989c564b 100644
> --- a/workflows/fstests/Makefile
> +++ b/workflows/fstests/Makefile
> @@ -9,7 +9,8 @@ FSTESTS_BASELINE_EXTRA :=
> export FSTYP:=$(subst ",,$(CONFIG_FSTESTS_FSTYP))
>
> ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW))
> -export KDEVOPS_HOSTS_TEMPLATE := fstests.j2
> +# After refactoring, all workflows use hosts.j2 which includes workflow-specific templates
> +# export KDEVOPS_HOSTS_TEMPLATE := fstests.j2
> endif
>
> FSTESTS_ARGS += fstests_fstyp='$(FSTYP)'
> diff --git a/workflows/gitr/Makefile b/workflows/gitr/Makefile
> index c685395a..eadcdac1 100644
> --- a/workflows/gitr/Makefile
> +++ b/workflows/gitr/Makefile
> @@ -1,5 +1,6 @@
> ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW))
> -export KDEVOPS_HOSTS_TEMPLATE := gitr.j2
> +# After refactoring, all workflows use hosts.j2 which includes workflow-specific templates
> +# export KDEVOPS_HOSTS_TEMPLATE := gitr.j2
> endif
>
> GITR_MNT:=$(subst ",,$(CONFIG_GITR_MNT))
> diff --git a/workflows/linux/Makefile b/workflows/linux/Makefile
> index 30b123f9..60d755b3 100644
> --- a/workflows/linux/Makefile
> +++ b/workflows/linux/Makefile
> @@ -14,7 +14,8 @@ TREE_CONFIG:=config-$(TREE_REF)-pure-iomap
> endif
>
> ifeq (y,$(CONFIG_BOOTLINUX_BUILDER))
> -KDEVOPS_HOSTS_TEMPLATE=builder.j2
> +# After refactoring, all workflows use hosts.j2 which includes workflow-specific templates
> +# KDEVOPS_HOSTS_TEMPLATE=builder.j2
> endif
>
> # Describes the Linux clone
> diff --git a/workflows/ltp/Makefile b/workflows/ltp/Makefile
> index 767465bc..b3c3319b 100644
> --- a/workflows/ltp/Makefile
> +++ b/workflows/ltp/Makefile
> @@ -1,5 +1,6 @@
> ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW))
> -export KDEVOPS_HOSTS_TEMPLATE := ltp.j2
> +# After refactoring, all workflows use hosts.j2 which includes workflow-specific templates
> +# export KDEVOPS_HOSTS_TEMPLATE := ltp.j2
> endif
>
> LTP_REPO:=$(subst ",,$(CONFIG_LTP_REPO))
> diff --git a/workflows/mmtests/Makefile b/workflows/mmtests/Makefile
> index b65d256b..186dc8cb 100644
> --- a/workflows/mmtests/Makefile
> +++ b/workflows/mmtests/Makefile
> @@ -1,7 +1,8 @@
> MMTESTS_ARGS :=
>
> ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW))
> -export KDEVOPS_HOSTS_TEMPLATE := mmtests.j2
> +# After refactoring, all workflows use hosts.j2 which includes workflow-specific templates
> +# export KDEVOPS_HOSTS_TEMPLATE := mmtests.j2
> endif
>
> mmtests:
> diff --git a/workflows/nfstest/Makefile b/workflows/nfstest/Makefile
> index bbfd3f64..bc880b6d 100644
> --- a/workflows/nfstest/Makefile
> +++ b/workflows/nfstest/Makefile
> @@ -1,5 +1,6 @@
> ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW))
> -export KDEVOPS_HOSTS_TEMPLATE := nfstest.j2
> +# After refactoring, all workflows use hosts.j2 which includes workflow-specific templates
> +# export KDEVOPS_HOSTS_TEMPLATE := nfstest.j2
> endif # CONFIG_WORKFLOWS_DEDICATED_WORKFLOW
>
> ifeq (y,$(CONFIG_NFSTEST_USE_KDEVOPS_NFSD))
> diff --git a/workflows/pynfs/Makefile b/workflows/pynfs/Makefile
> index 2f3ff97b..b7bb12bb 100644
> --- a/workflows/pynfs/Makefile
> +++ b/workflows/pynfs/Makefile
> @@ -1,5 +1,6 @@
> ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW))
> -export KDEVOPS_HOSTS_TEMPLATE := pynfs.j2
> +# After refactoring, all workflows use hosts.j2 which includes workflow-specific templates
> +# export KDEVOPS_HOSTS_TEMPLATE := pynfs.j2
> endif
>
> PYNFS_GIT:=$(subst ",,$(CONFIG_PYNFS_GIT))
> diff --git a/workflows/selftests/Makefile b/workflows/selftests/Makefile
> index d3b7044c..4ec691f3 100644
> --- a/workflows/selftests/Makefile
> +++ b/workflows/selftests/Makefile
> @@ -3,7 +3,8 @@
> SELFTESTS_ARGS :=
>
> ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW))
> -export KDEVOPS_HOSTS_TEMPLATE := selftests.j2
> +# After refactoring, all workflows use hosts.j2 which includes workflow-specific templates
> +# export KDEVOPS_HOSTS_TEMPLATE := selftests.j2
> endif
>
> SELFTESTS_DYNAMIC_RUNTIME_VARS := "kdevops_run_selftests": True
> diff --git a/workflows/sysbench/Makefile b/workflows/sysbench/Makefile
> index daf7bc75..5f484691 100644
> --- a/workflows/sysbench/Makefile
> +++ b/workflows/sysbench/Makefile
> @@ -1,7 +1,8 @@
> PHONY += sysbench sysbench-test sysbench-telemetry sysbench-help-menu
>
> ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW))
> -export KDEVOPS_HOSTS_TEMPLATE := sysbench.j2
> +# After refactoring, all workflows use hosts.j2 which includes workflow-specific templates
> +# export KDEVOPS_HOSTS_TEMPLATE := sysbench.j2
> endif
>
> TAGS_SYSBENCH_RUN := db_start
--
Chuck Lever
next prev parent reply other threads:[~2025-08-29 16:42 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-29 10:56 [PATCH 0/2] declared hosts support Luis Chamberlain
2025-08-29 10:56 ` [PATCH 1/2] gen_hosts: refactor monolithic hosts.j2 template into per-workflow templates Luis Chamberlain
2025-08-29 16:42 ` Chuck Lever [this message]
2025-08-29 10:56 ` [PATCH 2/2] declared_hosts: add support for pre-existing infrastructure Luis Chamberlain
-- strict thread matches above, loose matches on Subject: below --
2025-08-29 10:31 [PATCH 0/2] declared hosts support Luis Chamberlain
2025-08-29 10:31 ` [PATCH 1/2] gen_hosts: refactor monolithic hosts.j2 template into per-workflow templates Luis Chamberlain
2025-08-29 10:36 ` Luis Chamberlain
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ffbe68d3-7e05-4d49-b143-3ca5b5c17b25@kernel.org \
--to=cel@kernel.org \
--cc=da.gomez@kruces.com \
--cc=kdevops@lists.linux.dev \
--cc=mcgrof@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox