ceph.spec.in: Include Crimson by default#66229
Conversation
|
jenkins test api |
0b6c3ea to
54948f4
Compare
058057d to
e15f136
Compare
dde16b5 to
eea322a
Compare
|
jenkins test api |
CMakeLists.txt
Outdated
| find_program(RPM_EXECUTABLE rpm) | ||
| if(RPM_EXECUTABLE) | ||
| set(WITH_CRIMSON ON) | ||
| endif() |
There was a problem hiding this comment.
i am not in favor of this change. the existing of rpm executable should not be connected with the "RPM build flavor", or whatever it implies.
and we should not override the user setting, what if a user explicitly specifies WITH_CRIMSON=OFF ?
we should enable/disable WITH_CRIMSON at a higher level -- or, we could provide a default value after detecting its dependencies. like:
option(WITH_CRIMSON "Build Crimson components" ALL_DEPS_BUILDING_CRIMSON_FULFILLED)There was a problem hiding this comment.
just read the thread at #66229 (comment) . i still think we should detect the deps properly instead of wiring this option with "rpm". please note, one can install "rpm" on a debian derivative distro.. it's another counter proof that the existing of "rpm" does not serve as a signal that the system is capable of building crimson.
There was a problem hiding this comment.
if we aren't ready to enable this by default, maybe we should just leave it as-is. rpm builds will enable it due to the change to ceph.spec.in, 'make check' enables it for pull requests, and developers still need to enable manually
There was a problem hiding this comment.
if we aren't ready to enable this by default, maybe we should just leave it as-is. rpm builds will enable it due to the change to ceph.spec.in, 'make check' enables it for pull requests, and developers still need to enable manually
Seems reasonable, we can start with changing our spec.in and followup with a proper (ALL_DEPS_BUILDING_CRIMSON_FULFILLED) cmake later on.
There was a problem hiding this comment.
I've updated the PR to drop the CMake changes for now.
63b567a to
d875ca0
Compare
d875ca0 to
304e806
Compare
With ceph#65782 merged, Crimson could be now built as part of the default RPM build flavor. The binaries ceph-osd-crimson and ceph-osd-classic are managed via `update-alternatives` and selected based on priority: - ceph-osd-classic keeps the **highest** priority (100) and remains the default. - Switching to crimson is possible via: update-alternatives --set ceph-osd /usr/bin/ceph-osd-crimson Existing classic behavior remains unchanged unless the above command is explicitly executed. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
In an attempt to use the default flavor for both crimson and classic, we can no longer rely on flavors to enable crimson flags. The existing CRIMSON_COMPAT env variable is defined under "workunit", and is not supported by tasks/ceph. Instead, introduce, a dedicated crimson_compat option supported by tasks/ceph. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
a37b5b5 added ceph-osd-crimson as dependency using OR requirement. Once ceph-osd-classic dependency is satisfied, ceph-osd-crimson package must be added manually. In order to not add crimson packages manually (See "Containerfile" removed lines) - mark osd-crimson as dependency if with_crimson is enabled for rpm and if pkg.ceph.crimson build profile is enabled for debian. With this change, users won't be required to obtain ceph-osd-crimson package manually when relevant. Similarly to ceph-osd-classic being a dependency for ceph-osd. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
By enabling crimson in the "default" flavor - we should be able to cleanup "crimson-release" flavor. Update the cronjob ro use the default build flavor. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Similarly to ceph#66268. Once crimson is enabled in RPM, ceph-osd-crimson will be requried as a dependency. old-clients and upgrade tests should not try to install the new package as it is not available in older releases. See: https://tracker.ceph.com/issues/73848 Signed-off-by: Matan Breizman <mbreizma@redhat.com>
304e806 to
807b32e
Compare
|
Note: ceph/teuthology#2110 can help when looking at teuthology logs |
With ceph/ceph#66229 merged, Crimson is now included (though not used) by default in our RPM builds. This means the existing default flavor can also be used for Crimson testing by selecting Crimson as the default OSD package. Notes: * The previous workaround related to DWITH_STATIC_LIBSTDCXX is no longer relevant for Crimson (it was tied to older compiler issues). * The crimson-only branch name selection is also cleaned up, as centos9-only can now be used instead. * This change breaks Crimson Tentacle CI builds: The packaging update that includes Crimson in RPM builds was not backported to Tentacle. Tentacle builds would still require a dedicated flavor that enables WITH_CRIMSON However, since Crimson changes have not been backported to Tentacle (since the first RCA), there is no strong reason to keep building and testing the same Crimson HEAD. So we can use this opprtuinity to stop nightly Crimson/Tentacle builds and tests. See last Crimson tentacle run, (which is not expected to change): https://pulpito.ceph.com/teuthology-2025-11-22_22:56:11-crimson-rados-tentacle-distro-crimson-debug-smithi/ Signed-off-by: Matan Breizman <mbreizma@redhat.com>
…uilds. So if we're trying > to build with crimson disabled, the bcond must be reversed. Signed-off-by: T K Chandra Hasan <t.k.chandra.hasan@ibm.com>
…lds. So if we're trying to build with crimson disabled, the bcond must be reversed. Signed-off-by: T K Chandra Hasan <t.k.chandra.hasan@ibm.com>
With ceph#66229 merged, crimson is now enabled by default for RPM builds. So if we're trying to build with crimson disabled, the bcond must be reversed. Signed-off-by: T K Chandra Hasan <t.k.chandra.hasan@ibm.com>
With ceph#66229 merged, crimson is now enabled by default for all the builds. So if we're trying to build with crimson disabled, the bcond must be reversed to install the relavant dependencies. Signed-off-by: T K Chandra Hasan <t.k.chandra.hasan@ibm.com>
With ceph/ceph#66229 merged, Crimson is now included (though not used) by default in our RPM builds. This means the existing default flavor can also be used for Crimson testing by selecting Crimson as the default OSD package. Notes: * The previous workaround related to DWITH_STATIC_LIBSTDCXX is no longer relevant for Crimson (it was tied to older compiler issues). * The crimson-only branch name selection is also cleaned up, as centos9-only can now be used instead. * This change breaks Crimson Tentacle CI builds: The packaging update that includes Crimson in RPM builds was not backported to Tentacle. Tentacle builds would still require a dedicated flavor that enables WITH_CRIMSON However, since Crimson changes have not been backported to Tentacle (since the first RCA), there is no strong reason to keep building and testing the same Crimson HEAD. So we can use this opprtuinity to stop nightly Crimson/Tentacle builds and tests. See last Crimson tentacle run, (which is not expected to change): https://pulpito.ceph.com/teuthology-2025-11-22_22:56:11-crimson-rados-tentacle-distro-crimson-debug-smithi/ Signed-off-by: Matan Breizman <mbreizma@redhat.com>
With ceph#66229 merged, crimson is now enabled by default for all the builds. So if we're trying to build with crimson disabled, the bcond must be reversed to install the relavant dependencies. Signed-off-by: T K Chandra Hasan <t.k.chandra.hasan@ibm.com>
With ceph#66229 merged, crimson is now enabled by default for all the builds. So if we're trying to build with crimson disabled, the bcond must be reversed to install the relavant dependencies. Signed-off-by: T K Chandra Hasan <t.k.chandra.hasan@ibm.com>
With #65782 merged, Crimson could be now built as part of the default RPM build flavor. The binaries ceph-osd-crimson and ceph-osd-classic are managed via
update-alternativesand selected based on priority:Existing classic behavior remains unchanged unless the above command is explicitly executed.
Related work:
Followups:
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.