Commit Graph
3585 Commits
Author SHA1 Message Date
Travis Nielsen 08c97bc752 Merge pull request #15593 from prazumovsky/retry-pool-status
pool: retry status update on fail
2025-04-09 11:14:13 -06:00
Peter Razumovsky d7c67fecee pool: retry status update on fail
In some cases, for example, kube-api nods, CephBlockPool's status
could be failed to update. In that case, rook-operator does not
tries to update status again. This fix requests for requeue if pool's
status update is failed.

Signed-off-by: Peter Razumovsky <prazumovsky@mirantis.com>
2025-04-09 18:47:38 +04:00
Travis Nielsen f7fb1bc0f2 core: skip reconcile when adding the finalizers
When finalizers are added to the CRs, a follow-up reconcile
will be triggered due to the increased generation on the CR.
Therefore, abort the initial reconcile when adding the finalizer,
and allow the follow-up reconcile to complete the configuration.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2025-04-08 13:42:58 -06:00
Santosh Pillai 7a44de0036 Merge pull request #15634 from sp98/fix-pdbs-1
osd: fix pdbs in case of node drain
2025-04-07 21:28:35 +05:30
Madhu Rajanna b08765f525 csi: remove dummy code in csi driver creation
EnableCSIDriverSeLinuxMount is always set to true
, This commit remove the extra variable as its a
introduced where we supported older kubernetes version.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2025-04-07 13:50:09 +02:00
Santosh Pillai e83ca35531 osd: fix pdbs in case of node drain
the maxunavailable count was getting reset back to 1 after 60 seconds.
This PR prevents resetting of the maxUnavailable OSD count.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2025-04-07 09:40:55 +05:30
Blaine Gardner 947ca8b458 nfs: set allow_set_io_flusher_fail=true in config
NFS-Ganesha 6.1 requires this config to be set to allow it to run in a
non-privileged container so it doesn't hit a permission failure. As long
as the ganesha.nfsd process isn't run with the `-x` option, earlier
versions of NFS-Ganesha that don't have this config won't complain.

Related cephadm PR: https://github.com/ceph/ceph/pull/60077

This may be necessary for supporting future Ceph Squid versions
according to discussions here:
https://github.com/ceph/ceph-container/issues/2246

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
2025-04-04 12:41:11 -06:00
Travis Nielsen e6142d8a4c Merge pull request #15445 from sivukhin/small-bug-fixes
Fixes for the govanish linter issues
2025-04-04 12:11:17 -06:00
Travis NielsenandNikita Sivukhin 71a4fce87b core: use filter only if its set to non empty string
Also check for the empty namespace instead of an
empty name which was incorrect.

Co-authored-by: Nikita Sivukhin <sivukhin@turso.tech>
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2025-04-04 18:16:07 +01:00
Joshua Hoblitt 9f1ed201db core: typed watch handlers and predicates
All existing controller runtime watches are converted to use "typed"
handlers and predicates instead of operating on `client.Object`.  The
intent is to be bug for bug equivalent with the existing logic while
replacing run time type assertions and switch statements with compile
time type constraints and type casts. In several cases, functions using
assertions were split up such that each function only handles a single
Kind at a time. It is hoped that this will improve readability and
maintainability while facilitating future refactoring such as migrating
some watches to using IndexFields.

Of particular note is that the massive switch statement in
`WatchControllerPredicate()`  from
`pkg/operator/ceph/controller/predicate.go` has been replaced with
generics, reflection, and splitting the obc logic into its own predicate
function. There are still many helper functions operating on
`client.Object`. These were not updated unless required by the compiler
in order to limit the size of this change. The type safety of these
funcs should be improved as followup work.

 It is strongly suggested that going forward, handlers and predicates
 only handle a single Kind (generic or not) and that switches / type
 assertions are heavily discouraged or forbidden. This PR removed all
 but a single switch statement in a predicate, which should be addressed
 in future work.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2025-04-04 09:40:56 -07:00
Travis Nielsen a0e925dfdb Merge pull request #15636 from patrostkowski/feature/mgr-module-configs-15559
operator: decouple mon and mgr post-startup operations
2025-04-03 14:31:41 -06:00
Joshua Hoblitt 6b2c357871 object: add CephObjectStoreUser.spec.keys
Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2025-04-03 09:09:01 -07:00
Patryk Rostkowski 44a2eaf02f operator: decouple mon and mgr post-startup operations
Fixes an ordering issue where spec.cephConfig settings failed to apply
because the manager wasn't yet running. Moved the config logic from
postMonStartupActions() to a new postMgrStartupActions() to ensure
the mgr is ready before applying config, allowing successful reconciliation.

