Commit Graph
3559 Commits
Author SHA1 Message Date
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
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
Travis Nielsen 612979b6f0 Merge pull request #15293 from travisn/node-ceph-conf-override
osd: Enable node specific ceph conf overrides
2025-02-25 14:13:54 -07:00
parth-gr 0999cf9b56 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>
2025-02-25 18:05:07 +05:30
Travis NielsenandDmitry Mishin d109dc9029 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>
2025-02-24 12:12:45 -07:00
Skala Networks d3c3d25c60 csi: bind cephfs and rbd provisionners on non-colliding ports for hostNetwork setups
Signed-off-by: Skala Networks <contact@skala.network>
2025-02-23 06:31:43 -05:00
Blaine Gardner 73c931fc0a Merge pull request #15376 from BlaineEXE/obc-allow-list-obc-fields
object: disallow unsafe OBC fields by default
2025-02-19 12:00:54 -07:00
Blaine Gardner 13cf8f0996 Merge pull request #15393 from BlaineEXE/fix-broken-nfs
nfs: workaround broken nfs-ganesha config parser
2025-02-13 09:51:36 -07:00
Blaine Gardner 55d1a86755 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>
2025-02-13 09:25:07 -07:00
Blaine Gardner 022d68e98b Merge pull request #15371 from jhoblitt/plumbing/user-controller-no-state
object: rm ReconcileObjectStoreUser.userConfig field
2025-02-13 08:53:31 -07:00
Blaine Gardner 0e33536539 object: disallow unsafe OBC fields by default
Implement an allow list mechanism that disables potentially unsafe OBC
fields by default. OBC fields beyond `maxObjects` and `maxSize` don't
neatly fit into the OBC framework as it was originally envisioned and
implemented.

Some of the newly added configs could allow users to cause confusion for
themselves. Others might allow users to hijack others buckets. Some
might allow bricking the entire S3 store.

Out of an abundance of safety, allow-list the known-safe options by
default, and require administrators to enable potentially troublesome
options via the new operator-level config
`ROOK_OBC_ALLOW_ADDITIONAL_CONFIG_FIELDS`.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
2025-02-12 14:18:01 -07:00
Steven Fackler bbe600aa20 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>
2025-02-08 13:39:16 -05:00
Joshua Hoblitt 37b7930e13 object: rm ReconcileObjectStoreUser.userConfig field
This field held state for a single reconciliation request, which
should not have been retrained / reused across multiple, possibly concurrent,
reconciliations.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2025-02-07 14:37:14 -07:00
Joshua Hoblitt 0eef85357a object: obc should not modify existing users
Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2025-02-03 15:19:48 -07:00
Joshua Hoblitt 48a9b90642 object: add obc bucketOwner
Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2025-01-31 08:48:41 -07:00
Blaine Gardner bcb1db361a Merge pull request #15255 from cobaltcore-dev/hostname-topology-label
Hostname topology label
2025-01-28 09:00:50 -07:00
Artem Torubarov 25ee6b4f59 operator: custom hostname topology label
Signed-off-by: Artem Torubarov <artem.torubarov@clyso.com>
2025-01-24 15:59:07 +01:00
Travis Nielsen e17ef88ae8 Merge pull request #15309 from cobaltcore-dev/mon-db-conf-trace-log
operator: log mon db config values with trace lvl
2025-01-24 07:55:27 -07:00
Artem Torubarov 58febcbeab 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>
2025-01-24 15:18:19 +01:00
Santosh Pillai e23e921f28 Merge pull request #15306 from sfackler/wait-for-secret
rgw: fix error handling for secret lookup
2025-01-24 12:06:39 +05:30
Joshua Hoblitt a55fdb3fbe object: add obc bucketLifecycle
Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2025-01-21 16:01:37 -07:00
Joshua Hoblitt f52f48c477 ci: codespell: s/re-using/reusing/
Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2025-01-21 15:11:33 -07:00
Steven Fackler 6935dfdc47 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>
2025-01-21 09:42:46 -05:00
Eng Zer Jun e68a7ea561 build: replace golang.org/x/exp/slices with stdlib slices
The experimental functions in `golang.org/x/exp/slices` are now
available in the standard library in Go 1.21.

Reference: https://go.dev/doc/go1.21#slices
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2025-01-21 15:02:35 +08:00
Travis Nielsen b0aefed8e5 osd: enable node specific ceph conf overrides
Some ceph.conf settings need to be unique per node
depending on the hardware. The ceph.conf overrides
can now be customized per-node by creating a node-specific
configmap that will be loaded for all OSDs and OSD prepare
jobs on that node, instead of the default ceph.conf
that is loaded from the rook-config-override configmap.

The node-specific configmaps must have the label
node.config.rook.io/osd, and be named as:
rook-config-override-<hostname>

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2025-01-17 15:57:48 -07:00
Travis Nielsen f5833cf58f Merge pull request #15270 from cobaltcore-dev/remove-mon-db-conf-log
operator: omit values from mon db config logs
2025-01-16 11:29:37 -07:00
Travis Nielsen 53c419afdd Merge pull request #15258 from OdedViner/pruner_tollerations
core: add tolerations to crashcollector pruner cronJob pod
2025-01-16 10:00:34 -07:00
ArtemandTravis Nielsen db88970641 operator: omit mon db config value log
Co-authored-by: Travis Nielsen <tnielsen@redhat.com>
Signed-off-by: Artem Torubarov <artem.torubarov@clyso.com>
2025-01-16 16:42:34 +01:00