Commit Graph
5156 Commits
Author SHA1 Message Date
Joshua Hoblitt cc05619dd8 core: add cluster label to all servicemonitor scraped metrics
Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-05-14 16:02:34 -07:00
Travis Nielsen 3775bf206a Merge pull request #17407 from cobaltcore-dev/osd-deviceclass-minimal
osd: honor per-device deviceClass in raw-mode prepare and reconcile
2026-05-14 12:04:16 -06:00
Travis Nielsen 52b959e22e Merge pull request #17421 from subhamkrai/add-floating-mon-container-resources
mon: add resource request for mon drbd containers
2026-05-14 11:15:25 -06:00
Travis Nielsen 2ef74f3189 Merge pull request #17447 from subhamkrai/add-stipe-unit-support
pool: add stripe_unit with erasure-code-profile set
2026-05-14 10:38:06 -06:00
subhamkrai 9fb0582dd6 pool: add stripe_unit with erasure-code-profile set
this commit adds flag stripe_unit for the command
ceph osd erasure-code-profile set [flags]. This key
increase perfomance for ec pool. The default value
is 4kib/4096 bytes.

Signed-off-by: subhamkrai <srai@redhat.com>
2026-05-14 21:39:15 +05:30
Prabhala Tara Aasrita af03615e97 mon: add watcher for DRBD ConfigMap in TNF deployments
Added a watcher in the cluster controller to detect changes to the DRBD ConfigMap used by floating monitors in TNF deployments. When the ConfigMap is updated, the watcher triggers a CephCluster reconciliation to ensure configuration changes are applied.

Fixes #17338

Signed-off-by: Prabhala Tara Aasrita <taraasrita@ibm.com>
2026-05-14 18:15:32 +05:30
Blaine Gardner 5920f47d58 Merge pull request #17468 from OdedViner/aws_sdk_2_notification
object: migrate notification package to aws sdk v2
2026-05-13 11:35:46 -06:00
Oded Viner f5df592106 object: migrate notification package to aws sdk v2
migrate the notification provisioner and s3ext packages from
aws sdk v1 to v2. the custom DeleteBucketNotification call is
rewritten to manually build and sign the HTTP request using the
v2 v4 signer, since this ceph-specific API has no sdk equivalent.

also fix t.Skipped() -> t.Skip() in notification integration test.

Signed-off-by: Oded Viner <oviner@redhat.com>
2026-05-13 19:06:52 +03:00
Travis Nielsen 2898acddfc Merge pull request #17494 from immanuwell/docs-fix-duplicated-words
docs: fix duplicated words in docs and comments
2026-05-12 12:41:18 -10:00
Travis Nielsen 4cf71d9a27 Merge pull request #17472 from texasich/codex-rook-17405
mgr: retry self-signed cert creation on wrapped context deadline errors
2026-05-12 12:37:11 -10:00
Parth Arora d9d6461bf2 Merge pull request #17502 from sp98/fix-CleanupUnusedCrushRules
core: skip crush rule cleanup if no pools exist yet
2026-05-12 19:53:46 +05:30
Santosh 1c1d6cf261 core: skip crush rule cleanup if no pools exist yet
During the initial cluster setup, CleanUnusedCrushRules() runs after MGR
startup but before any pools are created (if user does not create the
.mgr pool along with the cephCluster manifest). It deletes the default
replicated_pool since no pool references it.

This leaves the cluster in a state if Zero crush rules. When the MGR
tries to start the device_health_metris during this window, thne it
fails to find the crush rule and crashes.

Skip the cleanup when no pools exists yet, since there is nothing
meaninful to cleanup.

Signed-off-by: Santosh <sapillai@redhat.com>
2026-05-12 11:45:04 +05:30
Travis Nielsen 0dc9191237 Merge pull request #17503 from OdedViner/test_nvme_ocp
nvmeof: add sys_admin to scc allowedcapabilities for gateway pods
2026-05-11 12:03:33 -10:00
Artem Torubarov b41d63788d osd: honor per-device deviceClass in raw-mode prepare and reconcile
Fixes #16834 and #17384. Per-OSD CR deviceClass was ignored in
osd prepare job when reporting the osd config back to the operator,
and in the operator's reconcile override.
Fixed by resolving the per-device class from the CR devices list
in GetCephVolumeRawOSDs and in makeDeployment.

Signed-off-by: Artem Torubarov <artem.torubarov@sap.com>
2026-05-11 15:37:16 +02:00
Oded Viner f8c1c99cb4 nvmeof: add sys_admin to scc allowedcapabilities for gateway pods
the nvmeof gateway requires privileged containers with
sys_admin capability. the rook-ceph scc only allowed mknod,
causing pod creation to fail on openshift with:
"unable to validate against any security context constraint"

