Commit Graph
4895 Commits
Author SHA1 Message Date
Santosh Pillai cbca4da335 osd: support snaptrimp and snaptrip_wait pgs
If the ceph status is "active+lean+snaptrimp" or
"ative+clean+snatrip_wait" , the the PDB controller should treat this
ceph staus as healthy and don't block the node drain

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
(cherry picked from commit c0eb34815f)
2025-11-17 17:11:03 +00:00
parth-gr 81067f2762 subvolumegroup: retry if the filesystem status is empty in svg
if the filesystem is just created and getting the status
updated svg controller can still go and proceed to
check the filesystem status
If the filesystem status is empty we should retry instead of
proceeding further

Signed-off-by: parth-gr <partharora1010@gmail.com>
(cherry picked from commit fb7226698b)
2025-11-14 12:17:24 +05:30
parth-gr dd469740e1 pool: retry if pool status is empty in rn controller
if the pool is just created and getting the status
updated rn controller can still go and proceed to
check the pool status
If the pool status is empty we should retry instead of
proceeding further

Signed-off-by: parth-gr <partharora1010@gmail.com>
(cherry picked from commit 7ef4b4849c)
Signed-off-by: parth-gr <partharora1010@gmail.com>
2025-11-14 12:16:46 +05:30
subham rai 491c4c20bf Merge pull request #16714 from rook/mergify/bp/release-1.18/pr-16661
namespace: add retryOnConflict when updating status (backport #16661)
2025-11-14 11:52:43 +05:30
Travis Nielsen b9b2a5fce0 Merge pull request #16704 from rook/mergify/bp/release-1.18/pr-16700
pool: fix pool status check in rn controller (backport #16700)
2025-11-13 10:44:14 -07:00
subhamkrai 0c3efeb870 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>
(cherry picked from commit e9d5efb3e1)
2025-11-13 17:39:15 +00:00
subhamkrai ae21f07d88 namespace: add retryOnConflict when updating status
currently, in RNS crd while updating status we don't
have retryOnConflicts, similar to other CRD due to
this RNS status was not updated succesfully and to
fix this we have restart the rook operator pod.

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit c8ee7305d4)
2025-11-13 17:39:14 +00:00
parth-gr 0e2229f221 osd: add device class label to the osd prepare pods
currently the device class label was added to the osd pod,
we need the device class label on prepare pod,
so to spread across prpeare pods evenly among the faiure domains
per device class

Signed-off-by: parth-gr <partharora1010@gmail.com>
(cherry picked from commit 4fcdfaad1f)
2025-11-12 18:17:44 +00:00
parth-gr 4cecb42e0a pool: fix pool status check in rn controller
if the pool is just created and getting the status updated
rn controller can still go and proceed to check the pool status
which result in panic
and later it stop re-trying because of panic get swallowed
https://github.com/rook/rook/commit/cf13deee6f0aaa1ff854d57493bf91df70f8f436

Signed-off-by: parth-gr <partharora1010@gmail.com>
(cherry picked from commit ec242d5ee7)
2025-11-12 06:22:41 +00:00
Joshua Hoblitt e99c632135 object: fix user quotas being overwritten when obc bucketOwner is set
Resolves https://github.com/rook/rook/issues/16417

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
(cherry picked from commit 61cbe4fc23)
2025-11-07 18:47:43 +00:00
Sunnatillo 638cc3a503 mgr: add hostNetwork field to Manager spec
Add optinal hostnetwork field for Ceph Mgr to control whether the
mgr pods to run in host network. If unset, this defaults to
cluster level Network.HostNetwork value. This particulary useful
when user wants to restrict ceph mgr pod from exposing metrics
port in all host interfaces.

Signed-off-by: Sunnatillo <sunnat.samadov@est.tech>
(cherry picked from commit b9a4685f65)
2025-11-06 16:29:17 +00:00
Joshua Hoblitt 2af3a1584a osd: add CephCluster.spec.storage.OSDMaxUpdatesInParallel
Configures the maximum number of OSDs to update in parallel.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
(cherry picked from commit 43f26534ed)
2025-11-04 17:37:04 +00:00
Santosh Pillai 4a1b6ca3d6 mon: wait for the canary pods to be terminated
Wait for the mon-canary pods to be terminated before starting the actual
mons. When topology spread constraints are added to evenly spread the
mons, then pod-anti affinity does not allow mons to be created on the
same node where other mons are running, this also includes the
mon-canary pods. We delete the mon-canary pods and then start the actual
mon pods. Sometimes the termination of the canary pods might take more
time, so schedular won't schedular mon pods on that node.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
(cherry picked from commit 3137a857df)
2025-10-23 16:39:16 +00:00
Travis Nielsen f834612c85 osd: set osd resources for specific device class
The OSDs may require different resources based on their device
class. The overall osd resources were only being used, rather
than properly looking up the specific device class resources.
Now the expected resources will take affect per device class.

Co-authored-by: Matthias Osthues <osthues.matthias@gmail.com>
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit d3c0bacd88)
2025-10-23 15:55:38 +00:00
Travis Nielsen 6f799052eb mon: trap the sigterm in the mon canary
The mon canary should quickly shut down after the pod is
deleted, since it has no purpose to continue running.
Since the sleep does not catch the SIGTERM as pid 1,
use a bash trap to exit quickly.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit 48b70500fa)
2025-10-23 05:49:20 +00:00
subhamkrai 0fc9c0d5a7 mgr: add required k8s label for endpointSlice
k8s requires the endpointSlice must have label
`kubernetes.io/service-name` to be associated with
service. Without this label, the k8s service controller
can't link the EndpointSlice to the service.

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit 7004213f92)
2025-10-17 16:16:10 +00:00
Travis Nielsen aeda710840 pool: skip setting the target size ratio to 0 by default
The target size ratio is currently always being set to 0, when
neither the legacy targetSizeRatio nor the parameter for
target_size_ratio are set. In this case, we should not set it to 0,
but rather should skip the command to set the target size ratio.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit 938380734d)
2025-10-16 17:00:34 +00:00
Travis Nielsen dd3d6109c0 Merge pull request #16604 from rook/mergify/bp/release-1.18/pr-16595
core: fix ceph health check up status check (backport #16595)
2025-10-15 14:30:15 -06:00
Blaine Gardner 71fb066f9a Merge pull request #16606 from rook/mergify/bp/release-1.18/pr-16603
osd: allow OSD init keyring update to be best-effort (backport #16603)
2025-10-15 14:25:36 -06:00
parth-gr 1307ca16a2 osd: add a timeout for osd create and update process
if there a bit long to update osds in parallel,
we need to timeout and abort the synchronous loop
and start the cluster reconcile again from the beginning

Signed-off-by: parth-gr <partharora1010@gmail.com>
(cherry picked from commit 4377823675)
2025-10-15 16:06:47 +00:00
Blaine Gardner a2176e89d7 osd: allow OSD init keyring update to be best-effort
When OSDs start, init containers attempt to get the latest CephX key for
the OSD to allow OSDs to potentially continue working after key rotation.

However, in Ceph corner cases, mons could be unavailable while OSDs
could still be viable with existing on-disk keys. Since key rotation is
a rare event, it's likely that the on-disk keys are still good.

The worst case scenario is that key updates were needed but didn't
succeed in init containers. In this case, instead of the init container
failing, the OSD startup will fail instead. Thus, this should introduce
no extra risk but merely shift the failure to a different container.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit d9d31fe527)
2025-10-14 19:00:44 +00:00
parth-gr b09e3941e1 external: add cluster connected condition in case of external mode
external mode was dependednt on the ceph status to
update the cluster connected condition,
BUt as now the status check will only update the ceph status,
so we will explicitly update the ceph status condition in the
end of the reconcile

Signed-off-by: parth-gr <partharora1010@gmail.com>
(cherry picked from commit 3f5ebe2f4f)
2025-10-14 16:38:31 +00:00
parth-gr d267bbf710 core: fix cep health check up status check
currently the health checkup was reporting the
condition and reason to be always connected,
But which might not be the case,
So instead of that dont report the condition and
its phase during the health checkups

Signed-off-by: parth-gr <partharora1010@gmail.com>
(cherry picked from commit 454c221c53)
2025-10-14 16:38:31 +00:00
subham rai 2c7b515886 Merge pull request #16587 from rook/mergify/bp/release-1.18/pr-16540
mon: update the clusterinfo with v2 port (backport #16540)
2025-10-09 12:27:32 +05:30
parth-gr 58f5cc4f48 mon: update the clusterinfo with v2 port
currently we are updating the mon endpoints
and using it with rook-ceph-csi cm,
But we need latest ports in the cluster info,
during the creation of the ceph connection cr
when csi operator is enabled,
so ceph connection cr can use the latest mons ports

Signed-off-by: parth-gr <partharora1010@gmail.com>
(cherry picked from commit 76a7132c56)
2025-10-08 18:19:31 +00:00
Tim Buchwaldt 729322ffd7 operator: allow overriding MDS cache memory limit
This change introduces support for setting the ceph cache memory limit
ratios that were previously hardcoded.
Codegen was drivey-by updated as the current version errored.

Resolves #16551

Signed-off-by: Tim Buchwaldt <tim.buchwaldt@deepl.com>
(cherry picked from commit 8db5274703)
2025-10-08 15:57:13 +00:00
Oded Viner 6cebce71ef osd: add detailed debug logs to checktopologyconflicts
added comprehensive debug logs throughout CheckTopologyConflicts

Signed-off-by: Oded Viner <oviner@redhat.com>
(cherry picked from commit 11d7eacdcb)
2025-10-06 17:34:18 +00:00
Travis Nielsen 40b8989623 csi: convert csi operator volume settings
The csi volumes and volume mount settings are now
converted to the csi operator driver CR, for example
to allow nix os mounts to be applied to the csi
node plugins.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit 7a515eb24a)
2025-10-02 14:56:54 +00:00
Travis Nielsen fa0ca0a4a6 Merge pull request #16547 from rook/mergify/bp/release-1.18/pr-16520
rbdmirror: fix mirroring monitoring settings for rn (backport #16520)
2025-09-26 16:11:37 -05:00
Travis Nielsen e11cf61692 Merge pull request #16546 from rook/mergify/bp/release-1.18/pr-16542
core: add PHASE column to cephor (backport #16542)
2025-09-26 16:11:25 -05:00
Travis Nielsen c176a81cd3 Merge pull request #16545 from rook/mergify/bp/release-1.18/pr-16543
core: add PHASE column to cephnfs (backport #16543)
2025-09-26 16:11:14 -05:00
parth-gr 225121879f rbdmirror: fix mirroring monitoring settings for rn
currently if we disable the monitoring for rn,
it doesnt reset the status

Signed-off-by: parth-gr <partharora1010@gmail.com>
(cherry picked from commit 49c26dbfb0)
2025-09-26 19:49:06 +00:00
Joshua Hoblitt 35be9ce5dd core: add PHASE column to cephor
The current behavior does not print the PHASE column, as most other
CRDs do. E.g.:

```
 ~ $ k get cephor lfa
NAME   AGE
lfa    45d
```

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
(cherry picked from commit 6d9c884259)
2025-09-26 18:21:50 +00:00
Joshua Hoblitt 6640476ee0 core: add PHASE column to cephnfs
The current behavior does not print the PHASE column, as most other
CRDs do. E.g.:

```
 ~ $ k get cephnfs nfs1
NAME   AGE
nfs1   45d
```

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
(cherry picked from commit 5ee982f1e1)
2025-09-26 18:21:48 +00:00
Joshua Hoblitt 913d02a02b core: add PHASE column to cephbn
The current behavior does not print the PHASE column, as most other
CRDs do. E.g.:

```
~ $ k get cephbn chorus
NAME     AGE
chorus   10d
```

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
(cherry picked from commit 8866d47d92)
2025-09-26 18:21:02 +00:00
Madhu Rajanna 4f1953cbb3 namespace: blocklist ip:nonce in cleanup job
blocklisting IP can cause problems when the cleanup
job pod runs on the same host or gets the same ip
as that of the rbd client ip that is present in
the rbd status/watchers. instead of blocklisting
the whole ip of the node or the client blocklist
only the unique ip:nonce to allow the node to not
have any effect because of the cleanup job.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit 5ae49cf7a0)
2025-09-24 16:58:39 +00:00
Santosh Pillai 2478073d2d osd: clean encrypted disks from other clusters
Clean encrypted disks from other clusters by checking the cephFSID in
the luks header.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
(cherry picked from commit ec271bdde3)
2025-09-23 20:03:59 +00:00
subham rai a2054ef9c9 Merge pull request #16525 from rook/mergify/bp/release-1.18/pr-16499
object: add status.{phase,observedGeneration} to cephbn (backport #16499)
2025-09-23 12:55:34 +05:30
Madhu Rajanna ae0dc30ccc csi: use recreate deployment strategy
This is a fix/workaround to set the Recreate
deployment strategy as default in Rook as
its long proven working without any problem.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit 333082c397)
2025-09-23 05:19:16 +00:00
Madhu Rajanna 083cb37e34 csi: remove liveness from the driver spec
CephCSI will remove the livess sidecar
container functionality as it was created
very long back and it should be replaced with
kubernetes GRPC livessness problem.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit 46c7d2cc26)
2025-09-23 05:19:15 +00:00
Joshua Hoblitt 628fc97e88 object: add status.{phase,observedGeneration} to cephbn
Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
(cherry picked from commit 864c349c1f)
2025-09-22 22:27:16 +00:00
subhamkrai 1477f60e10 csi: add labels to the csi-operator driver pod
currently, labels are not passed to csi-operator but
for csi-driver lables works as expected. This commit
add changes to add labels on csi-operator driver pod as well.

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit 0c296545a5)
2025-09-22 14:40:42 +00:00
Santosh Pillai 3e0514b947 osd: updated blocking pdbs if drained node is back
If the drained node is added back and one or more others nodes are down
update the blocking pdbs, that is, add blocking pdb to node that was
just added back.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
(cherry picked from commit f2bf0eb200)
2025-09-18 17:10:32 +00:00
Travis Nielsen 76bce3a292 Merge pull request #16495 from rook/mergify/bp/release-1.18/pr-16493
core: use latest operator context in the preClusterStartValidation function (backport #16493)
2025-09-17 10:00:33 -06:00
Joshua Hoblitt 58becd0385 core: fix ObjectZoneSpec.ZoneGroup field description
Resolves this incorrect field description:

     ~ $ k explain cephobjectzone.spec.zoneGroup
    GROUP:      ceph.rook.io
    KIND:       CephObjectZone
    VERSION:    v1

    FIELD: zoneGroup <string>

    DESCRIPTION:
        The display name for the ceph users

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
(cherry picked from commit 8b58d68592)
2025-09-17 11:47:28 +00:00
Joshua Hoblitt 0f8b0992f5 core: fix ObjectZoneGroupSpec.Realm field description
Resolves this incorrect field description:

     ~ $ k explain cephobjectzonegroup.spec.realm
    GROUP:      ceph.rook.io
    KIND:       CephObjectZoneGroup
    VERSION:    v1

    FIELD: realm <string>

    DESCRIPTION:
        The display name for the ceph users

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
(cherry picked from commit 1a1478a342)
2025-09-17 11:47:28 +00:00
Santosh Pillai 96d03cb1e4 core: use updated context in prevalidaiton checks
If the CephCluster spec is updated before the prevalidation check, then
Cluster.context still refers to the cancelled context of the operator.
This PR just updates the cluster context to use the latest operator
context.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
(cherry picked from commit 1ff7604f82)
2025-09-16 15:53:11 +00:00
Travis Nielsen ccbac6de98 Merge pull request #16490 from rook/mergify/bp/release-1.18/pr-16468
external: fix ipv6 monitoring endpoint reconcile (backport #16468)
2025-09-15 13:47:43 -06:00
Travis Nielsen 44e8bf2778 pool: allow enablecrushupdates to be nil
Enabling crush updates is false by default, and can be enabled
if set to true. The setting needs to be nullable in case
we need to differentiate between the value being set
to false or just not set, to know if the default should be
different. This is necessary for rook consumers who are
refererencing the pool struct and want to change the default,
rather than using rook's default value of false.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit df49ca1247)
2025-09-15 18:34:59 +00:00
parth-gr 0249d2b6a5 external: fix ipv6 monitoring endpoint reconcile
currently the extraction ipv6 was not correct
used the net package to extract the host ip from
the ipadress

Signed-off-by: parth-gr <partharora1010@gmail.com>
(cherry picked from commit e1873cb2e7)
2025-09-15 16:46:41 +00:00