From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 208152DF68 for ; Thu, 4 Sep 2025 00:15:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.137.202.133 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756944926; cv=none; b=qaeWnOqwDdY5mSsLJ3Z3OLsAVcuSpnT26cmYLnwyMPSyJ+CpjSuUZxlQnlpawf+Wg1UKPG7jbFiGM0fcoByK+mTfZf9A3s4aLqNHWqVORvlpDdd7J5lUwmNI/D23f+A8KXO0KE9NLT/3LuEnz4d1V++MIUcgtgA+6pFuGaobBY0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756944926; c=relaxed/simple; bh=T5qZ9c/jdCyBZQHdfUJnM7+Y92O3jpLZbGzHphQqzjo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NLqQBSnYu8l7yBau9sf3BO8QFO56Ax+T1l9z+hRT2rCLXwkZdEcb1+goRjDYM0N6maZjnafyDbtChITT8g2JatZ4l1udAtdlpVF/6WhE06DH2q09DvPQeCHblrOMuJl3g2H344BWMLDyNCf3Lw4XrQ0jUtMfyjQaW/jExpPEew0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=kernel.org; spf=none smtp.mailfrom=infradead.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b=Wl4jYUHO; arc=none smtp.client-ip=198.137.202.133 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=kernel.org Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=infradead.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="Wl4jYUHO" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Sender:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description; bh=uAGcJF6WfMBljHBba+NEtmM46TS5NL5NUfFOabemnrE=; b=Wl4jYUHOnoueBNHwBqi0oDYOM+ aARQ80dyVBT88dgZU1lvAb351rlZO+1ajw8agCgzsWdwzGloQEzf/z5m/tuqd+D/N5Ej3/xs2B29v f5u3PGjAv3jupGh84rFijjqIDSm4FN/79fXOJGbvI85J9DN8OuMm9/Z2CZ974tNTWxlNFrQRXoLhP DjuFXd2QJqKeiMcNat9UE/IXoLf0PEB3ofNKvmv9TgR+tckadxPbak08vWLvChDRRfNJ6BVs9Pdhw 0DnD4vle9SUJpBtTsG9sAcO7Bv4UCQS13arGINxRwBNzYVIfUj011qwo9TUMNm/emuPKJsjvqrwci lim9HoaQ==; Received: from mcgrof by bombadil.infradead.org with local (Exim 4.98.2 #2 (Red Hat Linux)) id 1utxdK-00000007xkZ-0yXG; Thu, 04 Sep 2025 00:15:22 +0000 From: Luis Chamberlain To: Chuck Lever , Daniel Gomez , kdevops@lists.linux.dev Cc: hui81.qi@samsung.com, kundan.kumar@samsung.com, Luis Chamberlain Subject: [PATCH v4 1/3] gen_hosts: use kdevops_workflow_name directly for template selection Date: Wed, 3 Sep 2025 17:15:17 -0700 Message-ID: <20250904001521.1897970-2-mcgrof@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250904001521.1897970-1-mcgrof@kernel.org> References: <20250904001521.1897970-1-mcgrof@kernel.org> Precedence: bulk X-Mailing-List: kdevops@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: Luis Chamberlain The hosts.j2 template had become unwieldy with 40+ lines of conditional logic to select which workflow template to include. Since kdevops already defines KDEVOPS_WORKFLOW_NAME in Kconfig that's always set (either to the workflow name or "mix" for non-dedicated), we can eliminate ALL conditional logic. The entire hosts.j2 is now just: {% include 'workflows/' + kdevops_workflow_name + '.j2' %} This massive simplification: - Reduces hosts.j2 from 40+ lines to just 1 line of logic - Removes ALL conditional template selection from gen_hosts playbook - Eliminates ALL workflow-specific template overrides from Makefiles - Makes adding new workflows trivial - just define KDEVOPS_WORKFLOW_NAME Additional changes: - Split monolithic hosts.j2 into per-workflow templates under workflows/ - Rename default.j2 to mix.j2 to match non-dedicated workflow name - Add missing 'cxl' to KDEVOPS_WORKFLOW_NAME in main Kconfig - Add KDEVOPS_WORKFLOW_NAME to reboot-limit demo workflow Generated-by: Claude AI Signed-off-by: Luis Chamberlain --- kconfigs/workflows/Kconfig | 9 + playbooks/roles/gen_hosts/tasks/main.yml | 293 ++---------------- playbooks/roles/gen_hosts/templates/hosts.j2 | 240 +------------- .../roles/gen_hosts/templates/workflows/ai.j2 | 99 ++++++ .../gen_hosts/templates/workflows/blktests.j2 | 58 ++++ .../gen_hosts/templates/workflows/cxl.j2 | 7 + .../templates/workflows/fio-tests.j2 | 38 +++ .../gen_hosts/templates/workflows/fstests.j2 | 72 +++++ .../gen_hosts/templates/workflows/gitr.j2 | 41 +++ .../gen_hosts/templates/workflows/linux.j2 | 110 +++++++ .../gen_hosts/templates/workflows/ltp.j2 | 41 +++ .../gen_hosts/templates/workflows/mix.j2 | 62 ++++ .../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 | 2 - workflows/demos/reboot-limit/Kconfig | 5 + workflows/fio-tests/Makefile | 3 - workflows/fstests/Makefile | 3 - workflows/gitr/Makefile | 3 - workflows/linux/Makefile | 1 - workflows/ltp/Makefile | 3 - workflows/mmtests/Makefile | 3 - workflows/nfstest/Makefile | 3 - workflows/pynfs/Makefile | 3 - workflows/selftests/Makefile | 3 - workflows/sysbench/Makefile | 3 - 32 files changed, 841 insertions(+), 534 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/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/linux.j2 create mode 100644 playbooks/roles/gen_hosts/templates/workflows/ltp.j2 create mode 100644 playbooks/roles/gen_hosts/templates/workflows/mix.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/kconfigs/workflows/Kconfig b/kconfigs/workflows/Kconfig index 70898a1a..de279b48 100644 --- a/kconfigs/workflows/Kconfig +++ b/kconfigs/workflows/Kconfig @@ -228,6 +228,7 @@ config KDEVOPS_WORKFLOW_NAME output yaml default "fstests" if KDEVOPS_WORKFLOW_DEDICATE_FSTESTS default "blktests" if KDEVOPS_WORKFLOW_DEDICATE_BLKTESTS + default "cxl" if KDEVOPS_WORKFLOW_DEDICATE_CXL default "pynfs" if KDEVOPS_WORKFLOW_DEDICATE_PYNFS default "selftests" if KDEVOPS_WORKFLOW_DEDICATE_SELFTESTS default "gitr" if KDEVOPS_WORKFLOW_DEDICATE_GITR @@ -514,4 +515,12 @@ endif # WORKFLOWS_LINUX_TESTS endif # WORKFLOWS_TESTS +# For Linux custom workflow without tests, still need workflow name for templating +if WORKFLOW_LINUX_CUSTOM && !WORKFLOWS_TESTS +config KDEVOPS_WORKFLOW_NAME + string + output yaml + default "linux" +endif + endif # WORKFLOWS diff --git a/playbooks/roles/gen_hosts/tasks/main.yml b/playbooks/roles/gen_hosts/tasks/main.yml index fb63629a..518064ed 100644 --- a/playbooks/roles/gen_hosts/tasks/main.yml +++ b/playbooks/roles/gen_hosts/tasks/main.yml @@ -56,180 +56,22 @@ when: - is_fstests|bool -- name: Generate the Ansible hosts file for a Linux kernel build - tags: ["hosts"] - ansible.builtin.template: - src: "{{ kdevops_hosts_template }}" - dest: "{{ ansible_cfg_inventory }}" - force: true - trim_blocks: true - lstrip_blocks: true - when: - - bootlinux_builder - - ansible_hosts_template.stat.exists - -- name: Generate the Ansible inventory file - tags: ["hosts"] - ansible.builtin.template: - src: "{{ kdevops_hosts_template }}" - dest: "{{ ansible_cfg_inventory }}" - force: true - trim_blocks: true - lstrip_blocks: true - when: - - not kdevops_workflows_dedicated_workflow - - ansible_hosts_template.stat.exists - - not kdevops_enable_nixos|default(false)|bool - -- name: Generate the Ansible inventory file for NixOS - tags: ['hosts'] - ansible.builtin.template: - src: "{{ kdevops_hosts_template }}" - dest: "{{ ansible_cfg_inventory }}" - force: true - trim_blocks: True - lstrip_blocks: True - when: - - not kdevops_workflows_dedicated_workflow - - ansible_hosts_template.stat.exists - - kdevops_enable_nixos|default(false)|bool - -- name: Update Ansible inventory access modification time so make sees it updated - ansible.builtin.file: - path: "{{ ansible_cfg_inventory }}" - state: touch - mode: "0755" - -- name: Generate the Ansible inventory file for dedicated cxl work - tags: ["hosts"] - ansible.builtin.template: - src: "{{ kdevops_hosts_template }}" - dest: "{{ anisble_cfg_inventory }}" - force: true - trim_blocks: true - lstrip_blocks: true - when: - - kdevops_workflows_dedicated_workflow - - kdevops_workflow_enable_cxl - - ansible_hosts_template.stat.exists - -- name: Generate the Ansible inventory file for dedicated pynfs work - tags: ["hosts"] - ansible.builtin.template: - src: "{{ kdevops_hosts_template }}" - dest: "{{ ansible_cfg_inventory }}" - force: true - trim_blocks: true - lstrip_blocks: true - when: - - kdevops_workflows_dedicated_workflow - - kdevops_workflow_enable_pynfs - - ansible_hosts_template.stat.exists - -- name: Generate the Ansible inventory file for dedicated gitr workflow - tags: ["hosts"] - vars: - gitr_enabled_hosts: "{{ gitr_enabled_test_groups | ansible.builtin.split }}" - ansible.builtin.template: - src: "{{ kdevops_hosts_template }}" - dest: "{{ ansible_cfg_inventory }}" - force: true - trim_blocks: true - lstrip_blocks: true - when: - - kdevops_workflows_dedicated_workflow - - kdevops_workflow_enable_gitr - - ansible_hosts_template.stat.exists - -- name: Generate an Ansible inventory file for a dedicated ltp workflow +- name: Infer enabled fstests test section types tags: ["hosts"] - vars: - ltp_enabled_hosts: "{{ ltp_enabled_test_groups | ansible.builtin.split }}" - ansible.builtin.template: - src: "{{ kdevops_hosts_template }}" - dest: "{{ ansible_cfg_inventory }}" - force: true - trim_blocks: true - lstrip_blocks: true - when: - - kdevops_workflows_dedicated_workflow - - kdevops_workflow_enable_ltp - - ansible_hosts_template.stat.exists - -- name: Generate the Ansible inventory file for dedicated nfstest workflow - tags: ["hosts"] - vars: - nfstest_enabled_hosts: "{{ nfstest_enabled_test_groups | ansible.builtin.split }}" - ansible.builtin.template: - src: "{{ kdevops_hosts_template }}" - dest: "{{ ansible_cfg_inventory }}" - force: true - trim_blocks: true - lstrip_blocks: true - when: - - kdevops_workflows_dedicated_workflow - - kdevops_workflow_enable_nfstest - - ansible_hosts_template.stat.exists - -- name: Set empty enabled test types list for fstests - tags: ["hosts"] - ansible.builtin.set_fact: - fstests_enabled_test_types: [] - when: - - is_fstests - - ansible_hosts_template.stat.exists - -- name: Check which fstests test types are enabled - register: fstests_enabled_test_types_reg vars: fs: "{{ fstests_fstyp | upper }}" - config_val: "{{ 'CONFIG_FSTESTS_' + fs + '_SECTION_' }}" - fs_config_data: "{{ lookup('file', fs_config_path) }}" - sections_without_default: "{{ fs_config_data | regex_replace('\\[default\\]', multiline=True) }}" - sections_without_default_and_nfsd: "{{ sections_without_default | regex_replace('\\[nfsd\\]', multiline=True) }}" - sections_lines: "{{ sections_without_default_and_nfsd | regex_findall('^\\[(.*)', multiline=True) }}" - clean_section_lines: "{{ sections_lines | regex_replace('\\[') | regex_replace('\\]') }}" - clean_section_lines_without_fsname: "{{ clean_section_lines | regex_replace(fstests_fstyp + '_') }}" - config_sections_targets: "{{ clean_section_lines_without_fsname | replace(\"'\", '') | split(', ') }}" - ansible.builtin.lineinfile: - path: "{{ topdir_path }}/.config" - regexp: "^({{ config_val + item.upper() }})=y" - line: "" - check_mode: true - with_items: "{{ config_sections_targets }}" - loop_control: - label: "Checking for {{ config_val + item.upper() }}" - when: - - is_fstests - - ansible_hosts_template.stat.exists - -- name: Now expand the list of enabled fstests for valid configuration sections - tags: ["hosts"] + config_prefix: "{{ 'CONFIG_FSTESTS_' + fs + '_SECTION_' }}" ansible.builtin.set_fact: - fstests_enabled_test_types: "{{ fstests_enabled_test_types + [fstests_fstyp + '-' + item.item | regex_replace('_', '-')] }}" - with_items: "{{ fstests_enabled_test_types_reg.results }}" - loop_control: - label: "Checking for {{ item.item }} " - when: - - is_fstests - - ansible_hosts_template.stat.exists - - item.changed - -- name: Generate the Ansible inventory file for a dedicated fstests setup - tags: ["hosts"] - vars: - fs_config_data: "{{ lookup('file', fs_config_path) }}" - sections_without_default: "{{ fs_config_data | regex_replace('\\[default\\]', multiline=True) }}" - sections_lines: "{{ sections_without_default | regex_findall('^\\[(.*)', multiline=True) }}" - clean_section_lines: "{{ sections_lines | regex_replace('\\[') | regex_replace('\\]') }}" - sections_replace_underscore: "{{ clean_section_lines | replace('_', '-') }}" - sections: "{{ sections_replace_underscore | replace(\"'\", '') | split(', ') }}" - ansible.builtin.template: - src: "{{ kdevops_hosts_template }}" - dest: "{{ ansible_cfg_inventory }}" - force: true - trim_blocks: true - lstrip_blocks: true + fstests_enabled_test_types: >- + {{ + lookup('file', topdir_path + '/.config') + | regex_findall('^' + config_prefix + '(.*)=y$', multiline=True) + | reject('match', '.*_ENABLED$') + | map('lower') + | map('regex_replace', '_', '-') + | map('regex_replace', '^', fstests_fstyp + '-') + | list + }} when: - is_fstests - ansible_hosts_template.stat.exists @@ -257,19 +99,6 @@ - kdevops_workflow_enable_blktests - ansible_hosts_template.stat.exists -- name: Generate the Ansible inventory file for a dedicated blktests setup - tags: ["hosts"] - ansible.builtin.template: - src: "{{ kdevops_hosts_template }}" - dest: "{{ ansible_cfg_inventory }}" - force: true - trim_blocks: true - lstrip_blocks: true - when: - - kdevops_workflows_dedicated_workflow - - kdevops_workflow_enable_blktests - - ansible_hosts_template.stat.exists - - name: Infer enabled selftests test section types ansible.builtin.set_fact: selftests_enabled_test_types: >- @@ -284,19 +113,6 @@ - kdevops_workflow_enable_selftests - ansible_hosts_template.stat.exists -- name: Generate the Ansible inventory file for a dedicated selftests setup - tags: ["hosts"] - ansible.builtin.template: - src: "{{ kdevops_hosts_template }}" - dest: "{{ ansible_cfg_inventory }}" - force: true - trim_blocks: true - lstrip_blocks: true - when: - - kdevops_workflows_dedicated_workflow - - kdevops_workflow_enable_selftests - - ansible_hosts_template.stat.exists - - name: Collect dynamically supported filesystems vars: supported_filesystems_variables: "{{ hostvars[inventory_hostname] | dict2items | selectattr('key', 'search', '^sysbench_supported_filesystem_') }}" @@ -326,36 +142,6 @@ - kdevops_workflows_dedicated_workflow - kdevops_workflow_enable_sysbench -- name: Generate the Ansible inventory file for a dedicated sysbench setup - tags: ["hosts"] - ansible.builtin.template: - src: "{{ kdevops_hosts_template }}" - dest: "{{ ansible_cfg_inventory }}" - force: true - trim_blocks: true - lstrip_blocks: true - when: - - kdevops_workflows_dedicated_workflow - - kdevops_workflow_enable_sysbench - - ansible_hosts_template.stat.exists - - -- name: Generate the Ansible hosts file for a dedicated fio-tests setup - tags: ["hosts"] - ansible.builtin.template: - src: "{{ kdevops_hosts_template }}" - dest: "{{ ansible_cfg_inventory }}" - force: true - trim_blocks: true - lstrip_blocks: true - mode: "0644" - when: - - kdevops_workflows_dedicated_workflow - - kdevops_workflow_enable_fio_tests - - ansible_hosts_template.stat.exists - - not kdevops_enable_nixos|default(false)|bool - - - name: Infer enabled mmtests test types ansible.builtin.set_fact: mmtests_enabled_test_types: >- @@ -370,32 +156,6 @@ - kdevops_workflow_enable_mmtests - ansible_hosts_template.stat.exists -- name: Generate the Ansible hosts file for a dedicated mmtests setup - tags: ["hosts"] - ansible.builtin.template: - src: "{{ kdevops_hosts_template }}" - dest: "{{ ansible_cfg_inventory }}" - force: true - trim_blocks: true - lstrip_blocks: true - when: - - kdevops_workflows_dedicated_workflow - - kdevops_workflow_enable_mmtests - - ansible_hosts_template.stat.exists - -- name: Generate the Ansible hosts file for a dedicated reboot-limit setup - tags: ["hosts"] - ansible.builtin.template: - src: "{{ kdevops_hosts_template }}" - dest: "{{ ansible_cfg_inventory }}" - force: true - trim_blocks: true - lstrip_blocks: true - when: - - kdevops_workflows_dedicated_workflow - - workflows_reboot_limit - - ansible_hosts_template.stat.exists - - name: Load AI nodes configuration for multi-filesystem setup include_vars: file: "{{ topdir_path }}/{{ kdevops_nodes }}" @@ -415,20 +175,35 @@ - ai_enable_multifs_testing|default(false)|bool - guestfs_nodes is defined -- name: Generate the Ansible hosts file for a dedicated AI setup - tags: ['hosts'] +- name: Generate the Ansible inventory file + tags: ["hosts"] + vars: + # Variables for specific workflows + gitr_enabled_hosts: "{{ gitr_enabled_test_groups | ansible.builtin.split if kdevops_workflow_enable_gitr else [] }}" + ltp_enabled_hosts: "{{ ltp_enabled_test_groups | ansible.builtin.split if kdevops_workflow_enable_ltp else [] }}" + nfstest_enabled_hosts: "{{ nfstest_enabled_test_groups | ansible.builtin.split if kdevops_workflow_enable_nfstest else [] }}" + # Variables for fstests + fs_config_data: "{{ lookup('file', fs_config_path) if is_fstests else '' }}" + sections_without_default: "{{ fs_config_data | regex_replace('\\[default\\]', multiline=True) if is_fstests else '' }}" + sections_lines: "{{ sections_without_default | regex_findall('^\\[(.*)', multiline=True) if is_fstests else [] }}" + clean_section_lines: "{{ sections_lines | regex_replace('\\[') | regex_replace('\\]') if is_fstests else [] }}" + sections_replace_underscore: "{{ clean_section_lines | replace('_', '-') if is_fstests else [] }}" + sections: "{{ sections_replace_underscore | replace(\"'\", '') | split(', ') if is_fstests else [] }}" ansible.builtin.template: src: "{{ kdevops_hosts_template }}" dest: "{{ ansible_cfg_inventory }}" force: true - trim_blocks: True - lstrip_blocks: True - mode: '0644' + trim_blocks: true + lstrip_blocks: true when: - - kdevops_workflows_dedicated_workflow - - kdevops_workflow_enable_ai - ansible_hosts_template.stat.exists +- name: Update Ansible inventory access modification time so make sees it updated + ansible.builtin.file: + path: "{{ ansible_cfg_inventory }}" + state: touch + mode: "0755" + - name: Verify if final host file exists ansible.builtin.stat: path: "{{ ansible_cfg_inventory }}" diff --git a/playbooks/roles/gen_hosts/templates/hosts.j2 b/playbooks/roles/gen_hosts/templates/hosts.j2 index 0e896481..be0378db 100644 --- a/playbooks/roles/gen_hosts/templates/hosts.j2 +++ b/playbooks/roles/gen_hosts/templates/hosts.j2 @@ -5,242 +5,4 @@ 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 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 }}" -{% 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 %} -{% 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 %} +{% include 'workflows/' + kdevops_workflow_name + '.j2' %} 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/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..362ce955 --- /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 fstests_enabled_test_types %} +[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/linux.j2 b/playbooks/roles/gen_hosts/templates/workflows/linux.j2 new file mode 100644 index 00000000..5d9ebb67 --- /dev/null +++ b/playbooks/roles/gen_hosts/templates/workflows/linux.j2 @@ -0,0 +1,110 @@ +{# Template for Linux custom kernel workflow #} +[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 %} +{% if kdevops_smbd_enable|default(false) %} +{{ kdevops_host_prefix }}-smbd +{% endif %} +{% if kdevops_krb5kdc_enable|default(false) %} +{{ kdevops_host_prefix }}-kdc +{% 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 }}" + +{% if kdevops_baseline_and_dev %} +[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 %} + +[dev:vars] +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" +{% endif %} + +[linux] +{{ kdevops_host_prefix }} +{% if kdevops_baseline_and_dev == True %} +{{ kdevops_host_prefix }}-dev +{% endif %} + +[linux: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 %} + +{% if kdevops_smbd_enable|default(false) %} +[smbd] +{{ kdevops_host_prefix }}-smbd + +[smbd:vars] +ansible_python_interpreter = "{{ kdevops_python_interpreter }}" +{% endif %} + +{% if kdevops_krb5kdc_enable|default(false) %} +[kdc] +{{ kdevops_host_prefix }}-kdc + +[kdc: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 %} +{% if kdevops_smbd_enable|default(false) %} +{{ kdevops_host_prefix }}-smbd +{% endif %} +{% if kdevops_krb5kdc_enable|default(false) %} +{{ kdevops_host_prefix }}-kdc +{% endif %} + +[service: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/mix.j2 b/playbooks/roles/gen_hosts/templates/workflows/mix.j2 new file mode 100644 index 00000000..86619309 --- /dev/null +++ b/playbooks/roles/gen_hosts/templates/workflows/mix.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/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..7e9b8af2 100644 --- a/workflows/ai/Makefile +++ b/workflows/ai/Makefile @@ -3,9 +3,6 @@ PHONY += ai-setup ai-uninstall ai-destroy ai-help-menu 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 -endif export AI_DATA_TARGET := $(subst ",,$(CONFIG_AI_BENCHMARK_RESULTS_DIR)) export AI_ARGS := diff --git a/workflows/blktests/Makefile b/workflows/blktests/Makefile index 11cd9a65..12c0d933 100644 --- a/workflows/blktests/Makefile +++ b/workflows/blktests/Makefile @@ -11,9 +11,6 @@ ID=$(shell id -u) BLKTESTS_ARGS := -ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW)) -export KDEVOPS_HOSTS_TEMPLATE := blktests.j2 -endif BLKTESTS_GIT:=$(subst ",,$(CONFIG_BLKTESTS_GIT)) BLKTESTS_DATA:=$(subst ",,$(CONFIG_BLKTESTS_DATA)) diff --git a/workflows/cxl/Makefile b/workflows/cxl/Makefile index bb130057..6d7894a9 100644 --- a/workflows/cxl/Makefile +++ b/workflows/cxl/Makefile @@ -1,7 +1,5 @@ # SPDX-License-Identifier: copyleft-next-0.3.1 -export KDEVOPS_HOSTS_TEMPLATE := cxl.j2 - CXL_ARGS := CXL_ARGS += ndctl_git='$(subst ",,$(CONFIG_NDCTL_GIT))' CXL_ARGS += ndctl_data=\"$(subst ",,$(CONFIG_NDCTL_DATA))\" diff --git a/workflows/demos/reboot-limit/Kconfig b/workflows/demos/reboot-limit/Kconfig index ecafe4bd..4fdcba05 100644 --- a/workflows/demos/reboot-limit/Kconfig +++ b/workflows/demos/reboot-limit/Kconfig @@ -8,6 +8,11 @@ config WORKFLOWS_REBOOT_LIMIT you really have no idea clearly if you can reboot without issues forever and may end up with a false positive on an unidentified issue. +config KDEVOPS_WORKFLOW_NAME + string + output yaml + default "reboot-limit" if WORKFLOWS_REBOOT_LIMIT + if WORKFLOWS_REBOOT_LIMIT menu "Configure and reboot-limit" diff --git a/workflows/fio-tests/Makefile b/workflows/fio-tests/Makefile index 5eb2ccbd..218cfbfc 100644 --- a/workflows/fio-tests/Makefile +++ b/workflows/fio-tests/Makefile @@ -1,6 +1,3 @@ -ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW)) -export KDEVOPS_HOSTS_TEMPLATE := fio-tests.j2 -endif fio-tests: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ diff --git a/workflows/fstests/Makefile b/workflows/fstests/Makefile index d2e5c636..ef6347ac 100644 --- a/workflows/fstests/Makefile +++ b/workflows/fstests/Makefile @@ -8,9 +8,6 @@ FSTESTS_BASELINE_EXTRA := export FSTYP:=$(subst ",,$(CONFIG_FSTESTS_FSTYP)) -ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW)) -export KDEVOPS_HOSTS_TEMPLATE := fstests.j2 -endif FSTESTS_ARGS += fstests_fstyp='$(FSTYP)' FS_CONFIG='$(FSTYP)/$(FSTYP).config' diff --git a/workflows/gitr/Makefile b/workflows/gitr/Makefile index c685395a..b1b7fe37 100644 --- a/workflows/gitr/Makefile +++ b/workflows/gitr/Makefile @@ -1,6 +1,3 @@ -ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW)) -export KDEVOPS_HOSTS_TEMPLATE := gitr.j2 -endif GITR_MNT:=$(subst ",,$(CONFIG_GITR_MNT)) GITR_ARGS += gitr_mnt=$(GITR_MNT) diff --git a/workflows/linux/Makefile b/workflows/linux/Makefile index 30b123f9..1ab9d55d 100644 --- a/workflows/linux/Makefile +++ b/workflows/linux/Makefile @@ -14,7 +14,6 @@ TREE_CONFIG:=config-$(TREE_REF)-pure-iomap endif ifeq (y,$(CONFIG_BOOTLINUX_BUILDER)) -KDEVOPS_HOSTS_TEMPLATE=builder.j2 endif # Describes the Linux clone diff --git a/workflows/ltp/Makefile b/workflows/ltp/Makefile index 767465bc..592c4f2b 100644 --- a/workflows/ltp/Makefile +++ b/workflows/ltp/Makefile @@ -1,6 +1,3 @@ -ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW)) -export KDEVOPS_HOSTS_TEMPLATE := ltp.j2 -endif LTP_REPO:=$(subst ",,$(CONFIG_LTP_REPO)) LTP_ARGS += ltp_repo=$(LTP_REPO) diff --git a/workflows/mmtests/Makefile b/workflows/mmtests/Makefile index 9c010b95..69db9505 100644 --- a/workflows/mmtests/Makefile +++ b/workflows/mmtests/Makefile @@ -1,8 +1,5 @@ MMTESTS_ARGS := -ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW)) -export KDEVOPS_HOSTS_TEMPLATE := mmtests.j2 -endif mmtests: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ diff --git a/workflows/nfstest/Makefile b/workflows/nfstest/Makefile index bbfd3f64..fca7a51a 100644 --- a/workflows/nfstest/Makefile +++ b/workflows/nfstest/Makefile @@ -1,6 +1,3 @@ -ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW)) -export KDEVOPS_HOSTS_TEMPLATE := nfstest.j2 -endif # CONFIG_WORKFLOWS_DEDICATED_WORKFLOW ifeq (y,$(CONFIG_NFSTEST_USE_KDEVOPS_NFSD)) NFSTEST_ARGS += nfstest_nfs_server_host='$(subst ",,$(CONFIG_KDEVOPS_HOSTS_PREFIX))-nfsd' diff --git a/workflows/pynfs/Makefile b/workflows/pynfs/Makefile index 2f3ff97b..e0da0cf5 100644 --- a/workflows/pynfs/Makefile +++ b/workflows/pynfs/Makefile @@ -1,6 +1,3 @@ -ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW)) -export KDEVOPS_HOSTS_TEMPLATE := pynfs.j2 -endif PYNFS_GIT:=$(subst ",,$(CONFIG_PYNFS_GIT)) PYNFS_ARGS += pynfs_git=$(PYNFS_GIT) diff --git a/workflows/selftests/Makefile b/workflows/selftests/Makefile index d3b7044c..b040647e 100644 --- a/workflows/selftests/Makefile +++ b/workflows/selftests/Makefile @@ -2,9 +2,6 @@ SELFTESTS_ARGS := -ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW)) -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..66e594d3 100644 --- a/workflows/sysbench/Makefile +++ b/workflows/sysbench/Makefile @@ -1,8 +1,5 @@ PHONY += sysbench sysbench-test sysbench-telemetry sysbench-help-menu -ifeq (y,$(CONFIG_WORKFLOWS_DEDICATED_WORKFLOW)) -export KDEVOPS_HOSTS_TEMPLATE := sysbench.j2 -endif TAGS_SYSBENCH_RUN := db_start TAGS_SYSBENCH_RUN += db_test_connection -- 2.50.1