From f264fee00716fd677f45c9e4431117473d56048f Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Thu, 17 Oct 2024 15:39:33 -0400 Subject: [PATCH] qa/cephfs: override testing kernel with -k option Normally, the fs suite overrides the kernel branch whenever the kernel client is used, according to the matrix of configs. This prevents easily testing a new kernel with the -k option to teuthology-suite. So, using the base config passed to the script, detect if an alternate testing kernel is desired and use that instead. The scheduler still needs to do some work: $ teuthology-suite ... --verbose -k wip-pdonnell-i66704 --filter k-testing ... 2024-10-18 00:29:43,875.875 DEBUG:teuthology.suite.merge:base kernel {'branch': 'wip-pdonnell-i66704', 'kdb': 1, 'sha1': '745cacd8f31e50d7f3b6039bbd8c9a8dfc07bf03', 'flavor': 'default'} 2024-10-18 00:29:43,875.875 DEBUG:teuthology.suite.merge:overriding testing kernel with {'branch': 'wip-pdonnell-i66704', 'kdb': 1, 'sha1': '745cacd8f31e50d7f3b6039bbd8c9a8dfc07bf03', 'flavor': 'default'} vs. $ teuthology-suite ... --verbose --filter k-testing ... 2024-10-17 20:04:52,265.265 DEBUG:teuthology.suite.merge:base kernel {'branch': 'distro', 'kdb': 1, 'sha1': 'distro'} Which will only select jobs using the "testing" kernel. See-also: https://github.com/ceph/teuthology/pull/2008 Fixes: https://tracker.ceph.com/issues/68603 Signed-off-by: Patrick Donnelly --- .../overrides/distro/testing/k-testing.yaml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/qa/cephfs/mount/kclient/overrides/distro/testing/k-testing.yaml b/qa/cephfs/mount/kclient/overrides/distro/testing/k-testing.yaml index 2ee219125e7a7e..ecd345e50cb426 100644 --- a/qa/cephfs/mount/kclient/overrides/distro/testing/k-testing.yaml +++ b/qa/cephfs/mount/kclient/overrides/distro/testing/k-testing.yaml @@ -1,3 +1,19 @@ +teuthology: + premerge: | + log.debug("base kernel %s", base_config.kernel) + local kernel = base_config.kernel + if kernel.branch ~= "distro" then + log.debug("overriding testing kernel with %s", kernel) + yaml_fragment.kernel.client = kernel + end +# remove the default for non-client nodes: + postmerge: + - | + py_attrgetter(yaml.kernel).pop('branch', nil) + py_attrgetter(yaml.kernel).pop('flavor', nil) + py_attrgetter(yaml.kernel).pop('kdb', nil) + py_attrgetter(yaml.kernel).pop('sha1', nil) + kernel: client: branch: testing