crimson(cephadm): port cephadm test suite to crimson-rados#66217
crimson(cephadm): port cephadm test suite to crimson-rados#66217
Conversation
Matan-B
left a comment
There was a problem hiding this comment.
Suite structure looks good! Can we avoid the cephadm.py change?
qa/tasks/cephadm.py
Outdated
| flavor = config.get('flavor', 'default') | ||
| if flavor in ("crimson-debug", "crimson-release"): | ||
| log.info('Set crimson_cpu_num ....') | ||
| _shell(ctx, cluster_name, bootstrap_remote, [ | ||
| 'ceph', 'config', 'set', 'osd', 'crimson_cpu_num', '4']) | ||
| log.info('Set enable_experimental feature to crimson ...') | ||
| _shell(ctx, cluster_name, bootstrap_remote, [ | ||
| 'ceph', 'config', 'set', 'global', | ||
| 'enable_experimental_unrecoverable_data_corrupting_features', 'crimson']) | ||
| log.info('Set set-allow-crimson --yes-i-really-mean-it ...') | ||
| _shell(ctx, cluster_name, bootstrap_remote, [ | ||
| 'ceph', 'osd', 'set-allow-crimson', '--yes-i-really-mean-it']) | ||
|
|
There was a problem hiding this comment.
These should already be set by crimson_qa_overrides:
conf:
global:
enable experimental unrecoverable data corrupting features: crimson
mon:
osd pool default crimson: true
Can we cleanup this bit?
e521d25 to
7270800
Compare
|
Note: when testing this PR please |
qa/tasks/cephadm.py
Outdated
| if flavor in ("crimson-debug", "crimson-release"): | ||
| log.info('Set crimson_cpu_num ....') | ||
| _shell(ctx, cluster_name, bootstrap_remote, [ | ||
| 'ceph', 'config', 'set', 'osd', 'crimson_cpu_num', '4']) |
There was a problem hiding this comment.
These should be set in a separate yaml to not edit common cephadm.yaml as much as possible
See how crimson-fixed-1.yaml sets crimson_cpu_num
We can introduce a new yaml in crimson-rados/cephadm dir that sets this.
qa/tasks/cephadm.py
Outdated
| 'ceph', 'config', 'set', 'osd', 'crimson_cpu_num', '4']) | ||
| log.info('Set set-allow-crimson --yes-i-really-mean-it ...') | ||
| _shell(ctx, cluster_name, bootstrap_remote, [ | ||
| 'ceph', 'osd', 'set-allow-crimson', '--yes-i-really-mean-it']) |
There was a problem hiding this comment.
nit:
tasks/ceph.py has already implemented this:
@contextlib.contextmanager
def check_enable_crimson(ctx, config):
# enable crimson-osds if crimson
log.info("check_enable_crimson: {}".format(is_crimson(config)))
if is_crimson(config):
cluster_name = config['cluster']
first_mon = teuthology.get_first_mon(ctx, config, cluster_name)
(mon_remote,) = ctx.cluster.only(first_mon).remotes.keys()
log.info('check_enable_crimson: setting set-allow-crimson')
mon_remote.run(
args=[
'sudo', 'ceph', '--cluster', cluster_name,
'osd', 'set-allow-crimson', '--yes-i-really-mean-it'
]
)
yield
can we reuse some of the logic above? Perhaps is_crimson can be reused
In the classic OSD test suite both ubuntu and centos builds are supported.
However the crimson OSD only provides centos based builds so the same test
layout cannot be reused directly.
To enable cephadm testing with crimson, this change ports the relevant
test suite to the `crimson-rados` directory. Instead of linking entire
subdirectories (like .qa/suites/orch/cephadm/{osds,smoke,workunits,smoke-singlehost}),
the crimson suite uses selective symlinks for the required yaml files
and exclude ubuntu specific yaml files.
Fixes: https://tracker.ceph.com/issues/71946
Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
7270800 to
e900714
Compare
Matan-B
left a comment
There was a problem hiding this comment.
lgtm!
From looking at https://pulpito.ceph.com/moagrawa-2025-11-13_05:59:02-crimson-rados-main-distro-default-smithi/ we still have a few failures. We should make sure only stable tests are included in crimson-rados suite.
The failed jobs could be either resolved or moved to the crimson-rados-experimental suite.
| check_status=False) | ||
|
|
||
| log.info('Bootstrapping:checking and enabling crimson if needed') | ||
| check_enable_crimson(ctx, config) |
|
@mohit84, Once the crimson-rados/cepadm suite is green we can merge |
I have checked after make a symlink number of teuthology jobs are not same similar to classic rados, i think we have to change the approach. |
Matan-B
left a comment
There was a problem hiding this comment.
Can we change the default store used for testing crimson-rados/cephadm to SeaStore? Or add it as an option? It seems that cephadm suite is using bluestore only by default atm
|
This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days. |
|
This pull request has been automatically closed because there has been no activity for 90 days. Please feel free to reopen this pull request (or open a new one) if the proposed change is still appropriate. Thank you for your contribution! |
In the classic OSD test suite both ubuntu and centos builds are supported. However the crimson OSD only provides centos based builds so the same test layout cannot be reused directly.
To enable cephadm testing with crimson, this change ports the relevant test suite to the
crimson-radosdirectory. Instead of linking entire subdirectories (like .qa/suites/orch/cephadm/{osds,smoke,workunits,smoke-singlehost}), the crimson suite uses selective symlinks for the required yaml files and exclude ubuntu specific yaml files.Fixes: https://tracker.ceph.com/issues/71946
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an
xbetween the brackets:[x]. Spaces and capitalization matter when checking off items this way.Checklist
Show available Jenkins commands
jenkins test classic perfJenkins Job | Jenkins Job Definitionjenkins test crimson perfJenkins Job | Jenkins Job Definitionjenkins test signedJenkins Job | Jenkins Job Definitionjenkins test make checkJenkins Job | Jenkins Job Definitionjenkins test make check arm64Jenkins Job | Jenkins Job Definitionjenkins test submodulesJenkins Job | Jenkins Job Definitionjenkins test dashboardJenkins Job | Jenkins Job Definitionjenkins test dashboard cephadmJenkins Job | Jenkins Job Definitionjenkins test apiJenkins Job | Jenkins Job Definitionjenkins test docsReadTheDocs | Github Workflow Definitionjenkins test ceph-volume allJenkins Jobs | Jenkins Jobs Definitionjenkins test windowsJenkins Job | Jenkins Job Definitionjenkins test rook e2eJenkins Job | Jenkins Job DefinitionYou must only issue one Jenkins command per-comment. Jenkins does not understand
comments with more than one command.