add sys_admin to allowedcapabilities in the helm chart sccs
and the go scc helper. this does not affect other daemons
(osd, rgw, mgr, mon) since they do not request sys_admin.

the operator-openshift.yaml example already includes
sys_admin, so this aligns the helm charts to match.

Signed-off-by: Oded Viner <oviner@redhat.com>
2026-05-11 13:47:12 +03:00
Oded Viner 20fa0128f5 build: bump golang.org/x/net to fix govulncheck ci failure
bump golang.org/x/net from v0.52.0 to latest patched version
to resolve known http2 vulnerability flagged by govulncheck.

the vulnerable call path is:
  object.debugHTTPClient.Do
  -> httputil.DumpRequestOut
  -> http2.Transport.RoundTrip

this is a pre-existing issue blocking ci on all pull requests.

Signed-off-by: Oded Viner <oviner@redhat.com>
2026-05-10 17:35:52 +03:00
immanuwell c3a9f5fdd9 docs: fix duplicated words in docs and comments
Clean up duplicated words and a typo in object storage docs, comments, and user-facing messages.

Signed-off-by: immanuwell <pchpr.00@list.ru>
2026-05-09 12:50:31 +04:00
Santosh Pillai 0100ecaa9b Merge pull request #17484 from taraasrita10/fixing-mon-failover
mon: check node existence on every health check iteration
2026-05-07 11:33:12 +05:30
subhamkrai 01ef98c1e3 rgw: add option for tls and cipher in objectstore
this commit add option in the ceph objecstore CR
to configure TLS profile and TLS ciphersuite for
rgw beast.

Signed-off-by: subhamkrai <srai@redhat.com>
2026-05-06 21:02:30 +05:30
Prabhala Tara Aasrita aeae61e5be mon: check node existence on every health check iteration
Previously, shouldFailoverMonImmediately() was called only when a mon first went out of quorum. If the node gets deleted after the timeout starts, it does not get detected until the timeout expires. Moved the call outside the timeout initialization block so it runs on every health check iteration and detects node deletion immediately.

Fixes #15953

Signed-off-by: Prabhala Tara Aasrita <taraasrita@ibm.com>
2026-05-06 20:04:05 +05:30
texasich beb6c0f373 mgr: retry self-signed cert creation on wrapped deadline errors
Signed-off-by: texasich <texasich@users.noreply.github.com>
2026-05-01 11:31:01 -05:00
Santosh Pillai f9c9a9b1b6 Merge pull request #17453 from sp98/fix-osd-encrypted-label-values
osd: detect encryption label from dmcrypt path
2026-04-30 13:37:51 +05:30
subhamkrai 4eefad42e8 csi: move csi management to admin
Going forward, admin will manage the csi operator
CR's and rook will only manage Ceph Connection cr
and client Profile cr.

The old csi driver is completely removed from Rook
and can no longer be used starting in Rook v1.20.

The upgrade guide will contain the needed transition steps
for managing the csi operator settings.

Signed-off-by: subhamkrai <srai@redhat.com>
2026-04-29 14:24:26 -06:00
Travis Nielsen 07fce20daf Merge pull request #17451 from rohan47/exporterDnsPolicy
exporter: set correct DNSPolicy for rook-ceph-exporter
2026-04-29 12:11:23 -06:00
Santosh fc9e3b54f3 osd: detect encryption label from dmcrypt path
Detect OSD encryption from the dmcrypt block path in `getOSDInfo` as a
fallback when the `encrypted` label is missing on pre-label deployments.

Include `osd.Encrypted` in the label check in `makeDeployment` so the
label reflects the actual OSD state on upgrade.

Fixes a bug where upgrading to a Rook version with the `encrypted` label
would set the label to `false` on already-encrypted OSDs, because the
label didn't exist yet and `getOSDInfo` defaulted to `false`.

Signed-off-by: Santosh <sapillai@redhat.com>
2026-04-29 19:18:05 +05:30
Oded Viner 5ba3e1a2c0 object: migrate bucket provisioner to aws sdk v2
migrate bucket provisioner from aws sdk v1 to v2.

replace awserr.Error type assertions with smithy.APIError
using errors.As for v2-style error handling.

switch setBucketPolicy and setBucketLifecycle to use
the v2 s3 client (ClientV2) directly with context.

replace v1 s3 types (BucketLifecycleConfiguration,
GetBucketLifecycleConfigurationOutput) with v2 equivalents
from s3types and s3v2 packages.

