Commit Graph
3537 Commits
Author SHA1 Message Date
raaizik 29fc3d3a5e core: fix CephObjectRealm controller generated generated AccessKey invalid chars
Suggested fix for issue https://github.com/rook/rook/issues/16072
Adds key type differentiation to exclude invalid characters from AccessKey

Signed-off-by: raaizik <132667934+raaizik@users.noreply.github.com>
(cherry picked from commit 1b3f36ff5c)
2025-07-02 15:05:18 +00:00
Muhammad Adil Ghaffar 85ce5bef50 exporter: add hostnetwork bool to cephexporter
Signed-off-by: Muhammad Adil Ghaffar <muhammad.adil.ghaffar@est.tech>
(cherry picked from commit 5ea7a177b7)
2025-06-25 13:23:57 +00:00
Justin Cichra d7325dfe50 exporter: add name to containerPort
Named containerPort is a useful feature when generating dynamic scrape
targets with prometheus.

This makes it clear that the containerPort is intended for metrics
scraping.

The name matches that which is on the mgr deployment.

Signed-off-by: Justin Cichra <jcichra@cloudflare.com>
(cherry picked from commit 12c36e9472)
2025-04-29 19:15:07 +00:00
Travis Nielsen 05cd9e0881 object: log all reconcile errors during object store creation
The object store controller was swallowing errors of the
type not found, assuming a certain category of errors
when ceph may still be initializing. But some of these
errors could be user error and they need to troubleshoot
the details of the error, so we need to log the specific
error instead of swallowing it.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit 95a5920bef)
2025-04-21 16:14:45 +00:00
Santosh Pillai f721dc2444 mon: always delete mon canary pods
In case of multicluster service, we need to always delete the mon-canary
pods even if there is any failure while exporting the service, else
multiple mon canary pods will get created.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
(cherry picked from commit 75c6bb8cd2)
2025-04-16 14:34:47 +00:00
Santosh Pillai 79203e1ed4 core: fix logs to print correct OSD ID
use %d to print integer osd.ID

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
(cherry picked from commit e0d2275c8b)
2025-04-16 13:39:48 +00:00
Peter Razumovsky 7189207c70 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>
(cherry picked from commit d7c67fecee)
2025-04-09 17:15:14 +00:00
Santosh Pillai de497cdb7b 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>
(cherry picked from commit e83ca35531)
2025-04-07 11:26:18 -06:00
Blaine Gardner 62dc7f778b 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>
(cherry picked from commit 947ca8b458)
2025-04-04 19:48:40 +00:00
Michael Adam b27dee9f4f 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>
(cherry picked from commit 0c9e7a384b)
2025-04-01 14:48:36 +00:00
Santosh Pillai fa77b4db20 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>
(cherry picked from commit a816b4a971)
2025-03-26 16:05:16 +00:00
Joshua Hoblitt 4d315134aa 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>
(cherry picked from commit dcf0a57d11)
2025-03-25 19:13:03 +00:00
yati1998 88e00b54fc 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>
(cherry picked from commit 762430ccb5)
2025-03-10 11:33:54 -06:00
Travis Nielsen 2355fddf4d Merge pull request #15489 from rook/mergify/bp/release-1.16/pr-15426
object: allow overriding rgw config value from secret (backport #15426)
2025-03-05 13:51:01 -07:00
Patryk Rostkowski cf817c1133 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>
(cherry picked from commit fda1189dbf)
2025-03-05 15:07:17 +00:00
Artem Torubarov 7752b7b185 object: change log level for config from secret
Signed-off-by: Artem Torubarov <artem.torubarov@clyso.com>
(cherry picked from commit 81d0f69aae)
2025-03-03 14:54:10 +00:00
Artem Torubarov df3de45948 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>
(cherry picked from commit 3b2e6f5bf6)
2025-03-03 14:54:10 +00:00
Travis Nielsen 13ac9625b1 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>
(cherry picked from commit 8429affc79)
2025-02-27 17:02:58 +00:00
Travis Nielsen 2ada876727 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>
(cherry picked from commit 3bd5881fe5)
2025-02-27 17:02:58 +00:00
parth-gr fac78dd09f mds: fix mds liveness probe
mds liveness probe call ceph cmd with mons and keyring,
but ceph actually looks for the ceph keyring at default folder
first and then use the cmd line keyring path,
So to avoid that use ceph_args env variable to expose the keyring
folder path,
Workaround for https://tracker.ceph.com/issues/70167

closes: https://github.com/rook/rook/issues/15373

Signed-off-by: parth-gr <partharora1010@gmail.com>
(cherry picked from commit 0999cf9b56)
2025-02-26 16:09:41 +00:00
Travis Nielsen f5ac59c0a0 core: implement operator settings as env vars
The operator settings loaded from the configmap have proven
inefficient for load time and frequently checking the configmap.
To avoid this ineffenciency, the configmap is only loaded once
each time it is created or updated. The values in the configmap
are applied as environment variables, which then are very efficient
to query throughout the various controllers, without needing
to be concerned about loading the configmap again.

Co-authored-by: Dmitry Mishin <dmitry.mishin@gmail.com>
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit d109dc9029)
2025-02-25 11:33:57 -07:00
Skala Networks f9e6b1d76c csi: bind cephfs and rbd provisionners on non-colliding ports for hostNetwork setups
Signed-off-by: Skala Networks <contact@skala.network>
(cherry picked from commit d3c3d25c60)
2025-02-24 19:08:38 +00:00
Steven Fackler 5a7df72327 osd: avoid lvm device scan deadlock in activate
If a locally mounted volume is blocked on reads because this OSD is
down, lvs will deadlock trying to read from it. To avoid this, tell LVM
to filter out RBD volumes from its scanning process.

