Commit Graph
4830 Commits
Author SHA1 Message Date
Blaine Gardner 2fd9c9a88c core: finalize CephCluster CephX status handling
Cleanup up overall usage of CephX statuses in CephCluster.

Convert all CephX statuses to non-pointer types. There is no specific
need for pointer types, and keeping these as non-pointers means there is
not a risk of nil pointer exceptions in all the various Rook controllers
for upgraded clusters.

Move initialization of CephCluster CephX status items to
`preMonStartupActions()`. This helps resolve 2 issues:

1. 'Uninitialized' state was being set for external CephClusters where
   CephX statuses are not relevant.
2. 'Uninitialized' state was being set for upgraded clusters whose key
   status cannot be determined.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
2025-08-18 14:53:08 -06:00
Travis Nielsen c23754fc11 Merge pull request #16329 from degorenko/fix-pool-remove
pool: fix cephblockpool remove when related pool is already removed
2025-08-15 13:45:34 -06:00
Denis Egorenko c9e0f89a8b pool: fix cephblockpool remove when related pool is already removed from cluster
When removeing CephBlockPool check first that related ceph pool is exist in cluster,
since it may be manually removed by mistake.

Related-Issue: #16328
Signed-off-by: Denis Egorenko <degorenko@mirantis.com>
2025-08-15 22:59:34 +04:00
Travis Nielsen 36a47ac01a Merge pull request #16176 from sp98/mon-key-rotation
mon: rotate cephx key
2025-08-15 11:06:31 -06:00
Madhu Rajanna a71cc27b72 core: implement client name override
There is a field in the CR spec to override
the name and the feature was not implement,
This commits adds the support to override the
cephclient name if ever required.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2025-08-15 09:50:32 -06:00
Madhu Rajanna 36c84aa43c core: skip Name validation
the CR cannot be created without a Name,
Removing the check as it never gets executed.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2025-08-15 09:42:16 -06:00
Travis Nielsen 892d43c3e8 Merge pull request #16306 from rook/dependabot/go_modules/github-dependencies-84ee9e4cad
build(deps): bump the github-dependencies group across 1 directory with 8 updates
2025-08-14 14:14:41 -06:00
Travis Nielsen d6b91b9409 Merge pull request #16275 from anshuman-agarwala/secret-removal
operator: Removed legacy secret deletion code in rbd
2025-08-14 14:06:34 -06:00
dependabot[bot] 6a75d578e7 build(deps): bump the github-dependencies group across 1 directory with 8 updates
Bumps the github-dependencies group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) | `1.55.7` | `1.55.8` |
| [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) | `1.30.0` | `1.31.0` |
| [github.com/aws/aws-sdk-go-v2/service/sns](https://github.com/aws/aws-sdk-go-v2) | `1.35.0` | `1.37.0` |
| [github.com/ceph/go-ceph](https://github.com/ceph/go-ceph) | `0.34.0` | `0.35.0` |
| [github.com/csi-addons/kubernetes-csi-addons](https://github.com/csi-addons/kubernetes-csi-addons) | `0.12.0` | `0.13.0` |
| [github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring](https://github.com/prometheus-operator/prometheus-operator) | `0.84.0` | `0.84.1` |
| [github.com/prometheus-operator/prometheus-operator/pkg/client](https://github.com/prometheus-operator/prometheus-operator) | `0.84.0` | `0.84.1` |

Updates `github.com/aws/aws-sdk-go` from 1.55.7 to 1.55.8
- [Release notes](https://github.com/aws/aws-sdk-go/releases)
- [Changelog](https://github.com/aws/aws-sdk-go/blob/main/CHANGELOG_PENDING.md)
- [Commits](https://github.com/aws/aws-sdk-go/compare/v1.55.7...v1.55.8)

Updates `github.com/aws/aws-sdk-go-v2/config` from 1.30.0 to 1.31.0
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.30.0...v1.31.0)

Updates `github.com/aws/aws-sdk-go-v2/credentials` from 1.18.0 to 1.18.4
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/config/v1.18.4/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.18.0...config/v1.18.4)

Updates `github.com/aws/aws-sdk-go-v2/service/sns` from 1.35.0 to 1.37.0
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.35.0...v1.37.0)

Updates `github.com/ceph/go-ceph` from 0.34.0 to 0.35.0
- [Release notes](https://github.com/ceph/go-ceph/releases)
- [Changelog](https://github.com/ceph/go-ceph/blob/master/docs/release-process.md)
- [Commits](https://github.com/ceph/go-ceph/compare/v0.34.0...v0.35.0)

Updates `github.com/csi-addons/kubernetes-csi-addons` from 0.12.0 to 0.13.0
- [Release notes](https://github.com/csi-addons/kubernetes-csi-addons/releases)
- [Changelog](https://github.com/csi-addons/kubernetes-csi-addons/blob/main/PendingReleaseNotes.md)
- [Commits](https://github.com/csi-addons/kubernetes-csi-addons/compare/v0.12.0...v0.13.0)

Updates `github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring` from 0.84.0 to 0.84.1
- [Release notes](https://github.com/prometheus-operator/prometheus-operator/releases)
- [Changelog](https://github.com/prometheus-operator/prometheus-operator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus-operator/prometheus-operator/compare/v0.84.0...v0.84.1)

Updates `github.com/prometheus-operator/prometheus-operator/pkg/client` from 0.84.0 to 0.84.1
- [Release notes](https://github.com/prometheus-operator/prometheus-operator/releases)
- [Changelog](https://github.com/prometheus-operator/prometheus-operator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus-operator/prometheus-operator/compare/v0.84.0...v0.84.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go
  dependency-version: 1.55.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-version: 1.31.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/credentials
  dependency-version: 1.18.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/sns
  dependency-version: 1.37.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-dependencies
- dependency-name: github.com/ceph/go-ceph
  dependency-version: 0.35.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-dependencies
- dependency-name: github.com/csi-addons/kubernetes-csi-addons
  dependency-version: 0.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-dependencies
- dependency-name: github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring
  dependency-version: 0.84.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
- dependency-name: github.com/prometheus-operator/prometheus-operator/pkg/client
  dependency-version: 0.84.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-14 13:27:45 -06:00
Santosh Pillai 5df485cbb3 Merge pull request #16293 from degorenko/fix-cleanup-job
operator: mount udev to cleanup job and disable udev sync
2025-08-14 18:39:24 +05:30
Santosh Pillai fe42fe102f mon: rotate keys
rotate mon daemon keys and update the cephx status for mons in the
cephcluster resource.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2025-08-14 11:16:39 +05:30
Oded Viner 7f0be04773 csi: remove inline panic handler from CreateDefaultClientProfile
remove inline defer that catches and logs panics since it is already handled by pr#16150

Signed-off-by: Oded Viner <oviner@redhat.com>
2025-08-13 19:01:32 +03:00
Travis Nielsen 47d01f8812 Merge pull request #16304 from Madhu-1/update-csi-op-0.4.0
csi: update the csi-operator API
2025-08-13 09:07:12 -06:00
Travis Nielsen 1deec3a396 Merge pull request #16290 from parth-gr/fix-mirror-status
rbdmirror: fix status check for rbd rn mirroring
2025-08-13 08:15:39 -06:00
parth-gr 11b3d7e16e rbdmirror: fix status check for rbd rn mirroring
if the blockpool mirroring is disabled and status check
is not removed, currently rn cr still watches for the status

Add a check if the pool or rados mirroring is disabled then dont
watch for status

Signed-off-by: parth-gr <partharora1010@gmail.com>
2025-08-13 13:33:05 +05:30
Madhu Rajanna 3d024ce3c7 csi: update the csi-operator API
updating the csi operator API version
to latest version.

Adding the cephFS and RBD controllerPublish
secret that are required for the fencing
operation that is supported by ceph-csi
with csi-operator.

Updated the storageclass to include the
secrets incase if user wants to override
the defaults in the clientProfile for
new PVC's.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2025-08-13 09:30:50 +02:00
Denis Egorenko 09622a8b8d operator: mount udev to cleanup job and disable udev sync
Mount /run/udev inside cluster cleanup jobs and disable udev sync
with DM_DISABLE_UDEV.

Related-Issue: rook#16292
Signed-off-by: Denis Egorenko <degorenko@mirantis.com>
2025-08-12 22:46:27 +04:00
Travis Nielsen 3ea967df70 Merge pull request #16294 from nixpanic/csi-addons/v0.13.0
csi: update Kubernetes CSI-Addons sidecar to version 0.13.0
2025-08-12 11:26:27 -06:00
subham rai c94f490997 Merge pull request #16288 from Madhu-1/fix-16175
csi: update cephfs user and key in secret
2025-08-12 21:34:35 +05:30
Niels de Vos 17d53ed16b csi: update Kubernetes CSI-Addons sidecar to version 0.13.0
Signed-off-by: Niels de Vos <ndevos@ibm.com>
2025-08-12 17:56:37 +02:00
subham rai 70f465745b Merge pull request #16272 from Madhu-1/fix-filepath
core: use filepath.Join instead of path.Json and add unit testing for cleanup functions
2025-08-12 14:59:40 +05:30
Madhu Rajanna cb89f351ed csi: update cephfs user and key in secret
cephCSI already deprecated the adminID and
adminKey keys in the secrets and to be backward
compatible it still supports the adminID and
adminKey but it logs the warning, updating the
secrets created by Rook to use userID and userKey
instead of adminID and adminKey.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2025-08-12 09:53:55 +02:00
Blaine Gardner 59ca78229d Merge pull request #16075 from sp98/mirror-key-rotation
rbd mirror peer key rotation
2025-08-11 10:54:20 -06:00
Santosh Pillai ee0b137d75 core: rotate rbd mirror peer key
rotate the client.rbd-mirror-peer key based on the cephxconfig.
Also update the cephxStatus in the cephcluster as well as the
mirrored cephblockpool.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2025-08-11 21:53:14 +05:30
Madhu Rajanna 1ff3f07ac5 csi: use cluster namespace for cephConn
CephConnection CR is created with the
kubernetes namespace name as its the
unique name in the entire cluster.
This PR removes unwanted input
parameters and adjust the namespace
name for the cephConnection CR.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2025-08-11 07:38:27 +02:00
Anshuman 79b24564ef operator: removed legacy secret deletion code in rbd
Signed-off-by: Anshuman <anshuman@ibm.com>
2025-08-08 21:56:06 +05:30
Blaine Gardner 517f519c23 Merge pull request #16227 from sp98/mirror-daemon-key-rotation
core: rotate mirror daemon keys
2025-08-08 09:45:48 -06:00
Madhu Rajanna 878603ba25 core: add unit testing for cleanup
Adding unit testing for cleanup
functions.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2025-08-08 12:55:23 +02:00
Madhu Rajanna 4501c86d9f core: use filepath instead of path
using filepath instead of path to
join the filepath as path is usually
used for URL not for files.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2025-08-08 12:46:25 +02:00
Santosh Pillai d0fbf6c424 core: rotate mirror daemon keys
rotate RBD mirror daemon keys, add secret resource version to the mirror
deployment and update the mirror resource status after the key is
rotated

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2025-08-08 10:23:49 +05:30
Travis Nielsen 134e27e353 csi: create cephconnection cr with cluster namespace name
The cephconnection CR expects to be created with the name of
the namespace where the cephcluster CR is found, so the CSI
driver can find the cluster when provisioning the volume.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2025-08-07 12:22:17 -06:00
Travis Nielsen 27e56cf44f Merge pull request #16249 from travisn/failover-mon-immediate
mon: Failover mon immediately if node not exist
2025-08-07 10:39:52 -06:00
Blaine Gardner 9be45d949b Merge pull request #16069 from OdedViner/default_realm
object: mark realm as default to avoid zone creation
2025-08-07 10:33:11 -06:00
Travis Nielsen f15e8912b6 Merge pull request #16260 from OdedViner/delete_csi_folders
core: cleanup csi-related folders from /var/lib/rook during uninstall
2025-08-07 10:23:02 -06:00
Travis Nielsen 8b4d3b19cf mon: failover mon immediately if node not exist
During mon failover, if a mon is assigned to a node
but the node does not exist, the mon should be failed
over immediately instead of waiting for a 10 or 20
minute timeout. If the node does not exist, the mon pod
will be in a pending state until the failover is finally
triggered, and no point in waiting that long if the
node is gone.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2025-08-07 10:06:57 -06:00
Oded Viner 87165cc6d1 core: cleanup csi-related folders from /var/lib/rook during uninstall
delete csi-related directories from /var/lib/rook that
match the suffix `.csi.ceph.com`.
these folders were used in earlier versions when rook managed
cephcsi directly. in later versions, logs and data are redirected
to /var/lib/cephcsi, but legacy paths may still exist and require
cleanup during uninstall.
this change improves cleanup completeness for odf 4.18 and earlier.

example of directories removed:
- /var/lib/rook/openshift-storage.cephfs.csi.ceph.com
- /var/lib/rook/openshift-storage.rbd.csi.ceph.com

Signed-off-by: Oded Viner <oviner@redhat.com>
2025-08-07 18:54:54 +03:00
Travis Nielsen 6ec3455796 Merge pull request #16244 from CL0Pinette/cross-namespace-data-source-feature-gate
csi: add CrossNamespaceVolumeDataSource feature gate
2025-08-07 09:00:55 -06:00
CL0Pinette b63c222d17 csi: add CrossNamespaceVolumeDataSource feature gate
This enables configuring the CrossNamespaceVolumeDataSource feature gate

Signed-off-by: CL0Pinette <me@cl0pinette.fr>
2025-08-07 14:28:33 +02:00
Oded Viner 182cd211ca object: mark realm as default to avoid zone creation
add defaultRealm field to cephobjectstore to allow rook to mark the
created realm as default. this prevents ceph from auto-creating a
"default" zonegroup and zone when the default is not explicitly set.
affects only non-multisite setups.

Signed-off-by: Oded Viner <oviner@redhat.com>
2025-08-07 14:48:21 +03:00
Travis Nielsen 35ceaae995 Merge pull request #16017 from OdedViner/validate_unique_topology
osd: validate node topology to prevent invalid crush map hierarchy
2025-08-05 07:57:52 -06:00
Oded Viner 973f8a3a35 osd: validate node topology to prevent invalid crush map hierarchy
add a validation check to fail osd deployment when topology labels
like rack or chassis are duplicated across parent domains
(e.g., zones). this prevents invalid crush map hierarchies
(dfbugs-2610).

Signed-off-by: Oded Viner <oviner@redhat.com>
2025-08-05 12:47:11 +03:00
Benoît Knecht 0b423a30f9 core: only support isa and jerasure algorithms on ec pools
The `CephBlockPool` CR allowed any algorithm to be specified in
`spec.erasureCoded.algorithm`, but in practice only `isa` or `jerasure`
would work.

Make that restriction explicit by restricting this field to `isa` or
`jerasure` in the CRD.

Signed-off-by: Benoît Knecht <bknecht@protonmail.ch>
2025-08-04 16:10:33 -06:00
Benoît Knecht d7f08693ed core: set erasure-code-profile plugin based on pool algorithm
When a `CephBlockPool` defines `spec.erasureCoded.algorithm`, use it as
the erasure-code-profile plugin.

Until now, that parameter would have been ignored completely, and every
erasure-coded pool would use the same plugin as the `default`
erasure-code-profile (i.e. `jerasure`).

Note that using any algorithm other than `jerasure` or `isa` is likely
to fail given the current implementation, as different algorithm require
different sets of parameters, and those cannot be supplied by the
user.

Signed-off-by: Benoît Knecht <bknecht@protonmail.ch>
2025-08-04 15:59:24 -06:00
Travis Nielsen 6c867120c4 Merge pull request #16052 from jhoblitt/maint/simplify-cephobjectstoreuser-deletion-logic
object: simplify CephObjectStoreUser deletion logic
2025-08-04 12:14:05 -06:00
Joshua Hoblitt 80da084732 object: simplify obc storageclass lookup
obc was using an internal exponential backup for the lookup of the sc.
This is somewhat of an anti-pattern when using controller-runtime as it
implements retrying logic. If the sc doesn't exist, the reconcile
attempt should fail immediately and controller-runtime will handle the
back-off policy.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2025-08-01 13:20:38 -07:00
Joshua Hoblitt 1163133aec object: simplify CephObjectStoreUser deletion logic
Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2025-08-01 12:41:10 -07:00
Joshua Hoblitt fbc60608ed object: fix bucket policy in sync detection
A typo was causing the operator to attempt to sync bucket policy when
the state was already in sync. This resulted in the operator carrying
out unnecessary work and logging activity with no user visible change
resulting.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2025-08-01 11:18:08 -07:00
Travis Nielsen 4d0834f605 Merge pull request #16210 from parth-gr/cephx-exporter
exporter: automate rotate exporter cephx keys
2025-08-01 10:09:39 -06:00
Travis Nielsen cef47087dd Merge pull request #16029 from BlaineEXE/osd-automatic-rotation
OSD: implement automated cephx key rotation for osds
2025-08-01 10:08:39 -06:00
parth-gr 9ec7a767c3 exporter: automate rotate exporter cephx keys
rotate cephx keys based on keyRotationPolicy
and update cephxStatus for the ceph exporter daemon pods.

Signed-off-by: parth-gr <partharora1010@gmail.com>
2025-07-31 23:55:37 +05:30