add cmpopts.IgnoreUnexported to cmp.Diff calls to handle
unexported noSmithyDocumentSerde fields in v2 sdk types.

add nil guard on lifecycle output before accessing rules
to prevent nil dereference when get returns an error.

depends on #17414

Signed-off-by: Oded Viner <oviner@redhat.com>
2026-04-29 16:34:22 +03:00
Rohan Gupta 17873d3af2 exporter: set correct DNSPolicy for rook-ceph-exporter
rook-ceph-exporter should use DNSPolicy ClusterFirstWithHostNet when
hostNetwork is enabled

Signed-off-by: Rohan Gupta <rohgupta@redhat.com>
2026-04-29 15:07:21 +05:30
subhamkrai d88e287726 mon: add resource request for mon drbd containers
adding missing resource request for mon drbd containers
log-collector and shut-down-app and update the unit test
to validate.

Signed-off-by: subhamkrai <srai@redhat.com>
2026-04-28 19:13:44 +05:30
Joshua Hoblitt 03789475f9 Merge pull request #17414 from OdedViner/policy_aws_sdk_v2
object: migrate bucket policy methods to aws sdk v2
2026-04-28 07:45:36 -04:00
Travis Nielsen d256138023 Merge pull request #17432 from OdedViner/nvmeof_scc_upstream
security: grant scc to rook-ceph-nvmeof service account
2026-04-27 09:49:47 -06:00
Santosh Pillai 8cf245059c Merge pull request #17342 from OdedViner/aws_v2_upgrade_obj
object: migrate s3agent object methods to aws sdk v2
2026-04-27 21:18:32 +05:30
Oded Viner 7f3e2ace27 security: grant scc to rook-ceph-nvmeof service account
the rook-ceph-nvmeof service account is not listed in the
securitycontextconstraints users, causing cephnvmeofgateway
pods to fail on openshift. add the service account to the
scc in the helm charts, go scc builder, and test namespace
substitution.

Signed-off-by: Oded Viner <oviner@redhat.com>
2026-04-27 16:28:15 +03:00
Asish Kumar 24a35e4e74 pool: clean up unused crush rules
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>
2026-04-24 23:57:40 +05:30
Santosh Pillai 8d34eea8a9 Merge pull request #17420 from sp98/remove-new-line
core:remove newlines from liveness probe scripts
2026-04-24 19:14:08 +05:30
Santosh 925acb3e92 core: remove newlines from liveness probe scripts
Strip unnecessary leading and trailing newlines from osdLivenessProbeScript and livenessProbeScript raw string literals in spec.go

Signed-off-by: Santosh <sapillai@redhat.com>
2026-04-24 14:24:51 +05:30
Santosh Pillai b87c434ff9 Merge pull request #17411 from taraasrita10/fix-osdkms-log-error
osd: fix KMS log error format specifier
2026-04-24 14:09:17 +05:30
Travis Nielsen 0160ba5bd0 Merge pull request #17288 from lumir-sliva/relax-stretch-crush-weight-check
mon: relax balanced CRUSH weight check for stretch mode
2026-04-23 12:05:12 -06:00
Oded Viner 88e0047d9b object: migrate bucket policy methods to aws sdk v2
migrate PutBucketPolicy and GetBucketPolicy to use aws sdk v2
client.

Signed-off-by: Oded Viner <oviner@redhat.com>
2026-04-23 18:54:48 +03:00
Oded Viner 2cb714dabd object: migrate s3agent object methods to aws sdk v2
migrate PutObjectInBucket, GetObjectInBucket, and
DeleteObjectInBucket to use aws sdk v2 client.
replace v1 awserr error handling in DeleteObjectInBucket
with v2 typed errors (errors.As).
remove unused v1 awserr import.

Signed-off-by: Oded Viner <oviner@redhat.com>
2026-04-23 17:40:15 +03:00
Prabhala Tara Aasrita 85ee8631cf osd: fix KMS log error format specifier
During OSD provisioning, the KMS error log incorrectly uses logger.Error() instead of logger.Errorf(), causing the format specifier %q to appear in the logs. Changed logger.Error to logger.Errorf to fix the same.

Signed-off-by: Prabhala Tara Aasrita <taraasrita@ibm.com>
2026-04-23 16:19:33 +05:30
Lumir Sliva 27f95f2feb mon: relax balanced CRUSH weight check for stretch mode
Ceph relaxed the stretch mode CRUSH weight check in ceph/ceph#66580 to
allow weights within 10 percent of each other. This change is available
in Ceph Umbrella and was backported to tentacle v20.2.2 via ceph/ceph
number 67790. The squid backport is still pending.