Signed-off-by: Steven Fackler <sfackler@gmail.com>
(cherry picked from commit bbe600aa20)
2025-02-17 18:30:43 +00:00
Blaine Gardner 786a6bc017 nfs: workaround broken nfs-ganesha config parser
NFS-Ganesha introduced a breaking change in its config parser that no
longer accepts single quotes around values. This seems to be working for
most Ceph release images, but this was seen in at least one dev build of
Ceph.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit 55d1a86755)
2025-02-13 16:52:04 +00:00
Artem Torubarov f3f556399e operator: custom hostname topology label
Signed-off-by: Artem Torubarov <artem.torubarov@clyso.com>
(cherry picked from commit 25ee6b4f59)
2025-01-30 16:44:43 +00:00
mergify[bot] 6320e78942 Merge pull request #15320 from rook/mergify/bp/release-1.16/pr-15309
operator: log mon db config values with trace lvl (backport #15309)
2025-01-24 15:21:00 +00:00
Artem Torubarov fd4fbbbf49 operator: log mon db config values with trace lvl
log applied mon store config values with trace lvl for debug purpose

Signed-off-by: Artem Torubarov <artem.torubarov@clyso.com>
(cherry picked from commit 58febcbeab)
2025-01-24 14:56:16 +00:00
Steven Fackler 69920a3a29 rgw: fix error handling for secret lookup
Get will return a non-nil pointer even in the error case.

Signed-off-by: Steven Fackler <sfackler@gmail.com>
(cherry picked from commit 6935dfdc47)
2025-01-24 06:37:10 +00:00
Joshua Hoblitt 3bc1597e7c object: add obc bucketLifecycle
Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
(cherry picked from commit a55fdb3fbe)
2025-01-22 17:20:38 +00:00
Joshua Hoblitt d15f25fcac ci: codespell: s/re-using/reusing/
Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
(cherry picked from commit f52f48c477)
2025-01-21 23:01:09 +00:00
Santosh Pillai 682c2fabfb osd: use bluestore if store type is empty
If store type is empty in the cephCluster spec, use bluestore

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
(cherry picked from commit e44dd3ad74)
2025-01-16 20:34:23 +00:00
Travis Nielsen eb3995a217 Merge pull request #15287 from rook/mergify/bp/release-1.16/pr-15270
operator: omit values from mon db config logs (backport #15270)
2025-01-16 13:25:02 -07:00
Artem 6c77505e91 operator: omit mon db config value log
Co-authored-by: Travis Nielsen <tnielsen@redhat.com>
Signed-off-by: Artem Torubarov <artem.torubarov@clyso.com>
(cherry picked from commit db88970641)
2025-01-16 18:30:29 +00:00
Artem Torubarov 4461cb96ea operator: omit values from mon db config logs
Signed-off-by: Artem Torubarov <artem.torubarov@clyso.com>
(cherry picked from commit a44ae0fdc6)
2025-01-16 18:30:29 +00:00
Oded Viner b3606dcbf6 core: add tolerations to crashcollector pruner cronJob pod
This PR addresses an issue where the CrashCollector Pruner
CronJob pods were stuck in a Pending state due to missing
tolerations in their PodTemplateSpec.
These tolerations were not being propagated from the
cephClusterSpec.placement.all field.
Added tolerations to the PodTemplateSpec of the
CrashCollector Pruner CronJob.

Signed-off-by: Oded Viner <oviner@redhat.com>
(cherry picked from commit 8817a1a703)
2025-01-16 17:01:00 +00:00
Niels de Vos bf54ae166f csi: update Kubernetes CSI sidecar images to current versions
The Kubernetes CSI sidecars have had several releases that were not
included in deployments by Rook yet, update them to the versions that
are available today:

- csi-node-driver-registrar:v2.13.0
- csi-provisioner:v5.1.0
- csi-attacher:v4.8.0
- csi-resizer:v1.13.1

Signed-off-by: Niels de Vos <ndevos@ibm.com>
(cherry picked from commit 955fa9cae4)
2025-01-15 17:01:31 +00:00
Travis Nielsen 6c1bb750e5 csi: set driver name to same as the operator namespace
The operator namespace is where the csi driver resources
are being created. The prefix is expected to match the
namespace where the driver is being created.
It was an incorrect change from 15245 where it
had been assumed that the cluster prefix name was
required instead.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit f9ebaf3418)
2025-01-14 16:14:01 +00:00
Travis Nielsen 8c2ee6770c csi: set correct driver name with csi operator
When the cluster is in a different namespace from the rook
operator, the csi provider name was setting the incorrect
namespace prefix. Now the prefix will be the same as the
ceph cluster namespace.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit ac1767fa0f)
2025-01-09 06:57:00 +00:00
Travis Nielsen 02c0e8448d core: remove unnecessary param to watch namespaces
Cleanup obsolete code where the context no longer needs
to be passed as a parameter to determine the namespaces
to watch.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit 82c82bbe13)
2025-01-09 06:56:59 +00:00
Denis Egorenko f15fa4ed49 mgr: fix label selector when updating mgr active label
Fix label selector for watch-active mgr container: during update active mgr label,
add missed app=rook-ceph-mgr label, to avoid setting label for mon pod.