Signed-off-by: Patryk Rostkowski <patrostkowski@gmail.com>
2025-04-02 14:35:06 +02:00
Blaine Gardner 2348ff689c Merge pull request #15459 from subhamkrai/implicit-ns
rbdmirror: mirroring b/w implicit and defined ns
2025-04-01 12:56:06 -06:00
Blaine Gardner 85440169dd Merge pull request #15554 from ragnard/kafka-topic-params
rgw: Support Kafka auth mechanism parameter
2025-04-01 10:44:36 -06:00
Michael AdamandBlaine Gardner 0c9e7a384b tests: fix intermittent failure of TestWaitForDeploymentsToUpdate
The unit test TestWaitForDeploymentsToUpdate intermittently failed
in the CI. The suspected root cause is clow CPUs in github CI runners.

This fixes the intermittent CI failure by increasing the timings in the test
code.

Resolves: #15583

Co-Authored-By: Blaine Gardner <blaine.gardner@ibm.com>
Signed-off-by: Michael Adam <obnox@samba.org>
2025-04-01 09:16:31 +02:00
subhamkrai 420178fe3e rbdmirror: mirroring b/w implicit and defined ns
this commit add support for mirroring b/w implicit rados namespace and
defined rados namespace. To support this, rook will treat `<implicit>`
name on cephblockpool as `""` empty string. This will allow mirroring
b/w implicit and defined radosnamespace.

Signed-off-by: subhamkrai <srai@redhat.com>
2025-04-01 10:46:06 +05:30
Travis Nielsen 9e1c78dfd5 Merge pull request #15522 from patrostkowski/feature/mon-active-ep-14986
mon: manage endpoints containing set of mon ip addresses
2025-03-31 10:42:29 -06:00
Patryk Rostkowski 08199b27c9 mon: manage endpoints containing set of mon ip addresses
The change creates and manages an Endpoints resource
with the current Ceph monitor (mon) IPs, allowing
clients to resolve mon IPs via DNS without relying
on the rook-ceph-mon-endpoints ConfigMap.

Signed-off-by: Patryk Rostkowski <patrostkowski@gmail.com>
2025-03-31 18:05:37 +02:00
Blaine Gardner e783264652 Merge pull request #15588 from sp98/rgw-client-location
rgw: RGW read affinity for localized reads
2025-03-31 09:26:20 -06:00
Santosh Pillai deb010c32e rgw: support read affinty for localized reads
allows selecting Read Affinity policy from the ObjectStore API
aets `--crush-location=host` for RGW daemons.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2025-03-31 18:24:32 +05:30
Joshua Hoblitt 3cb343f62a core: run gofumpt on all files
Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2025-03-26 10:41:48 -07:00
Santosh Pillai daa0dc1327 Merge pull request #15408 from sp98/redo-pdbs
osd: handle OSD PDBs when OSDs fail without affecting the cluster health
2025-03-26 21:34:17 +05:30
Santosh Pillai a816b4a971 osd: allow one healthy OSD to be drained
One ore more OSDs can be down and PGs can still be active+clean (data
was rebalanced to other available OSDs). This PR sets
maxunavailable=1+downOSDs to allow one healthy to be drained.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2025-03-26 10:40:46 +05:30
Joshua Hoblitt dcf0a57d11 object: all CephBucketTopic reconcile errors set .status.phase
topic.reconcile() had a number of error triggered return statements
which did not update the CR's status to reflect a reconcile failure.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2025-03-25 09:52:37 -07:00
Blaine Gardner 20d85409ba Merge pull request #15498 from cobaltcore-dev/watch-rgw-config-secrets
Watch rgw config secrets
2025-03-25 09:33:50 -06:00
Ragnar Dahlén 8bf7c679bb rgw: support kafka auth mechanism parameter
Ceph has support [1,2] for configuring which authentication
mechanism to use for bucket notifications using Kafka topics.

This commit adds the corresponding support to rook.

[1]: https://github.com/ceph/ceph/pull/48181/commits/d5dce601f65974a21c83c4b1add036030a75c3c4
[2]: https://tracker.ceph.com/issues/57608

Signed-off-by: Ragnar Dahlén <r.dahlen@gmail.com>
2025-03-24 21:53:49 +01:00
Blaine Gardner 9c1d681839 Merge pull request #15560 from rook/plumbing/rm-controller-predicate-upgrade-label-support
core: rm controller-runtime predicate support for ceph_version label
2025-03-21 15:45:43 -06:00
Blaine Gardner 01d3a5ae40 Merge pull request #15530 from jhoblitt/bugfix/CephObjectStoreUser-reconcile-status
object: all CephObjectStoreUser reconcile errors set .status.phase
2025-03-21 12:06:52 -06:00
Joshua Hoblitt 607e328e6f core: rm controller-runtime predicate support for ceph_version label
This label is not currently in use by rook.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2025-03-21 09:34:27 -07:00
Artem Torubarov e2f7caf193 rgw: simplify map secret func
Signed-off-by: Artem Torubarov <artem.torubarov@sap.com>
2025-03-21 16:11:34 +01:00
subhamkrai a25c57397e csi: add csi-op api in unit tests
let's just add csi-op unit tests in rns and svg
we'll add more code in future.