Signed-off-by: Lumir Sliva <61183145+lumir-sliva@users.noreply.github.com>
2026-04-22 19:14:48 +02:00
Parth Arora c250b47c4f Merge pull request #17382 from taraasrita10/setenv_rook_unreachablenode
mon: fix floating mon validation in TNF deployments
2026-04-22 21:06:39 +05:30
Prabhala Tara Aasrita 8e205b194c mon: fix floating mon validation in TNF deployments
The floating mon in a TNF cluster is designed to share a node with a pinned mon. Fixed the pre-cluster start evaluation logic to allow the same when allowMultiplePerNode is set to false.

Signed-off-by: Prabhala Tara Aasrita <taraasrita@ibm.com>
2026-04-21 18:45:17 +05:30
Santosh Pillai 59ce48ae88 Merge pull request #17228 from ormandj/fix/osd-device-class-reprovision
osd: fix CRUSH device class not applied during OSD re-discovery
2026-04-21 17:50:39 +05:30
Travis Nielsen 1320861c3d Merge pull request #17373 from degorenko/fix-mds-standby-wanted
mds: fix incorrect behaviour for CephFS when no active standby
2026-04-20 14:15:41 -06:00
Travis Nielsen e80e050c23 Merge pull request #17376 from elias-dbx/fix_pg_health_regex_docs
doc: fix out of date references to default PgHealthyRegex
2026-04-20 11:51:53 -06:00
Elias Carter 5a065948e2 doc: fix out of date references to default PgHealthyRegex
Signed-off-by: Elias Carter <elias@dropbox.com>
2026-04-20 09:39:25 -07:00
dependabot[bot] 7c68517cc7 build(deps): bump the k8s-dependencies group with 6 updates
Bumps the k8s-dependencies group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.35.3` | `0.35.4` |
| [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | `0.35.3` | `0.35.4` |
| [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) | `0.35.3` | `0.35.4` |
| [k8s.io/cli-runtime](https://github.com/kubernetes/cli-runtime) | `0.35.3` | `0.35.4` |
| [k8s.io/client-go](https://github.com/kubernetes/client-go) | `0.35.3` | `0.35.4` |
| [k8s.io/cloud-provider](https://github.com/kubernetes/cloud-provider) | `0.35.3` | `0.35.4` |

Updates `k8s.io/api` from 0.35.3 to 0.35.4
- [Commits](https://github.com/kubernetes/api/compare/v0.35.3...v0.35.4)

Updates `k8s.io/apiextensions-apiserver` from 0.35.3 to 0.35.4
- [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases)
- [Commits](https://github.com/kubernetes/apiextensions-apiserver/compare/v0.35.3...v0.35.4)

Updates `k8s.io/apimachinery` from 0.35.3 to 0.35.4
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.3...v0.35.4)

Updates `k8s.io/cli-runtime` from 0.35.3 to 0.35.4
- [Commits](https://github.com/kubernetes/cli-runtime/compare/v0.35.3...v0.35.4)

Updates `k8s.io/client-go` from 0.35.3 to 0.35.4
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.3...v0.35.4)

Updates `k8s.io/cloud-provider` from 0.35.3 to 0.35.4
- [Commits](https://github.com/kubernetes/cloud-provider/compare/v0.35.3...v0.35.4)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.35.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: k8s-dependencies
- dependency-name: k8s.io/apiextensions-apiserver
  dependency-version: 0.35.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: k8s-dependencies
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: k8s-dependencies
- dependency-name: k8s.io/cli-runtime
  dependency-version: 0.35.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: k8s-dependencies
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: k8s-dependencies
- dependency-name: k8s.io/cloud-provider
  dependency-version: 0.35.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: k8s-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: subhamkrai <srai@redhat.com>
2026-04-20 21:01:58 +05:30
Denis Egorenko b3ffac9e0d mds: fix incorrect behaviour for CephFS health state when no active standby
Set expected standby mds daemons, when changing activeStandby mds parameter.

Resolves #17372

Signed-Off-By: Denis Egorenko <degorenko@mirantis.com>
2026-04-20 13:09:41 +04:00
Travis Nielsen 80b50969b2 mon: prevent mon drains more reliably when mons are down
The mon PDB was previously only being adjusted
during mon failover, where the maxunavailable was set to 0
before failover, then reset to 1 after failover. This allowed
for a race condition where one mon had been drained and is
not fully back in quorum before the next mon is allowed to drain.
This is now prevented by disallowing drains until a mon
is fully back in quorum. Anytime a mon falls out of quorum,
the mon pdb will be adjusted to prevent further drains
from causing a mon quorum outage.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2026-04-17 10:35:00 -06:00