Resolves: #15208
Signed-off-by: Denis Egorenko degorenko@mirantis.com
(cherry picked from commit 009a0d9f6f)
2024-12-20 17:28:42 +00:00
Steven Kreitzer 477b7fd0f4 csi: csi-snapshotter flag typo; upgrade csi-snapshotter
Signed-off-by: Steven Kreitzer <skre@skre.me>
(cherry picked from commit 463d9fb420)
2024-12-18 15:39:21 +00:00
Blaine Gardner fba91ba6f5 test: ignore rgw cli flag order in unit test
In the unit test that ensures `rgwCommandFlags` works properly, ignore
the ordering of the flags. Golang maps are used underneath, which
results in random flag ordering. This is fine as long as the
`rgwCommandFlags` are still guaranteed to be appended to the args Rook
normally applies.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit 37c3cc9fba)
2024-12-17 19:42:37 +00:00
Travis Nielsen d61c516005 Merge pull request #15186 from rook/mergify/bp/release-1.16/pr-14646
add rgw ops sidecar for op logs (backport #14646)
2024-12-17 11:30:21 -07:00
Blaine Gardner 68eff7b591 test: fix flaky object config unit test
Use testify/assert.Equal() to compare maps. Comparing string
representations of maps is supposed to be stable but is flaking in GH
actions CI.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit 92c95fcc16)
2024-12-17 17:36:37 +00:00
Deepika Upadhyay b8f4c920e4 object: add rgw ops sidecar for op logs
the rgw operations for s3 can now be accessible using sidecar
rgw-ops-log availabe in json form that can be further filtered logging
for observability, this will set the rgw_enable_ops_log setting

Signed-off-by: Deepika Upadhyay <deepika.upadhyay@clyso.com>
(cherry picked from commit c5d27467d6)
2024-12-17 17:36:14 +00:00
Blaine Gardner 95764f590b object: allow overriding rgw configs and flags
Implement #15119

Allow users to override RGW configurations by specifying Ceph config
options in the CephObjectStore. For configurations that require RGW to
be restarted when the config is applied, allow configs to be specified
as CLI arguments to the RGW as well.

This is an advanced option and is documented as such. Users should be
careful to understand the values they are setting, as there is no
validation to prevent the object store from breaking when these configs
are used.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit aaa16488de)
2024-12-16 22:30:48 +00:00
Travis Nielsen a277f52233 test: add new default fields to csi unit test
With the updated dependencies, the csi unit tests
require new default fields in the comparison of the
json test blob.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit 2fdf173ddf)
2024-12-16 14:47:43 -07:00
Travis Nielsen cef7f2c868 Merge pull request #15173 from rook/mergify/bp/release-1.16/pr-14456
external: fix exporter secret isn't created with external cluster (backport #14456)
2024-12-16 11:49:52 -07:00
Travis Nielsen 0ba187c3ae Merge pull request #15159 from rook/mergify/bp/release-1.16/pr-15138
object: add bucketPolicy to obc (backport #15138)
2024-12-16 11:29:38 -07:00
Yaguang Tang d85e6c7a6b external: fix exporter secret isn't created with external cluster
Fix the issue when using with external ceph cluster, ceph exporter
secret isn't created which cause ceph-exporter fail to run. By
default this option is false means ceph-exporter will run for
external cluster.

monitoring
  metricsDisabled: false

This patch also adds metricsDisabled option to helm values.yaml.

fixes #14275

Signed-off-by: Yaguang Tang <heut20008@gmail.com>
(cherry picked from commit 1563d32fbb)
2024-12-16 17:59:45 +00:00