Commit Graph
3892 Commits
Author SHA1 Message Date
Santosh c9b4e2d60b rgw: fix status info when http is disabled
When http is disabled, the spec.status.info.insecure will keep on
showing the insecure endpoint. This PR makes sure that the
spec.status.info.insecure is empty when http is disabled

Signed-off-by: Santosh <sapillai@redhat.com>
(cherry picked from commit 6b9b0231b7)
2026-02-12 15:48:38 +00:00
Joshua Hoblitt 0e25b2089f object: add ObjectStoreUserSpec.OpMask field
Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
(cherry picked from commit 3ef0c90ef8)
2026-02-11 17:11:07 +00:00
subham rai 7be1e02dca Merge pull request #17062 from rook/mergify/bp/release-1.19/pr-16584
exporter: add log collector for ceph exporter pod (backport #16584)
2026-02-11 11:34:05 +05:30
subhamkrai 3a83cbbe71 exporter: add log collector for ceph exporter pod
similar to other ceph pods like osd,mon,mgr,mirror
pod this commit add log collector container to the
main exporter pod to rotate the logs of exporter pod.

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit 201f6ae104)
2026-02-10 15:52:04 +00:00
Praveen M 642fb754db csi: update ceph-csi image to 3.16.1
Signed-off-by: Praveen M <m.praveen@ibm.com>
(cherry picked from commit 1ad4c04f14)
2026-02-10 15:40:42 +00:00
subham rai ceca56d37a Merge pull request #17055 from rook/mergify/bp/release-1.19/pr-16963
build(deps): bump sigs.k8s.io/controller-runtime from 0.22.4 to 0.23.0 in the k8s-dependencies group (backport #16963)
2026-02-10 16:24:51 +05:30
subhamkrai 334bc5a1fb test: fix unit test code to remove extra comma
this commit fix regression comming from another pr
which was merged and since github was down ci were
not running.

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit f98dd9f9f0)
2026-02-10 13:51:47 +05:30
subhamkrai 6c3759322f build: update deprecated api GetEventRecorderFor
with controller runtime latest version vO.23.0, golangci lint
is complaining about deprecated api deprecated.
This commit updates the api and adds the requried rbacs

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit 08344f39f6)
2026-02-09 19:53:23 +00:00
Blaine Gardner cba8cefabb osd: in cephx key init, don't overwrite key on failure
Previously, if the OSD cephx-keyring-update init container couldn't
contact the mons, the output redirect would overwrite the on-disk
keyring file with no text, removing the on-disk keyring.

Modify the init container to only overwrite the keyring file when the
ceph command to get the latest key suceeds, to avoid removing the
on-disk key.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit d69ffdfd2c)
2026-02-09 19:22:49 +00:00
Jan Breitkopf 1665c96eb0 operator: fix OSD info
This fixes OSD info being incomplete when a sidecar container is first
in the .spec.Template.Spec.Containers list.
I added a small helper function to find a container named "osd" instead
of always assuming the first one.

