Commit Graph
3904 Commits
Author SHA1 Message Date
Travis Nielsen afb6bce4b7 Merge pull request #14981 from GrantFleming/allow-arbiter-failover-in-stretch
operator: monitors should always be allowed to failover
2024-11-08 09:22:42 -07:00
Grant Fleming cdf692d227 operator: monitors should always be allowed to failover
Previously arbiter monitors were allowed to failover in supported versions
of Ceph. This behaviour regressed. Since all supported versions of Ceph now
support this, we no longer need to check this at all.

Signed-off-by: Grant Fleming <gfleming@evroc.com>
2024-11-08 16:48:05 +01:00
Santosh Pillai a344ff53f3 core: add pool IDs to cephBlockPool CR status
Adding pool ID of the cephBlockPool in the CR status

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2024-11-08 21:07:48 +05:30
parth-gr ed5013e9c6 rbdmirror: add disable check for status check
enable and disable the status of rados namespace
mirroring by looking at statusCheck spec of blockpool

Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-11-06 22:42:46 +05:30
parth-gr eec2b3e581 rbdmirror: fix mirroring monitoring settings for blockpool
currently if we disable the monitoring for cephblockpool
it didnt worked, as there was no check to cancel it
if the mirroring is still enabled

Add a check to disable the monitoring if mirroring is still enabled

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

Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-11-06 11:56:16 +05:30
Travis Nielsen c5df2fe721 Merge pull request #14824 from prazumovsky/fix-5-2-8
core: add capabilities to securityContext to fix CIS 5.2.8
2024-11-05 12:32:43 -07:00
Blaine Gardner 8f6da3d6da Merge pull request #14897 from OdedViner/delete_pool_item
rbd: CephBlockPool enableRBDStats not clearing rbd_stats_pools
2024-11-05 11:07:31 -07:00
Travis Nielsen 1ed625152a Merge pull request #14951 from cobaltcore-dev/keep-default-placement
rgw: keep default-placement in zone config
2024-11-05 09:17:17 -07:00
Travis Nielsen 7692cae359 Merge pull request #14896 from parth-gr/rbd-mirror-rados-monitor
rbd: enable periodic monitoring for rados namespace mirroring
2024-11-05 09:15:32 -07:00
Oded Viner 8dea77255b pool: fix CephBlockPool enableRBDStats not clearing rbd_stats_pools
This PR fixes an issue where disabling enableRBDStats in CephBlockPool did not remove
the pool from rbd_stats_pools, leading to unnecessary monitoring.
The update ensures that when enableRBDStats is set to false,
the pool is properly removed from rbd_stats_pools, optimizing resource tracking.

Signed-off-by: Oded Viner <oviner@redhat.com>
2024-11-05 15:03:21 +02:00
Peter Razumovsky 97a13628e5 core: add capabilities to securityContext to fix CIS 5.2.8
Resolves CIS benchmark 5.2.8 rule by adding capabilities with
explicitly defined empty "add" list (where it needed) and with
NET_RAW capability in "drop" list.

5.2.8 Minimize the admission of containers with added capabilities

Containers must drop the `NET_RAW` capability and are not permitted
to add back any capabilities.

Signed-off-by: Peter Razumovsky <prazumovsky@mirantis.com>
2024-11-05 16:27:43 +04:00
Artem Torubarov 8ad2bf88bb rgw: keep default-placement in zone config
Signed-off-by: Artem Torubarov <artem.torubarov@clyso.com>
2024-11-05 10:47:10 +01:00
parth-gr 9785ef5c8d rbdmirror: enable periodic monitoring for rados namespace
enable monitoring for rados namespace

Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-11-05 13:45:02 +05:30
Travis Nielsen 0b666c0a3f Merge pull request #14952 from travisn/fs-standby-update
mds: Wait for mds standby upgrade for same fs
2024-11-04 10:40:00 -07:00
Travis Nielsen 13495aea5a Merge pull request #14941 from travisn/detect-version-resources
core: Set resources on the detect version job
2024-11-04 10:14:38 -07:00
Travis Nielsen 99d60c5bba mds: wait for mds standby upgrade for same fs
The upgrade of the mds daemons pauses to wait for the
stopping of standby daemons before the filesystem upgrade
is completed. If there are multiple filesystems, there
could be standbys for other filesystems that will not be
stopped at the time of the upgrade of another filesystem.
Thus, the standbys may not upgrade and be stuck on the
previous version. Now, the standby upgrade will only wait
for standbys for the same filesystem.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-11-01 14:03:13 -06:00
Travis Nielsen f489f99e13 core: set resources on the cmd reporter jobs
If the cmd-reporter key is set under the resources
element in the CephCluster CR, the memory and cpu request
and limits will be set on the ceph detect version job
and network job accordingly.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-10-31 14:52:57 -06:00
Travis Nielsen 7fbe4e7db5 osd: allow scheduling on unschedulable nodes
For nodes that are explicitly requested for deploying
OSDs, they will be skipped temporarily if not
schedulable or not ready. A future reconcile is
expected to schedule them. Allow the OSDs to be
scheduled even on these nodes that are temporarily
down, even if it blocks the reconcile from completing.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-10-31 14:05:36 -06:00
Travis Nielsen 2ff429e479 csi: remove version check for k8s and cephcsi
The version checks for the csi driver are removed now
since they are all obsolete. The K8s version and cephcsi
versions are no longer checked. Anyway, the move to the
csi operator would take ownership of version checks
needed in the future, so for now we simplify rook
deployment of the csi driver.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-10-30 14:03:51 -06:00
Blaine Gardner 7bb72a0171 object: also use system certs for validating RGW cert
When generating the HTTP client used for RGW admin ops, use both system
certs as well as the user-given cert.

