What rook/rook shipped
Written by FoxPlug from the repository's own releases; not affiliated with Rook. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/rook/rook; Rook did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of November 2, 2026
What shipped
- Rook v1.21.2 was released as a patch release with operator fixes, including disabling msgr1 on OSD, MGR and MDS when msgr2 is required and filtering RBD devices from LVM scans on host-based OSDs. Release
- Rook v1.20.10 was released with fixes such as logging only the RGW zone fields Rook reads, redacting secret flag values from reported commands and shell-quoting commands. Release
- Additional volume mounts on CephObjectStore gateways and the CephNFS SSSD sidecar are now kept inside their root directory by validating subPath. Pull request #18714
- OSD prepare now reports an error when a duplicate OSD ID is detected from a uuid mismatch instead of silently skipping deployment creation. Pull request #17275
- RGW account quotas and resource limits can now be configured through CephObjectStoreAccount. Pull request #18524
- The realm system user is now created when a CephObjectZone defines custom endpoints. Pull request #18648
- OSD, MGR and MDS daemons now disable msgr1 when network.connections.requireMsgr2 is enabled on the CephCluster. Pull request #18557
- The operator now alerts when the OSD LUKS key rotation job fails, so key drift can be noticed before an OSD fails to start. Pull request #18642
- A new optional connection detail configures the Vault transit mount path for RGW SSE-S3. Pull request #18598
- CodeQL now scans Go, Python and GitHub Actions code on pull requests and pushes to master. Pull request #18726
Why it matters
This week brings two patch releases with operator fixes plus tighter input validation on volume mounts and clearer duplicate OSD reporting. Several changes keep credentials out of logs and errors, and the default msgr2 behavior is enforced on more daemons.
Changelog entry
- Release v1.21.2 with operator fixes including msgr1 disablement on OSD, MGR and MDS and RBD LVM scan filtering. Release
- Release v1.20.10 with logging and secret redaction fixes. Release
- Validate additional volume mount subPaths to stay inside their root directory. Pull request #18714
- Report an error when a duplicate OSD ID is detected. Pull request #17275
- Support RGW account quotas and resource limits. Pull request #18524
- Create the realm system user when a zone has custom endpoints. Pull request #18648
- Disable msgr1 on OSD, MGR and MDS when msgr2 is required. Pull request #18557
- Alert on OSD LUKS key rotation job failures. Pull request #18642
- Add VAULT_TRANSIT_BACKEND_PATH for the RGW SSE-S3 transit mount. Pull request #18598
- Run CodeQL on pull requests and master for Go, Python and GitHub Actions. Pull request #18726
- Include cluster config overrides in the CephNFS client config. Pull request #18627
- Migrate the IBM Key Protect client to v1.0.1. Pull request #18488
Rook v1.21.2 and v1.20.10 patch releases are out. Volume mount subPaths are now validated, duplicate OSD IDs are reported, RGW account quotas are supported, and msgr1 is disabled on OSD, MGR and MDS when msgr2 is required.
Rook v1.21.2 and v1.20.10 patch releases are now available. This week also added validation that keeps additional volume mounts inside their root directory, so a crafted subPath cannot mount a volume over arbitrary container paths. OSD prepare now reports an error when a duplicate OSD ID is found instead of skipping creation silently. RGW account quotas and resource limits can be configured through CephObjectStoreAccount, and the realm system user is created when a zone defines custom endpoints. When msgr2 is required, OSD, MGR and MDS daemons now disable msgr1. LUKS key rotation job failures now raise an alert. CodeQL scanning covers Go, Python and GitHub Actions code on PRs and master.
Week of October 19, 2026
What shipped
- Added an optional spec.monitoring.scrapeTimeoutSeconds setting that is applied to both the mgr and ceph ServiceMonitors. Pull request #18424
- Added spec.secretTemplate labels and annotations to CephObjectStoreUser so credential Secrets can be selected by tools like Reflector, Kyverno, or kubernetes-replicator. Pull request #18469
- Preserved the NVMe-oF gateway Service on scale-down so the ClusterIP stays stable and consumers can reconnect. Pull request #18584
- Fixed the mgr Prometheus module restarting on every reconcile by comparing the scrape interval numerically. Pull request #18583
- Emitted RGW container command flags in a deterministic order instead of mapping over the flag map. Pull request #18592
- Added support for a raise-nofile-limit annotation on the CephObjectStore CR to raise the radosgw soft nofile limit to the platform hard cap. Pull request #18546
- Added spec.interruptMode for NVMe-oF to let SPDK reactors use interrupt mode and reduce idle CPU usage. Pull request #18599
- Disabled insecure global ID reclaim when no legacy clients are connected instead of only muting the health warning. Pull request #18597
- Fixed minimum failure domain detection so a pool list with only failureDomain region no longer falls back to host. Pull request #18577
- Added guidance to delete StorageClasses before upgrading to v1.21 charts because parameters are immutable. Pull request #18574
Why it matters
This week fixed several operator behaviors that caused repeated reconciles or broken reconnects, such as the mgr Prometheus interval comparison and the NVMe-oF Service ClusterIP. It also added configuration that users had to work around by hand, including scrape timeouts, secret templates for object store users, and a nofile limit annotation. Upgrade notes for v1.21 were added because the new StorageClass parameters make helm upgrade fail without first deleting them.
Changelog entry
- Cluster: add spec.monitoring.scrapeTimeoutSeconds for mgr and ceph ServiceMonitors Pull request #18424
- Object: add secretTemplate labels and annotations to CephObjectStoreUser Pull request #18469
- Nvmeof: preserve gateway Service on scale-down to keep a stable ClusterIP Pull request #18584
- Mgr: compare Prometheus scrape interval numerically to stop per-reconcile restarts Pull request #18583
- Object: emit rgwCommandFlags in a deterministic order Pull request #18592
- Rgw: add raise-nofile-limit annotation for the CephObjectStore CR Pull request #18546
- Nvmeof: add SPDK interrupt mode to reduce idle CPU usage Pull request #18599
- Ceph: disable insecure global ID reclaim instead of muting the warning Pull request #18597
- Clusterdisruption: fix minimum failure domain detection for region Pull request #18577
- Docs: delete StorageClasses before helm upgrade to v1.21 Pull request #18574
- Build: fix docs publish auth across the GitHub redirect Pull request #18616
- Ci: build release images with the newest Go patch release Pull request #18609
This week: configurable Prometheus scrape timeout, secretTemplate for CephObjectStoreUser, stable NVMe-oF gateway ClusterIP, numeric interval comparison, deterministic RGW flags, and v1.21 upgrade guidance.
Changes merged this week in Rook: spec.monitoring.scrapeTimeoutSeconds for the mgr and ceph ServiceMonitors, secretTemplate labels and annotations on CephObjectStoreUser, and preservation of the NVMe-oF gateway Service so its ClusterIP stays stable across scale-down. The mgr Prometheus module no longer restarts every reconcile because the scrape interval is now compared numerically, and RGW command flags are emitted in a deterministic order. NVMe-oF gained an interrupt mode option to reduce idle CPU, and object stores gained an annotation to raise the radosgw nofile soft limit. Minimum failure domain detection now handles region correctly, and the v1.20 to v1.21 guide explains deleting StorageClasses before helm upgrade.
Week of October 12, 2026
What shipped
- Rook v1.20.9 shipped as a patch release with Ceph operator fixes, including enforcing secure msgr2 mode for mon connections and rejecting purely numeric topology values in validation. Release
- Rook v1.19.12 shipped as a patch release with Ceph operator fixes, including allowing missing lifecycle notification events and waiting for the OSD upgrade before reconciling. Release
- The RGW service spec now accepts a trafficDistribution setting through gateway.service.trafficDistribution, alongside the existing annotations and labels fields. Pull request #18541
- The object store controller now ignores the dashboard's per-realm credential map when RGW dashboard keys are empty, so new stores no longer get a dashboard-admin user with the map as its key. Pull request #18425
- OSD updates now return immediately when every OSD in an ok-to-stop batch is skipped, avoiding an empty label selector in the wait for deployments to update. Pull request #18564
- Device discovery now skips nbd, drbd, and zram devices so useAllDevices or a device filter cannot place an OSD on network-backed or volatile RAM devices. Pull request #18490
- Topology validation now rejects purely numeric bucket names, which Ceph parses as OSD IDs and which could leave stale noout flags and a permanent HEALTH_WARN. Pull request #18539
- The NFS operator now removes the temporary ganesha config files it creates instead of only closing them, so they stop accumulating in the operator pod's /tmp. Pull request #18538
- Rook custom resources now set status.message wherever the controller already updates status.phase, so the message matches the current phase. Pull request #18533
- Documentation and example YAMLs were added for accessing NVMe-oF volumes from external clients outside the cluster, with a LoadBalancer service and a connection guide. Pull request #17719
Why it matters
This week brings two patch releases, v1.20.9 and v1.19.12, plus fixes across object, OSD, and NFS reconciliation. Several changes target problems operators hit in practice: wrong dashboard credentials per realm, OSDs landing on unsuitable devices, stale noout flags from numeric topology names, and leftover config files in the operator pod.
Changelog entry
- Release v1.20.9 with Ceph operator fixes including secure msgr2 mode for mon connections and numeric topology validation. Release
- Release v1.19.12 with Ceph operator fixes including missing lifecycle notification events and waiting for OSD upgrades. Release
- Add trafficDistribution to the RGW service spec via gateway.service.trafficDistribution. Pull request #18541
- Ignore the dashboard's per-realm credential map when object store RGW keys are empty. Pull request #18425
- Avoid an empty label selector when all OSDs in a batch are skipped during updates. Pull request #18564
- Skip nbd, drbd, and zram devices in device discovery. Pull request #18490
- Reject purely numeric topology values in OSD validation. Pull request #18539
- Clean up temporary ganesha config files created by the NFS operator. Pull request #18538
- Set status.message on Rook custom resources wherever status.phase is updated. Pull request #18533
- Add documentation and examples for external NVMe-oF client access. Pull request #17719
- Restrict daemon version lookup to monitor and OSD types. Pull request #18236
- Bump golang.org/x/net to v0.60.0 to fix govulncheck findings. Pull request #18540
Rook v1.20.9 and v1.19.12 are out. Also this week: RGW service trafficDistribution, dashboard credential fix for object stores, device discovery skips nbd/drbd/zram, numeric topology validation, and NFS temp file cleanup.
Rook v1.20.9 and v1.19.12 are out this week. v1.20.9 enforces secure msgr2 mode for mon connections and rejects purely numeric topology values in validation. v1.19.12 allows missing lifecycle notification events and waits for the OSD upgrade before reconciling. Also merged: RGW services can set trafficDistribution through gateway.service.trafficDistribution; object stores ignore the dashboard's per-realm credential map when RGW keys are empty; OSD updates return early when all OSDs in a batch are skipped; device discovery now skips nbd, drbd, and zram devices; topology validation rejects numeric bucket names that Ceph parses as OSD IDs; the NFS operator removes its temporary ganesha config files; and external NVMe-oF client access documentation was added.
Week of October 5, 2026
What shipped
- Rook v1.21.0 was released, with msgrv2 required by default and Helm OCI chart tags no longer including the v prefix. Release
- Mon-specific msgr2 mode options are now set to secure together with the general modes when connection encryption is enabled, closing a gap in secure mesgr2 enforcement. Pull request #18324
- Per-device encryptedDevice: "true" under storage.devices is now respected when creating OSDs, instead of only checking the global encrypted-device flag. Pull request #18472
- The NFS controller no longer creates the.nfs pool automatically; it checks for the pool and requeues with a warning telling the user to create a CephBlockPool. Pull request #18497
- Rook no longer manages the CSI defaults and imageset ConfigMap, leaving empty tags and letting the csi-operator set defaults. Pull request #18420
- The ROOK_CREATE_CSI_OPERATOR_RESOURCES setting was added, defaulting to true, so object-storage-only clusters can skip creating the CephConnection and ClientProfile CRs. Pull request #18373
- The csi-driver and ceph-csi-operator were updated to v3.18.1 and v1.1.0. Pull request #18498
- The NVMe-oF gateway CPU alert now multiplies the busy reactor time rate by 100 so the percentage threshold works and the alert can fire. Pull request #18476
- The nvmeof-protocol canary now pins nvmeof:1.7.23 to fix an aes256k keyring mismatch between the gateway image and Ceph 20.2.4 clusters. Pull request #18520
- The release-1.20 backport for filtering rbd devices from LVM scans in raw-mode activation was corrected in the inline OSD activate script. Pull request #18508
Why it matters
This week brings the v1.21.0 release and several changes that affect how clusters are built and secured. Secure msgr2 handling, per-device encryption and NFS pool creation now behave as expected, and CSI setup is left more to the csi-operator. Users upgrading should note the msgrv2 default and the Helm chart tag change.
Changelog entry
- Release: v1.21.0 Release
- Ceph: enforce secure msgr2 mode for mon connections Pull request #18324
- Osd: respect per-device encryptedDevice config Pull request #18472
- Nfs: remove automatic pool creation in favor of CephBlockPool CR Pull request #18497
- Csi: remove the csi defaults and imageset configmap Pull request #18420
- Csi: add a setting to skip creating the csi operator resources Pull request #18373
- Csi: update csi-driver and ceph-csi-operator Pull request #18498
- Monitoring: correct NVMe-oF gateway CPU alert percentage Pull request #18476
- Ci: pin nvmeof:1.7.23 to fix aes256k keyring mismatch Pull request #18520
- Osd: filter rbd devices from LVM scans in raw-mode activation (release-1.20) Pull request #18508
- Csi: add make target to get latest csi-operator yaml Pull request #18512
- Build: update release version to v1.21.0 Pull request #18516
Rook v1.21.0 is out: msgrv2 required by default and Helm OCI chart tags drop the v prefix. Also this week: mon msgr2 modes enforced, per-device encryptedDevice respected, NFS no longer auto-creates the.nfs pool, and CSI defaults move to the csi-operator.
Rook v1.21.0 is released. Breaking changes to note: msgrv2 is required by default, and Helm OCI chart tags no longer include the v prefix, so update any scripts that reference the chart by tag. Other changes this week: mon-specific msgr2 mode options are now set to secure when connection encryption is enabled. Per-device encryptedDevice: "true" is respected when creating OSDs. The NFS controller no longer creates the.nfs pool automatically and instead asks you to create a CephBlockPool. Rook no longer manages CSI defaults and the imageset ConfigMap, leaving those to the csi-operator. A new ROOK_CREATE_CSI_OPERATOR_RESOURCES setting lets object-storage-only clusters skip CSI CRs. The csi-driver and ceph-csi-operator were updated, and the NVMe-oF gateway CPU alert now compares against the co
Week of September 28, 2026
What shipped
- Rook v1.20.8 released with OSD prepare pod networking fixes and Helm chart improvements. Release
- OSD unit tests now respect the TMPDIR environment variable for ceph-volume failure logs instead of hardcoding /tmp. Pull request #18491
- Raw-mode OSD activation now filters rbd devices from LVM scans to prevent deadlocks on nodes with mapped rbd devices. Pull request #18489
- OSD prepare pods now correctly use the host network when configured with spec.network.provider host. Pull request #18454
- The version detection job now uses the same priority class configured for mon pods. Pull request #18477
- Pool growth alert threshold fixed from 95 to 0.95 in Helm chart rules to match
ceph_pool_percent_usedreporting format. Pull request #18453 - Toolbox pod can now mount additional volumes and environment variables via Helm values for custom CA bundles. Pull request #18165
- Added support for Ceph v21 with upgrade tests included in Rook v1.21. Pull request #18365
- Test suites updated to use Context() instead of context.TODO() following modern Go practices. Pull request #18092
- Design proposed for custom labels on CephObjectStoreUser secrets to enable credential replication with external tools. Pull request #18459
Why it matters
Rook v1.20.8 addresses critical OSD networking and monitoring issues that affect production clusters. The fixes for prepare pod host networking and rbd device filtering resolve deadlock scenarios, while the monitoring alert threshold correction prevents false alerts on growing pools.
Changelog entry
- V1.20.8 released with OSD and Helm improvements Release
- OSD prepare pods respect spec.network.provider host configuration Pull request #18454
- OSD unit tests honor TMPDIR environment variable Pull request #18491
- Raw-mode OSD activation filters rbd devices from LVM scans Pull request #18489
- Version detection job uses mon priority class Pull request #18477
- Pool growth alert threshold corrected to 0.95 Pull request #18453
- Toolbox pod supports additional volumes and environment variables Pull request #18165
- Added support for Ceph v21 Pull request #18365
- Test suites updated to use Context() instead of context.TODO() Pull request #18092
Rook v1.20.8 released with fixes for OSD prepare pod networking on host networks and rbd device filtering in raw-mode activation. Also included: pool growth alert threshold correction and toolbox pod configuration improvements.
Rook v1.20.8 is now available with important stability improvements for OSD operations. This patch release includes fixes for OSD prepare pods on host networks, rbd device handling in raw-mode activation, pool growth alert threshold corrections, and enhanced toolbox configuration options via Helm. These updates address production scenarios and improve monitoring accuracy.
Week of September 21, 2026
What shipped
- Rook now defaults to msgr2 protocol for cluster communication, requiring the msgrv2 protocol that has been available since the 5.11 kernel. Pull request #18090
- Security fix removes command output from unmarshal errors to prevent S3 keys and cephx secrets from reaching logs and Kubernetes events. Pull request #18335
- Helm charts now include default HTTPRoute backend parameters to prevent OutOfSync diffs when deploying with ArgoCD. Pull request #18455
- CSI-Addons sidecar updated to v0.15.1 with latest versions of csi-provisioner, csi-attacher, and related sidecars. Pull request #18366
- The util.retry function now respects context cancellation to prevent retries when cluster specs are updated during retry loops. Pull request #18428
- Object bucket claims can now be created with empty specs, allowing fields like bucket name to be updated separately. Pull request #18416
- Upgrade guide documentation updated for v1.21 release changes. Pull request #18443
- Build system now respects TMPDIR environment variable for temporary files instead of hardcoding /tmp. Pull request #18208
- Mergify automerge rules for release-1.21 backports fixed to use correct Ceph v19 pin for canary tests. Pull request #18440
- CI scorecards job now skips on forks to prevent unwanted nightly runs and stale sweeps outside the main repository. Pull request #18442
Why it matters
This week includes important protocol changes for cluster communication with msgr2 becoming the default, security fixes preventing credential leakage in logs, and infrastructure improvements for better build reliability and CI behavior. These changes improve both security and operational stability for Rook deployments.
Changelog entry
- Default cluster communication protocol changed to msgr2 (requires kernel 5.11+) Pull request #18090
- Security: Remove sensitive data from unmarshal error messages Pull request #18335
- Add default HTTPRoute backend parameters to prevent ArgoCD OutOfSync diffs Pull request #18455
- Update CSI-Addons to v0.15.1 and related sidecars to latest versions Pull request #18366
- Make util.retry context-aware to handle cluster spec updates during retries Pull request #18428
- Allow creating object bucket claims with empty specs Pull request #18416
- Fix TMPDIR handling in build system for sandboxed environments Pull request #18208
- Fix mergify automerge rules for release-1.21 backports Pull request #18440
- Skip CI scorecards job on forks to prevent unwanted automation Pull request #18442
- Update upgrade documentation for v1.21 Pull request #18443
Rook ships msgr2 as the default cluster protocol, security fixes for credential handling, improved CSI sidecars, and better build system support for sandboxed environments.
This week's Rook updates include significant security improvements that prevent S3 keys and Ceph secrets from leaking into logs and Kubernetes events, plus important protocol changes defaulting to msgr2 for cluster communication. We've also shipped CSI-Addons v0.15.1, fixed build system issues in sandboxed environments, and improved the retry logic to respect context cancellation.
Week of September 14, 2026
What shipped
- V1.21.0-beta.0 released. Release
- CephObjectStoreUser now supports optional defaultPlacement and defaultStorageClass fields. Pull request #17260
- RGW zone pool references are now immutable to prevent incorrect updates when users change default placement. Pull request #18399
- Manager Prometheus metrics now support TLS for HTTPS connections. Pull request #18058
- CephBucketNotification accepts five additional lifecycle event values from Ceph Squid and Tentacle. Pull request #18378
- Object Bucket and ObjectBucketClaim CRDs now include printer columns for improved kubectl output. Pull request #18393
- CephNVMeOFGateway fixes hostNetwork toggle recreation and hostname mismatch issues. Pull request #18374
- Ceph-volume logs now redact sensitive lockbox secrets. Pull request #18389
- Build process fixed for cross-compiling gen-toolbox artifact. Pull request #18364
- CI debugging switched from tmate to upterm for pre-job sessions. Pull request #18372
Why it matters
V1.21.0-beta.0 arrives with improvements to object storage configuration immutability, better visibility into buckets via kubectl output, and TLS support for metrics collection. These changes address usability and security concerns for operators managing Rook clusters.
Changelog entry
- CephObjectStoreUser: add optional defaultPlacement and defaultStorageClass fields Pull request #17260
- Manager: add TLS support for Prometheus metrics Pull request #18058
- RGW: make pool references in zones immutable Pull request #18399
- CephBucketNotification: allow five additional lifecycle event values Pull request #18378
- Object Bucket CRDs: add printer columns for kubectl output Pull request #18393
- OSD: redact lockbox secrets from ceph-volume logs Pull request #18389
- NVMeOF: fix hostNetwork toggle and hostname mismatch Pull request #18374
- Library bucket provisioner CRDs: update to v1 with new validation rules Pull request #18363
Rook v1.21.0-beta.0 is out. New features include immutable RGW pool references, object bucket printer columns, and TLS support for Prometheus metrics.
Rook v1.21.0-beta.0 is now available. This release brings several improvements: CephObjectStoreUser gains placement and storage class configuration, RGW zone pools are now immutable to prevent accidental changes, Prometheus metrics support TLS, and object bucket CRDs display better information with kubectl. Additional lifecycle event support and security improvements included.