Signed-off-by: Jan Breitkopf <jan.breitkopf@prorocketeers.com>
(cherry picked from commit 1ff6f70311)
2026-02-05 19:55:16 +00:00
dependabot[bot] 06bb7a5abe 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.34.2` | `0.34.3` |
| [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | `0.34.2` | `0.34.3` |
| [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) | `0.34.2` | `0.34.3` |
| [k8s.io/cli-runtime](https://github.com/kubernetes/cli-runtime) | `0.34.2` | `0.34.3` |
| [k8s.io/client-go](https://github.com/kubernetes/client-go) | `0.34.2` | `0.34.3` |
| [k8s.io/cloud-provider](https://github.com/kubernetes/cloud-provider) | `0.34.2` | `0.34.3` |

Updates `k8s.io/api` from 0.34.2 to 0.34.3
- [Commits](https://github.com/kubernetes/api/compare/v0.34.2...v0.34.3)

Updates `k8s.io/apiextensions-apiserver` from 0.34.2 to 0.34.3
- [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases)
- [Commits](https://github.com/kubernetes/apiextensions-apiserver/compare/v0.34.2...v0.34.3)

Updates `k8s.io/apimachinery` from 0.34.2 to 0.34.3
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.34.2...v0.34.3)

Updates `k8s.io/cli-runtime` from 0.34.2 to 0.34.3
- [Commits](https://github.com/kubernetes/cli-runtime/compare/v0.34.2...v0.34.3)

Updates `k8s.io/client-go` from 0.34.2 to 0.34.3
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.34.2...v0.34.3)

Updates `k8s.io/cloud-provider` from 0.34.2 to 0.34.3
- [Commits](https://github.com/kubernetes/cloud-provider/compare/v0.34.2...v0.34.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 3c51e808f2)
2026-02-05 11:33:57 -07:00
Travis Nielsen bc424790c8 Merge pull request #17026 from rook/mergify/bp/release-1.19/pr-16922
csi: remove automated node fencing code (backport #16922)
2026-02-05 11:28:49 -07:00
subhamkrai 617abc0202 csi: remove rbd wording from node loss doc
since ceph-csi driver now handles both rbd and cephfs
volume node loss case, let's remove rbd specific
wording from the node loss doc in rook.

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit ae33d23053)
2026-02-05 10:54:01 -07:00
Santosh 0907016010 osd: fix update OSDs logic for cancelled context
`updateExistingOSDs` should not wait and retry if the golang context got
cancelled. Else it would keep on retrying for 20 minutes before
exciting.

Signed-off-by: Santosh <sapillai@redhat.com>
(cherry picked from commit 33046734b3)
2026-02-05 15:50:44 +00:00
subhamkrai 617a347d97 csi: remove automated node fencing code
since node fencing is disabled in rook for sometime
and this feature is implemented in csi. So, this
commits remove obsolete code related to node loss

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit 20f350a71a)

# Conflicts:
#	pkg/operator/ceph/cluster/watcher_test.go
2026-02-05 14:47:26 +00:00
Madhu Rajanna 5dd7efeec4 csi: run csi controller plugin on host network
When CSI_ENABLE_HOST_NETWORK is set run the
csi controller plugin pods on the host network

closes: #16960

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit 4416b5ce9d)
2026-02-05 06:21:54 +00:00
Joshua Hoblitt a87105c364 nfs: add CephNFS.spec.server.{image,imagePullPolicy} fields
Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
(cherry picked from commit 3a15255583)
2026-01-29 20:47:53 +00:00
Blaine Gardner 21dccaf7dd rgw: update ca bundle mount perms to read-all
Update the CA bundle volume mount permissions to read-all (o444). RGW
runs as 'ceph', but the volume mount defaults to 'root'. o444 ensures
the RGW can read the bundle.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit 5e3f7f8bc0)
2026-01-26 18:23:11 +00:00
Travis Nielsen ea7911e9ac mon: change do not reconcile to be more granular
The do-not-reconcile label on the mon deployments was
causing the mon reconcile to be skipped for all mons,
even if the label was only on a single mon. Now, the
skipping of reconcile will only be scoped to a single
mon.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit d315d0ce46)
2026-01-21 15:15:42 +00:00
Oded Viner 8e1122ecfa nvmeof: add nvme-of gateway crd support
adds CephNVMeOFGateway crd for managing ceph nvme-of gateways.
supports configurable instances, placement, resources,
and networking options.

Signed-off-by: Oded Viner <oviner@redhat.com>
(cherry picked from commit 88a9bf5c7f)
2026-01-20 15:39:32 +00:00
subham rai ec7572dfcb Merge pull request #16930 from rook/mergify/bp/release-1.19/pr-16929
csi: update csi-addons to v0.14.0 (backport #16929)
2026-01-19 13:32:19 +05:30
Sunnatillo a1f1a627d9 object: use ceph version aware CA bundle handling for RGW
Add ceph version check to determine CA bundle configuration method.
Ceph Tentacle+ supports CURL_CA_BUNDLE environment variable, while older
versions require system CA trust update via init container.

Signed-off-by: Sunnatillo <sunnat.samadov@est.tech>
(cherry picked from commit a97233102d)
2026-01-16 14:45:37 +00:00
Sunnatillo 74dde152d5 object: simplify passing SSL certificate to RGW pod via CURL_CA_BUNDLE var
This mounts custom CA bundle directly to the RGW container at
/etc/ceph/rgw-ca-bundle/ and CURL_CA_BUNDLE points to the certificate
file. Ceph changes regarding CURL_CA_BUNDLE variable is in this PR:
https://github.com/ceph/ceph/pull/44283

This change simplifies the CA bundle handling by:
- Removing the update-ca-trust init container and related volumes
- Mounting the CA bundle secret directly to the RGW pod

Signed-off-by: Sunnatillo <sunnat.samadov@est.tech>
(cherry picked from commit 0189e2fd9a)
2026-01-16 14:45:36 +00:00
Praveen M 46fb6bba8b csi: update csi-addons to v0.14.0
Signed-off-by: Praveen M <m.praveen@ibm.com>
(cherry picked from commit 8ebf07bbfe)
2026-01-16 14:37:28 +00:00
Praveen M ca5430a7d2 csi: update external sidecar images
Below sidecars are updated with latest available versions

csi-attacher: v4.10.0
csi-snapshotter: v8.4.0
csi-resizer: v2.0.0
csi-provisioner: v6.0.0
csi-node-driver-registrar: v2.15.0

Signed-off-by: Praveen M <m.praveen@ibm.com>
(cherry picked from commit 31c7592d03)
2026-01-14 16:00:54 +00:00
Praveen M 24df80d7b1 csi: update ceph-csi image to 3.16.0
Signed-off-by: Praveen M <m.praveen@ibm.com>
(cherry picked from commit e30d1f7649)
2026-01-14 16:00:53 +00:00
Travis Nielsen 26fc46789f csi: disable read affinity for ceph v20.2.0
Read affinity in Ceph v20.2.0 can cause corruption.
Disable this feature for this version of Ceph to
avoid hitting any corruption in this case. When the next
patch release is out for tentacle, this issue will be
resolved and when upgrading to it, read affinity would
automatically be re-enabled if needed.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit 76e9c04b36)
2026-01-12 21:24:38 +00:00
Oded Viner 0e9cd8e5ae core: allow skipping cephcluster reconcile via do-not-reconcile label
add support for ceph.rook.io/do-not-reconcile on cephcluster crs
skip reconcile early and emit a normal reconcile-skipped event
avoid reloadmanager on updates for labeled cephclusters
add unit test for skip behavior

Signed-off-by: Oded Viner <oviner@redhat.com>
(cherry picked from commit 5be726b386)
2026-01-09 19:07:27 +00:00
Travis Nielsen 743cad7acd osd: always mount udev during cleanup
The udev is required for cleanup in both host-based clusters
and pvc-based clusters since the tentacle release.
The cleanup jobs were failing in pvc-based clusters
with tentacle where we skipped adding the udev mount.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit dfa1a35ddf)
2026-01-09 09:12:40 +00:00
Jongwoo Han 33ff847ec9 core: replace custom contains() with slices.Contains()
Signed-off-by: Jongwoo Han <jongwooo.han@gmail.com>
(cherry picked from commit d59b4dcb84)
2026-01-05 05:02:19 +00:00
subhamkrai 503890d927 csi: add fix to support multiple fs mount option
previously, if multiple mount option was passed it was
handing it wrong. For example,
```
ms_mode=prefer-secure,recover_session=clean
```
 was treated as
```
ms_mode: prefer-secure,recover_sessio
```

With current fix it handles it correctly. Example,
```
ms_mode: prefer-secure,
recover_session=clean,
```

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit acf9ad8995)
2025-12-17 14:52:09 +00:00
Martin Rowe 6f1f90e719 operator: watch cephConfigFromSecret changes
Add a resource watch to reconcile clusters when any referenced Secrets
in cephConfigFromSecret are updated. This matches the behaviour of
reconciling clusters when cephConfig changes. Without this change, if a
Secret that is referenced by cephConfigFromSecret is updated, then the
cluster is not immediately updated, so the cluster state will not match
the configuration until something else triggers a reconcile.

Resolves #16371

Signed-off-by: Martin Rowe <martin.p.rowe@gmail.com>
(cherry picked from commit 816c67847d)
2025-12-09 16:55:35 +00:00
parth-gr a077dbb6c1 external: fix endpoint slice type for ipv6 clusters
in endpoint slice for the mgr and rgw service
it was harcoded to use the ipv4,
now dynamically assign the type based on the endpoint
ip adrress type

Signed-off-by: parth-gr <partharora1010@gmail.com>
(cherry picked from commit 0a3d9b8517)
2025-12-08 14:02:01 +00:00
Travis Nielsen 023608e6fd core: enhance logging with namespaced names
For all of the controllers besides the cluster controller,
the logging now includes the namespaced name of the resource
that is being reconciled. This will help with log troubleshooting
to help analyze logs consistently for the resource being
reconciled.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2025-12-04 12:00:42 -07:00
subhamkrai 304cdc8c83 core: remove support for reef v18 in Rook v1.19
For Rook v1.19,removing support for Ceph Reef. It is at end of life.
Users on Reef can continue to use Rook v1.18.x or older.
The latest two Ceph versions Squid and Tentacle are supported.

Signed-off-by: subhamkrai <srai@redhat.com>
2025-12-04 13:11:35 +05:30
Travis Nielsen f08c5cea27 Merge pull request #16750 from subhamkrai/ceph-tentacle
core: make Ceph Tentacle default version in test clusters
2025-12-01 10:51:16 -07:00
subhamkrai ae41dafb0b core: rename ceph urchin to umbrella
Renaming urchin to umbrella as ceph name for
v21 has been changed from urchin to umbrella.

Signed-off-by: subhamkrai <srai@redhat.com>
2025-12-01 13:41:50 +05:30
Travis Nielsen ac1fa3a4c3 core: shorten the logger names
The logger names are seen on each line of logging. As
long as they are unique, they really don't need to be
long and descriptive, so let's make them a bit more
concise, and independent from controller names.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2025-11-21 13:12:56 -07:00
Travis Nielsen 93adc5dd6b core: include namespace more consistently in logging
When writing to the operator log, where possible
the namespace of the resource on which the operator
is working will be logged as a standard prefix
to more easily troubleshoot what resource is being reconciled

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2025-11-20 15:49:43 -07:00
Travis Nielsen 8782e9183d Merge pull request #16719 from travisn/concurrent-reconcile
cluster: Support concurrent reconcile when there are multiple cephcluster CRs
2025-11-19 11:34:00 -07:00
Travis Nielsen a1c87c6188 mds: remove mds standby if disabled
The activeStandby property was being ignored when deciding
how many mds daemons to start. 2x the active count of mds
daemons were always being created. If the standby is not
desired, the standby can be removed, and it was unexpected
that it was not removed.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2025-11-19 10:55:12 -07:00
Steve Wills 604226770e csi: un-reverse resources
Correct the names used for controller plugin and node plugin resource
setting

Signed-off-by: Steve Wills <steve@mouf.net>
2025-11-17 17:27:11 -05:00
Travis Nielsen 83047a17d1 operator: fix concurrency issues in the cluster controller
Use a sync map for the clusterMap in the cluster controller
and fix other issues to allow for concurrent cluster
reconcile.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2025-11-17 11:46:33 -07:00
Travis Nielsen b1ce9f226e operator: allow setting concurrent cluster reconciles
The cephcluster controller allows setting concurrent reconciles
with a setting in the operator configmap.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2025-11-17 11:46:33 -07:00
Travis Nielsen 9a79a48f9e Merge pull request #16661 from subhamkrai/fix-rns-race-condition
namespace: add retryOnConflict when updating status
2025-11-13 10:38:17 -07:00
Travis Nielsen c7dc2439f8 Merge pull request #16505 from elias-dbx/cleanup_preprovision_jobs
osd: cleanup orphaned osd provision jobs
2025-11-13 09:44:59 -07:00
subhamkrai e9d5efb3e1 subvolumegroup: add retry when updating status
currently, in SVG crd while updating status we don't have retryOnConflicts
similar to other CRD, this commit add the retryOnConflicts.

Signed-off-by: subhamkrai <srai@redhat.com>
2025-11-13 15:51:39 +05:30
Elias Carter 82a7edc268 osd: cleanup orphaned osd provision jobs
In a running cluster, I noticed that a node which was provisioning was removed from k8s
and the following log was emitted by the rook operator:
```
op-osd: cleaning up dangling OSD prepare status configmap "rook-ceph-osd-xxx-status"
```

But the osd provisioning job was still trying to run on the removed node:
```
rook-ceph-osd-prepare-xxx         Running    0/1           4d22h      4d22h
```

This PR implements a mechanism to remove any osd provision jobs which are bound to a
node which no longer exists within kubernetes. I added a test for this cleanup as
there wasn't a pre-existing test.

Signed-off-by: Elias Carter <elias@dropbox.com>
2025-11-12 12:35:49 -08:00
Travis Nielsen 23fd211544 Merge pull request #16675 from parth-gr/deviceclass-prepare
osd: add device class label to the osd prepare pods
2025-11-12 11:16:08 -07:00
Travis Nielsen d58bebd256 Merge pull request #16705 from parth-gr/fix-pool-panic1
pool: retry if pool status is empty in rn controller
2025-11-12 11:13:51 -07:00