As a real world example, admins may use ACME to rotate Letsencrypt certs
every 2 months. For an external CephObjectStore, the cert used by Rook
and RGW may not be rotated at the same time. This can cause the Rook
operator to fail CephObjectStore reconciliation until both certs agree.

When Rook also relies on system certs in the container, Rook's
reconciliation will not have reconciliation failures because
Letsencrypt's well-known and trusted root certificates can be loaded
from the system to validate the RGW's newly-rotated cert.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
2024-10-25 11:22:11 -06:00
Blaine Gardner c7dfe7837e Merge pull request #14884 from cobaltcore-dev/rgw-default-placement
rgw: support custom name for default pool placement
2024-10-25 10:30:58 -06:00
Travis Nielsen b52ba6baca test: wait for mon daemons rather than mon canaries
The mon canaries may be created even when the mon daemons
are not created thereafter during the integration tests.
Therefore, the integration tests need to also query a label
specific to the mon daemon so the canaries are not a distraction
to the test.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-10-25 09:17:02 -06:00
Artem Torubarov b47dff9770 rgw: support custom name for default pool placement
introduce Default flag to CRD

Signed-off-by: Artem Torubarov <artem.torubarov@clyso.com>
2024-10-25 12:52:06 +02:00
Satoru Takeuchi f50734962b Merge pull request #14901 from guits/add-udev-bindmount
osd: mount /run/udev in the init container for ceph-volume activate
2024-10-25 16:18:08 +09:00
Travis Nielsen 3b94c50d8b Merge pull request #14818 from iPraveenParihar/kms/vault-keyrotation
kms: key rotation support for vault kms
2024-10-24 11:38:33 -06:00
Blaine Gardner 7a4cf8d93c Merge pull request #14819 from BlaineEXE/holder-pods-remove-config
multus: finish deprecating holder pods
2024-10-24 10:55:02 -06:00
Travis Nielsen 58df41e0cf Merge pull request #14895 from Madhu-1/cleanup-block
core: Cleanup blockpool with annotation
2024-10-24 10:28:31 -06:00
Guillaume Abrioux dbcd0d46dd osd: mount /run/udev in the init container for ceph-volume activate
The /run/udev directory is now mounted in the OSD init container. This change
is necessary because `ceph-volume activate` needs access to /run/udev [1] in order
to properly handle devices. Without this mount, `ceph-volume activate` could
fail to discover devices during OSD initialization.

[1] https://github.com/ceph/ceph/commit/c2e8c295dc46f1bd74861feb163d9d82f8bb5509

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
2024-10-24 17:16:10 +02:00
Blaine Gardner 5539eedd1b multus: finish deprecating holder pods
Finish the process of deprecating holder pods by removing Rook's ability
to deploy them. The intent of this change is to make the most
superficial changes possible to accomplish this. There are still
remnants of code in Rook (particularly the CSI controller) that helped
configure or deploy holder pods. Due to the risk of breaking some
features, cleanup work of hose remnants will be deferred for future
work.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
2024-10-23 16:29:02 -06:00
Joshua Hoblitt f51cfbdf6b object: add bucketMaxObjects & bucketMaxSize to obc
Two new keys are added to ObjectBucketClaim.spec.additionalConfig to
support the configuration of bucket scope quota(s). This differs from
the existing maxObjects & maxSize keys, which manage a user scope
quota(s) on the automatically generated rgw user.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2024-10-23 14:39:38 -07:00
Madhu Rajanna 4e29717317 core: cleanup blockpool with annotation
This is similar to #14052 we did for radosnamespace
and this is an extension to support cleanup
at the blockpool level to cleanup the images
and the snapshots in a pool.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2024-10-23 12:20:31 +02:00
Praveen M d8c0242c29 security: key rotation support for vault kms
Signed-off-by: Praveen M <m.praveen@ibm.com>
2024-10-23 11:43:49 +05:30
Travis Nielsen 615086ccf2 Merge pull request #14715 from cobaltcore-dev/rgw_new_shared_pools
rgw: support new zone pools
2024-10-22 15:39:05 -06:00
Artem Torubarov f6a25b0c4b rgw: support v19 zone pools
add rgw shared pools rados ns to topics_pool, account_pool, and group_pool

