From c6abc0c380984e3f3863814ff7af3cbd705bb3fc Mon Sep 17 00:00:00 2001 From: Shraddha Agrawal Date: Mon, 23 Feb 2026 12:51:57 +0530 Subject: [PATCH] qa/suites/crimson-rados: enable cephadm tests This commit enables cephadm tests in the crimson suites. To do the same, we make use of --osd-type flag to deploy crimson OSDs. Fixes: https://tracker.ceph.com/issues/71946 Signed-off-by: Shraddha Agrawal --- qa/clusters/crimson/crimson-fixed-2.yaml | 4 +-- .../{cephadm.yaml.disabled => cephadm.yaml} | 1 + qa/tasks/cephadm.py | 28 +++++++++++++++++++ 3 files changed, 31 insertions(+), 2 deletions(-) rename qa/suites/crimson-rados/basic/deploy/{cephadm.yaml.disabled => cephadm.yaml} (93%) diff --git a/qa/clusters/crimson/crimson-fixed-2.yaml b/qa/clusters/crimson/crimson-fixed-2.yaml index 58d6f193cd4..caaf391e087 100644 --- a/qa/clusters/crimson/crimson-fixed-2.yaml +++ b/qa/clusters/crimson/crimson-fixed-2.yaml @@ -1,6 +1,6 @@ roles: -- [mon.a, osd.0, osd.1, client.0, node-exporter.a] -- [mgr.x, osd.2, osd.3, client.1, prometheus.a, node-exporter.b] +- [mon.a, mgr.x, osd.0, osd.1, client.0, node-exporter.a] +- [osd.2, osd.3, client.1, prometheus.a, node-exporter.b] overrides: ceph: conf: diff --git a/qa/suites/crimson-rados/basic/deploy/cephadm.yaml.disabled b/qa/suites/crimson-rados/basic/deploy/cephadm.yaml similarity index 93% rename from qa/suites/crimson-rados/basic/deploy/cephadm.yaml.disabled rename to qa/suites/crimson-rados/basic/deploy/cephadm.yaml index 0c2062240ee..0cf3de8d4bb 100644 --- a/qa/suites/crimson-rados/basic/deploy/cephadm.yaml.disabled +++ b/qa/suites/crimson-rados/basic/deploy/cephadm.yaml @@ -2,6 +2,7 @@ verify_ceph_hash: false tasks: - cephadm: + osd_type: crimson conf: mgr: debug ms: 1 diff --git a/qa/tasks/cephadm.py b/qa/tasks/cephadm.py index 389a07ab19e..d4e1b78ab45 100644 --- a/qa/tasks/cephadm.py +++ b/qa/tasks/cephadm.py @@ -1112,6 +1112,12 @@ def ceph_osds(ctx, config): osd_method = config.get('osd_method') if osd_method: add_osd_args.append(osd_method) + osd_type = config.get('osd_type') + if osd_type: + add_osd_args.extend(['--osd-type', osd_type]) + objectstore = config.get('conf', {}).get('osd', {}).get('osd objectstore') + if objectstore: + add_osd_args.extend(['--objectstore', objectstore]) if use_skip_validation: try: _shell(ctx, cluster_name, remote, add_osd_args + ['--skip-validation']) @@ -1136,6 +1142,12 @@ def ceph_osds(ctx, config): osd_cmd = ['ceph', 'orch', 'apply', 'osd', '--all-available-devices'] if raw: osd_cmd.extend(['--method', 'raw']) + osd_type = config.get('osd_type') + if osd_type: + osd_cmd.extend(['--osd-type', osd_type]) + objectstore = config.get('conf', {}).get('osd', {}).get('osd objectstore') + if objectstore: + osd_cmd.extend(['--objectstore', objectstore]) _shell(ctx, cluster_name, remote, osd_cmd) # expect the number of scratch devs num_osds = sum(map(len, devs_by_remote.values())) @@ -1168,6 +1180,21 @@ def ceph_osds(ctx, config): pass +@contextlib.contextmanager +def check_enable_crimson(ctx, config): + """ + Enable crimson-related flags if crimson_compat is set. + """ + cluster_name = config['cluster'] + if config.get('crimson_compat', False): + log.info('Enabling crimson flags...') + remote = ctx.ceph[cluster_name].bootstrap_remote + _shell(ctx, cluster_name, remote, [ + 'ceph', 'osd', 'set-allow-crimson', '--yes-i-really-mean-it' + ]) + yield + + @contextlib.contextmanager def ceph_mdss(ctx, config): """ @@ -2035,6 +2062,7 @@ def task(ctx, config): lambda: module_setup(ctx=ctx, config=config), lambda: ceph_mgrs(ctx=ctx, config=config), lambda: conf_setup(ctx=ctx, config=config), + lambda: check_enable_crimson(ctx=ctx, config=config), lambda: ceph_osds(ctx=ctx, config=config), lambda: ceph_mdss(ctx=ctx, config=config), lambda: cephfs_setup(ctx=ctx, config=config), -- 2.47.3