Skip to content

Umbrella checklist kickoff!#66524

Open
aainscow wants to merge 29 commits intoceph:mainfrom
aainscow:umbrella-release
Open

Umbrella checklist kickoff!#66524
aainscow wants to merge 29 commits intoceph:mainfrom
aainscow:umbrella-release

Conversation

@aainscow
Copy link
Contributor

@aainscow aainscow commented Dec 4, 2025

This is a start at the Umbrella Kickoff.

I have implemented the parts that are necessary for the client versioning I need to add.

Tracker: https://tracker.ceph.com/issues/74141

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.

@github-actions
Copy link

github-actions bot commented Dec 4, 2025

Config Diff Tool Output

+ added: mon_debug_no_require_umbrella (global.yaml.in)
- removed: mon_debug_no_require_squid (global.yaml.in)

The above configuration changes are found in the PR. Please update the relevant release documentation if necessary.
Ignore this comment if docs are already updated. To make the "Check ceph config changes" CI check pass, please comment /config check ok and re-run the test.

@github-actions
Copy link

github-actions bot commented Dec 5, 2025

This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved

@ljflores ljflores requested a review from markhpc December 5, 2025 19:31
@ljflores
Copy link
Member

ljflores commented Dec 5, 2025

@markhpc I tagged you to review the RocksDB submodule version

Copy link
Member

@batrick batrick left a comment

Choose a reason for hiding this comment

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

Thanks for starting this!

@batrick
Copy link
Member

batrick commented Dec 6, 2025

Putting these links here so I don't have to find them again later:

Copy link
Contributor

@bill-scales bill-scales left a comment

Choose a reason for hiding this comment

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

Changes so far look good.

src/common/ceph_strings.cc:: ceph_release_features (line 171) will need updating for umbrella because we are changing the client->OSD protocol for both direct reads and pool migration

@aainscow
Copy link
Contributor Author

aainscow commented Dec 9, 2025

@bill-scales

Changes so far look good.

src/common/ceph_strings.cc:: ceph_release_features (line 171) will need updating for umbrella because we are changing the client->OSD protocol for both direct reads and pool migration

As in this?

Index: src/common/ceph_strings.cc
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/common/ceph_strings.cc b/src/common/ceph_strings.cc
--- a/src/common/ceph_strings.cc	(revision 3fa00db04dda621b52c55aa7dfc883e9659d5494)
+++ b/src/common/ceph_strings.cc	(date 1765271478614)
@@ -166,7 +166,11 @@
 		return req;
 
 	req |= CEPH_FEATUREMASK_CRUSH_MSR;
-	if (r <= CEPH_RELEASE_SQUID)
+	if (r <= CEPH_RELEASE_TENTACLE)
+		return req;
+
+	req |= CEPH_FEATUREMASK_SERVER_UMBRELLA;
+	if (r <= CEPH_RELEASE_UMBRELLA)
 		return req;
 
 	return req;

Do we need new feature bits for DIRECT READS and POOL requests?

@aainscow
Copy link
Contributor Author

aainscow commented Dec 9, 2025

jenkins test make check

aainscow and others added 20 commits March 11, 2026 11:31
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
No DEPRECATED features.

Remove some code labeled as "Remove in Umbrella"

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
All the qa tasks in the umbrella release checklist

Signed-off-by: Chris Harris <harriscr@uk.ibm.com>
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
Following consulting with author, we don't yet want to remove.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
We are leaving alone legacy EC

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
Remove the reef code from the fs upgrade suites as we no longer want to test X-3 releases

Signed-off-by: Chris Harris <harriscr@uk.ibm.com>
Add files for the tentacle release (X-1) to the qa/suites/fs/upgrade suites

Signed-off-by: Chris Harris <harriscr@uk.ibm.com>
This flag was not available, so I have deleted it.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
All the qa tasks in the umbrella release checklist.
This includes removing X-3 releases and adding X-1 releases
(where appropriate).

Also updated release-checklist.rst

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
This counter is no longer needed in umbrella.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
Just add umbrella.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
Previous PR already added umbrella, therefore adding redmin-upkeep is a no-op.
Any future developer copying this needs to look at PR 67316

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
@rzarzynski
Copy link
Contributor

rzarzynski commented Mar 11, 2026

- [ ] OSDMap::get_min_compat_client: core team evaluate

The client-exposed stuff core might have in Umbrella is EC direct reads and pool migration but these features are pending. The branches are supposed to encapsulate poking with the features bits (hopefully just piggy-backing on SERVER_UMBRELLA). We cannot forget to modify get_min_compat_client() there.

CC: @aainscow.

@batrick
Copy link
Member

batrick commented Mar 12, 2026

- [ ] OSDMap::get_min_compat_client: core team evaluate

The client-exposed stuff core might have in Umbrella is EC direct reads and pool migration but these features are pending.

What does "pending" mean?

The branches

You mean PRs against main?

are supposed to encapsulate poking with the features bits (hopefully just piggy-backing on SERVER_UMBRELLA).

I'd like to understand better why this should rely on checking for SERVER_UMBRELLA. Obviously anything in main cannot currently do so.

We cannot forget to modify get_min_compat_client() there.

I don't follow. It sounds like you want to rely on connection features then why do you need to set the min_compat_client?

I'm trying to get more familiar with OSDMap::get_min_compat_client() but I actually can't find in the code where the enforcement occurs (in the OSD?). Can you point it out please?

@aainscow
Copy link
Contributor Author

  • OSDMap::get_min_compat_client: core team evaluate

The client-exposed stuff core might have in Umbrella is EC direct reads and pool migration but these features are pending.

What does "pending" mean?

It means the PRs are not merged yet.

The branches
You mean PRs against main?
Yes.

are supposed to encapsulate poking with the features bits (hopefully just piggy-backing on SERVER_UMBRELLA).

I'd like to understand better why this should rely on checking for SERVER_UMBRELLA. Obviously anything in main cannot currently do so.

For EC direct reads, the client doesn't actually look at any feature bits. It looks at a flag in the pool, which can only be set once all OSDs have upgraded to umbrella.

For pool migration, the design is here:
https://docs.ceph.com/en/latest/dev/pool-migration-design/

There is a section on upgrade. This work is not complete, but I do know the developers are aware of the requirements.

Unless there is explicit work to do here, I think we should move this discussion to the pool migration work.

We cannot forget to modify get_min_compat_client() there.

I don't follow. It sounds like you want to rely on connection features then why do you need to set the min_compat_client?

Can we move this discussion to the Pool Migration? I will add you to the necessary slack channel.

I'm trying to get more familiar with OSDMap::get_min_compat_client() but I actually can't find in the code where the enforcement occurs (in the OSD?). Can you point it out please?

I will put you in contact with the necessary.

@batrick
Copy link
Member

batrick commented Mar 16, 2026

jenkins test make check

@batrick
Copy link
Member

batrick commented Mar 16, 2026

jenkins test dashboard cephadm

@batrick
Copy link
Member

batrick commented Mar 16, 2026

This PR is under test in https://tracker.ceph.com/issues/75532.

@github-actions
Copy link

This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.