Signed-off-by: Artem Torubarov <artem.torubarov@clyso.com>
2024-10-22 11:23:42 +02:00
Blaine Gardner 1c917743b4 Merge pull request #14827 from jhoblitt/feature/parseAdditionalConfig
object: set obc user quota(s) in one SetUserQuota() call
2024-10-18 16:57:50 -06:00
Joshua Hoblitt 9243764359 object: set obc user quota(s) in one SetUserQuota() call
Previously, up to 3 calls to SetUserQuota() could be made. This has been
consolidated into a single call. Additionally, the `addtionalConfigSpec`
struct is introduced to centralize handling of `.spec.additionalConfig`
keys and as foundational work to support new keys in the future.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2024-10-18 15:27:01 -07:00
Travis Nielsen 6428693e1c Merge pull request #14823 from prazumovsky/fix-cis-5-7-3-1
core: define empty securityContext for pods to fix CIS 5.7.3
2024-10-17 11:46:16 -06:00
Santosh Pillai 8dd237b460 core: fix deletion of the osd-replace-config cm
MustDelete DeleteOption was set to `true` when deleting
osd-repalce-config configMap.  This cm won't existing after
all the OSDs get migrated. So deletion of the non-existent
cm will result in error. This PR removes `mustDelete: true` from
the DeletionOption when deleting osd-replace-config configmap

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2024-10-16 16:18:29 +05:30
Travis Nielsen 119362059b Merge pull request #14854 from travisn/exporter-cleanup
core: Skip counting exporter pods as a ceph pod
2024-10-15 10:09:17 -06:00
Travis Nielsen a71078b733 core: skip counting exporter pods as a ceph pod
The exporter pods were being counted as a ceph pod,
so once an exporter pod was added to a node, it would never
be removed since the controller thinks the exporter pod
itself is a ceph pod for which the exporter must be present.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-10-14 21:32:22 -06:00
Travis Nielsen 7ed77ddd13 core: remove obsolete creation of v1beta1 pruner cron jobs
The v1beta1 cron jobs have been obsolete since K8s 1.21,
and Rook has not supported that version of K8s
for many moons, so we can remove the obsolete code
for the handling of v1beta1 cron jobs for crash pruning.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-10-14 17:13:06 -06:00
Travis Nielsen 09562fdda5 Merge pull request #14831 from Madhu-1/disable-fencing
csi: disable fencing in Rook
2024-10-11 10:25:35 -06:00
Madhu Rajanna 1d1ed5e962 csi: disable fencing in Rook
Disabling the RBD and CephFS fencing
in Rook for now as its having bugs where
Rook is blocklisting wrong IP address
due to timing issues.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2024-10-10 19:28:15 +02:00
Travis Nielsen 0fa21969df Merge pull request #14701 from parth-gr/rbd-mirror-rados
rbdmirror: enable rbd rados namespace mirroring
2024-10-10 09:35:22 -06:00
parth-gr 2cef47a9b7 rbdmirror: enable rbd rados namespace mirroring
Modify the CR to allow mirroring of an rados namespace
to a differently named namespace on the remote cluster

1) enable rados namesapce mirroring only
if the blockpool mirrroing is enabled

2) disable blockpool mirroing only if
all the namesapce mirroing is disabled

if the rbd mirroring fails and ceph version is not supported
provide a error message with supported version details
and reason of failing

Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-10-10 14:23:11 +05:30
Peter Razumovsky 516eab4d8a core: define empty securityContext for pods to fix CIS 5.7.3
Resolves CIS benchmark rule 5.7.3, Pods part. SecurityContext
should be explicitly defined in pod level of Pod spec section.
It is sufficient to specify empty securityContext to satisfy
CIS 5.7.3 rule.

5.7.3 Apply Security Context to Your Pods and Containers

When designing your containers and pods, make sure
that you configure the security context for your pods,
containers, and volumes.

Signed-off-by: Peter Razumovsky <prazumovsky@mirantis.com>
2024-10-09 16:10:03 +04:00
Travis Nielsen 82eada0f98 Merge pull request #14805 from travisn/remove-extra-mon
mon: Do not remove extra mon in middle of failover
2024-10-07 07:19:12 -06:00
subham rai 681f38b888 Merge pull request #14798 from BlaineEXE/mds-liveness-probe-fix-timeout
mds: fix liveness probe timeout
2024-10-07 11:47:15 +05:30
Blaine Gardner ad1bae9e1b mds: fix liveness probe timeout
When the MDS liveness probe times out, it should not fail the probe. If
the cluster has a network partition or other issue that causes the Ceph
mon cluster to become unstable, `ceph ...` commands can hang and cause
a timeout. In this case, the MDS should not be restarted so as to not
cause cascading cluster disruption.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
2024-10-04 16:20:47 -06:00
Travis Nielsen e2cadab6fe mon: do not remove extra mon in middle of failover
If the mon failover is in progress, ensure the removal
of an extra mon deployment is skipped since that code
path only has one mon in the list for the mon that was
just newly started. The extra mon was erroneously removing
a random mon in that case, followed immediately by the mon
failover completing and removing the expected failed mon,
and potentially causing mon quroum loss.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-10-04 14:29:57 -06:00