Skip to content

ceph.spec.in: Include Crimson by default#66229

Merged
Matan-B merged 5 commits intoceph:mainfrom
Matan-B:wip-matanb-crimson-on
Nov 20, 2025
Merged

ceph.spec.in: Include Crimson by default#66229
Matan-B merged 5 commits intoceph:mainfrom
Matan-B:wip-matanb-crimson-on

Conversation

@Matan-B
Copy link
Contributor

@Matan-B Matan-B commented Nov 13, 2025

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-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.


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 x between the brackets: [x]. Spaces and capitalization matter when checking off items this way.

Checklist

  • Tracker (select at least one)
    • References tracker ticket
    • Very recent bug; references commit where it was introduced
    • New feature (ticket optional)
    • Doc update (no ticket needed)
    • Code cleanup (no ticket needed)
  • Component impact
    • Affects Dashboard, opened tracker ticket
    • Affects Orchestrator, opened tracker ticket
    • No impact that needs to be tracked
  • Documentation (select at least one)
    • Updates relevant documentation
    • No doc update is appropriate
  • Tests (select at least one)
Show available Jenkins commands

You must only issue one Jenkins command per-comment. Jenkins does not understand
comments with more than one command.

@Matan-B
Copy link
Contributor Author

Matan-B commented Nov 13, 2025

jenkins test api

@Matan-B Matan-B requested a review from jdurgin November 13, 2025 10:50
@Matan-B Matan-B requested a review from cbodley November 13, 2025 15:27
@Matan-B
Copy link
Contributor Author

Matan-B commented Nov 17, 2025

@Matan-B
Copy link
Contributor Author

Matan-B commented Nov 17, 2025

jenkins test api

CMakeLists.txt Outdated
find_program(RPM_EXECUTABLE rpm)
if(RPM_EXECUTABLE)
set(WITH_CRIMSON ON)
endif()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Contributor Author

@Matan-B Matan-B Nov 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've updated the PR to drop the CMake changes for now.

@Matan-B Matan-B force-pushed the wip-matanb-crimson-on branch 2 times, most recently from 63b567a to d875ca0 Compare November 18, 2025 08:56
@Matan-B Matan-B moved this from Unassigned / Drafts / Discussion to Awaits review in Crimson Nov 18, 2025
@Matan-B Matan-B marked this pull request as ready for review November 18, 2025 08:57
@Matan-B Matan-B requested a review from a team as a code owner November 18, 2025 08:57
@Matan-B Matan-B requested a review from tchaikov November 18, 2025 08:57
@Matan-B Matan-B force-pushed the wip-matanb-crimson-on branch from d875ca0 to 304e806 Compare November 19, 2025 13:10
@Matan-B Matan-B changed the title CMakeLists: Include Crimson by default in RPM builds ceph.spec.in: Include Crimson by default Nov 19, 2025
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>
@Matan-B Matan-B force-pushed the wip-matanb-crimson-on branch from 304e806 to 807b32e Compare November 19, 2025 13:14
@Matan-B Matan-B added the TESTED label Nov 19, 2025
@Matan-B
Copy link
Contributor Author

Matan-B commented Nov 19, 2025

Note: ceph/teuthology#2110 can help when looking at teuthology logs

@Matan-B Matan-B merged commit 9c048a9 into ceph:main Nov 20, 2025
16 checks passed
@Matan-B Matan-B moved this from Awaits review to Merged (Main) in Crimson Nov 20, 2025
Matan-B added a commit to Matan-B/ceph-build that referenced this pull request Nov 23, 2025
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>
hasan4791 added a commit to hasan4791/ceph that referenced this pull request Nov 27, 2025
…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>
hasan4791 added a commit to hasan4791/ceph that referenced this pull request Nov 27, 2025
…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>
hasan4791 added a commit to hasan4791/ceph that referenced this pull request Nov 27, 2025
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>
hasan4791 added a commit to hasan4791/ceph that referenced this pull request Nov 27, 2025
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>
Matan-B added a commit to Matan-B/ceph-build that referenced this pull request Dec 18, 2025
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>
JoshuaGabriel pushed a commit to JoshuaGabriel/ceph that referenced this pull request Jan 7, 2026
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>
amathuria pushed a commit to amathuria/ceph that referenced this pull request Jan 19, 2026
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Merged (Main)

Development

Successfully merging this pull request may close these issues.

3 participants