forked from rook/rook
Clean up stale CRUSH rules after the Ceph mgr starts so rules left behind by pool failure-domain or device-class changes do not accumulate indefinitely.
The cleanup is guarded by a package-level RWMutex. Pool create and update paths hold the read lock while creating and assigning CRUSH rules, while cluster-wide cleanup holds the write lock before listing pools and deleting unused rules. This keeps pool reconciles parallel with each other while preventing cleanup from deleting a rule that another reconcile has just created but not yet attached to a pool.
Keep direct pool-delete cleanup for the pool's current CRUSH rule, make the cluster-wide cleanup best-effort across all unused rules, and add an operator-level ROOK_DELETE_UNUSED_CRUSH_RULES setting for clusters that need to leave unused custom rules in place.
Document the operator and Helm settings, regenerate the Helm chart docs, and add a pending release note for the default cleanup behavior.
Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
(cherry picked from commit 24a35e4e74)
1.0 KiB
1.0 KiB
v1.20 Pending Release Notes
Breaking Changes
- The minimum supported Kubernetes version is v1.31.
Features
- RGW Account support: Added
CephObjectStoreAccountCRD for managing RGW accounts, andaccountReffield inCephObjectStoreUserto associate users with accounts. This feature is experimental and currently only supported with the Ceph main branch image (quay.ceph.io/ceph-ci/ceph:main). See the Object Store Accounts documentation for more details. - SSE-S3 with Vault Agent: Added support for server-side encryption with SSE-S3 using HashiCorp Vault Agent authentication. See the CephObjectStore Security Settings for more details.
- Unused CRUSH rule cleanup: Rook now deletes unused CRUSH rules by default after the Ceph mgr starts. Set
ROOK_DELETE_UNUSED_CRUSH_RULEStofalsein the operator config to disable this cleanup.