Signed-off-by: subhamkrai <srai@redhat.com>
2025-03-21 06:42:37 +05:30
subham rai 012428dc3a Merge pull request #15529 from subhamkrai/external-mode-csi-op
csi: create csi operator resources in external mode
2025-03-18 21:16:58 +05:30
subhamkrai 8ffb80f3d7 csi: create csi operator resources in external mode
today, csi operator cephConnection and client profile
CR's where not getting created in external mode. So, let's
start creating those.

Signed-off-by: subhamkrai <srai@redhat.com>
2025-03-18 15:16:02 +05:30
Joshua Hoblitt 01bbcf7857 object: all CephObjectStoreUser reconcile errors set .status.phase
objectuser.reconcile() had a number of error triggered return statements
which do not update the CR's status to reflect a reconcile failure.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2025-03-17 09:56:54 -07:00
Artem Torubarov dd0d500980 rgw: watch referenced secrets
Signed-off-by: Artem Torubarov <artem.torubarov@sap.com>
2025-03-17 14:09:05 +01:00
Artem Torubarov 00aa282074 rgw: use list in secret watch map func
Signed-off-by: Artem Torubarov <artem.torubarov@clyso.com>
2025-03-13 11:19:45 +01:00
Artem Torubarov bed0c23274 rgw: watch config secret changes
Implements #15460. If ObjectStore reading value from a secret
provided by user, the secret will be annotated with ObjectStore
name and ObjectStore will be reconciled on secret change.

Signed-off-by: Artem Torubarov <artem.torubarov@clyso.com>
2025-03-12 11:37:12 +01:00
yati1998 762430ccb5 build: set ceph csi release version to v3.13.1
this commit sets the release version
for ceph-csi to v3.13.1

Signed-off-by: yati1998 <ypadia@redhat.com>
2025-03-10 11:08:07 +05:30
Tarun Gupta Akirala 95a911f8c3 operator: formatting issue in cosi log statement
updates the debug log line to ensure the formatting
is applied correctly.

Signed-off-by: Tarun Gupta Akirala <tarun.akirala@nutanix.com>
2025-03-05 16:47:06 -07:00
Santosh Pillai da6f558098 Merge pull request #15496 from patrostkowski/fix/exporter-port-15446
exporter: add missing rook-ceph-exporter container port definition
2025-03-05 20:36:34 +05:30
Niels de Vos 25d3b6d5fc csi: update csi-addons to v0.12.0
The csi-addons v0.12.0 release is now available.

See-also: https://github.com/csi-addons/kubernetes-csi-addons/releases/tag/v0.12.0
Signed-off-by: Niels de Vos <ndevos@ibm.com>
2025-03-05 09:35:41 +01:00
Patryk Rostkowski fda1189dbf exporter: add missing rook-ceph-exporter container port definition
Adds the missing exporter container port to enable
proper Prometheus scraping and filtering.

Signed-off-by: Patryk Rostkowski <patrostkowski@gmail.com>
2025-03-04 14:54:40 +01:00
Travis Nielsen 9a5bf16247 Merge pull request #15400 from cobaltcore-dev/ext-mon-2
Implement external arbiter mon
2025-03-03 12:01:12 -07:00
Artem Torubarov 0b2e830111 mon: support external mons in local rook cluster
Implements #14733. Allows to set IDs of external mons to
Cluster CRD. Rook will not remove external mons from quorum
and will add external mon addresses to mon endpoints.
Use-case for external mon is to maintain quorum for 2-AZ
k8s cluster in case of zone outage.

Signed-off-by: Artem Torubarov <artem.torubarov@clyso.com>
2025-03-03 14:49:39 +01:00
Artem Torubarov 81d0f69aae object: change log level for config from secret
Signed-off-by: Artem Torubarov <artem.torubarov@clyso.com>
2025-03-03 14:48:55 +01:00
Artem Torubarov 3b2e6f5bf6 object: allow overriding rgw config value from secret
Implements #15422
Extends existing ObjectStore configuration options with
rgwConfigFromSecret allowing to refer config value from
kubernetes secret.

Signed-off-by: Artem Torubarov <artem.torubarov@clyso.com>
2025-03-03 14:48:55 +01:00
Travis Nielsen 8429affc79 mgr: wait for builtin mgr pool to exist before enabling stretch
There is a race condition in ceph v19 at startup of a
stretch cluster where if the .mgr pool is created by
the mgr pod after stretch mode is entered, the
devicehealth mgr module will crash and cause a
ceph HEALTH_ERR. The error then causes rook reconcile
of all CRs to be skipped because Rook is assuming
admin intervention is needed to continue. The fix
is to wait until the .mgr pool is created by the mgr
pod before entering stretch mode.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2025-02-27 08:10:52 -07:00
Travis Nielsen 3bd5881fe5 core: suppress mgr module health errors during reconcile
Some ceph health errors should not block the reconcile
of the cluster. Mgr modules do not have cause to block
the reconcile, as the cluster can usually work even
if a module is failing.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2025-02-27 08:10:52 -07:00
Blaine Gardner 8010042a61 Merge pull request #15424 from parth-gr/mds-liveness-fix
mds: fix mds liveness probe
2025-02-26 09:08:19 -07:00