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 9199B3093DB for ; Fri, 29 Aug 2025 10:31:06 +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=1756463468; cv=none; b=cUonk+tq+OWVp/VaWIrHclNv3mF1ewp3LH1ZExDpvgL407gmf9vqlx7Nm1QwZcMLHL0Cw3DaMasX+OofDAFD4eSZOtdiDQZgMs93GZ81sj6gaNexCGeto5RQfFQvEKxjQ4Fqb/HiNXL1lkS9A0j/saywEeEkDtEgj1zYfy+gwh4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756463468; c=relaxed/simple; bh=6fNVKIADsXXGImMOWyykcFfWJjqkSLZBAd8id0P6qxw=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Gg0vahbQ0vhDNzuqiiUXU7ieFqMY7pDWF7PEol7CC4PCrAR7PYBeoMuq0cSGT5lHLai6g6U11xK5p2ILj/BDMoXXFD3wCGkESZLJb+ItC361eZoNUSdikTBevsaYBYyN7Avq3RWaUohxE8mr8Xi24w6huiH25ip5GiwLygTU5I0= 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=iV6/JHkJ; 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="iV6/JHkJ" 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:Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-Type: Content-ID:Content-Description:In-Reply-To:References; bh=YYwD61d7ml3HmP1rxGgUQOHaER1/y4gKJMpZtMGkXd0=; b=iV6/JHkJTavXEKSoJsBOXt/8BW jgH4PprVapb/MKhOnRyu0GVAaVeKF8DGQyTWOcMrGT4IX6kFg0RmdEXYubYRlYYvOS79AlKmjyQMH kRE3HcCxcdqetUrBeoqahyJgDCp1Bx50DpZI6qJtwqpFES3GRdHW289C0Jv8QAk74eAsw3GIDVvOf inO2HlLt8EX+2EbLyygceGXjXvvwReEW0mcy7hcbPAz2kdqqH5QyemABIo495r5LAO5dwlrOrV0YC hr5btbAdQWcvovxvA0GBlWnYfFtTsjL7gd/S93fpMg0it56ff+WN2Hl5vhAXxrYS8FwIgQT+geKlF Rtd3Nzkg==; Received: from mcgrof by bombadil.infradead.org with local (Exim 4.98.2 #2 (Red Hat Linux)) id 1urwNu-00000005KRl-0QID; Fri, 29 Aug 2025 10:31:06 +0000 From: Luis Chamberlain To: Chuck Lever , Daniel Gomez , kdevops@lists.linux.dev Cc: Luis Chamberlain Subject: [PATCH 0/2] declared hosts support Date: Fri, 29 Aug 2025 03:31:00 -0700 Message-ID: <20250829103102.1270204-1-mcgrof@kernel.org> X-Mailer: git-send-email 2.49.0 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 It should be easy for us to add bare metal support because well, the biggest pain is bring up. If bringup and ssh is already configured, then all we have to do is just skip a bunch of things. So the question to ask, is how do we generate the hosts file? The easiest interface I could think of is to allow you to specify it at make menuconfig time or defconfig time with a DECLARE_HOSTS= specifier with either a space or comma separated lists of hosts. I tested this with a new workflow I am testing, minio WARP testing, but I also tested this simply with a random host I can ssh to with just: make defconfig-xfs_reflink_4k DECLARE_HOSTS=foo ; make AV=2 make uname And that works. For my other workflow I am testing I got full test restults and mkfs'd a drive. And so each workflow needs a bit of love for further DECLARE_HOSTS support. Things like the data partition, and so on. I suspect we can just specify some of these in the command line as CLI variables. But this goes with just basic raw support. Maybe we only enable workflows for KDEVOPS_USE_DECLARED_HOSTS if we declare the workflow as supporting it (maybe select SUPPORTS_DECLARED_HOSTS)? Luis Chamberlain (2): gen_hosts: refactor monolithic hosts.j2 template into per-workflow templates declared_hosts: add support for pre-existing infrastructure Makefile | 7 + kconfigs/Kconfig.bringup | 7 + kconfigs/Kconfig.declared_hosts | 65 +++++ playbooks/roles/devconfig/tasks/main.yml | 60 ++++ playbooks/roles/gen_hosts/tasks/main.yml | 40 ++- 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 + .../templates/workflows/declared-hosts.j2 | 219 +++++++++++++++ .../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 ++++ playbooks/roles/gen_nodes/tasks/main.yml | 5 + 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 +- 35 files changed, 1143 insertions(+), 245 deletions(-) create mode 100644 kconfigs/Kconfig.declared_hosts 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/declared-hosts.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 -- 2.50.1