Commit Graph
3213 Commits
Author SHA1 Message Date
Redouane Kachach 0dbf2fec31 mgr: fix UpdateActiveMgrLabel to retry label update on failure
fix UpdateActiveMgrLabel to retry label update on failure. Previously,
the function always returned the current manager, even if update
failed, leading to inconsistent labels. This fix ensures retries on
failures.

Fixes: https://github.com/rook/rook/issues/13601

Signed-off-by: Redouane Kachach <rkachach@ibm.com>
(cherry picked from commit ee7c71c89e)
2024-05-06 19:00:31 +00:00
Travis Nielsen d478902643 osd: legacy osds on lvm pvcs crash on resize init container
OSDs on LVM-mode PVCs are failing to come up and crashing
in the expand-bluefs init container. To avoid the crash
and allow the OSDs to start, a workaround was found to
simply remove that init container. Now we disable the
OSD resize for this case to avoid others hitting this
during upgrade as well.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit acd7b4faa0)
2024-04-22 03:35:08 +00:00
Travis Nielsen 4418c7c142 osd: prevent osd reconcile when device set names duplicated
If device set names are duplicated, the OSDs will be very confused
when multiple OSDs attempt to be configured with the same
device set names. Updating the device set names does not help
get out of the error situation since the OSDs will also be
confused about which device set they belong to. The reconcile
must fail completely if the device set names are duplicated
to avoid this error scenario.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit 7f68d8be38)
2024-04-12 13:27:30 +00:00
Yuma Ogami 192bf512a1 osd: delete the key file deletion in encryption open init containers
The key file deletion process is in the shell script commonly used by
all of encryption-open, encryption-open-metadata, and
encryption-open-wal init containers. The key file is deleted at the
encryption-open init container and encryption-open-metadata and
encryption-open-wal init containers are failed to open the key file.

The key file is in the /etc/ceph folder. Unless that folder is shared,
the key file anyway won't be available in the other init containers
even if it is not deleted by these init containers. And it will
naturally anyway be deleted after the init containers are
completed. So The key file deletion process in shell scripts is
unnecessary.

Fixes: #13737

Signed-off-by: Yuma Ogami <yuma-ogami@cybozu.co.jp>
(cherry picked from commit cdd655ed3f)
2024-03-26 17:22:02 +00:00
Redouane Kachach f90a13f135 monitoring: increasing metrics scraping interval from 5s to 10s
let's increase the monitoring interval to match the default interval
used by Prometheus when deployed by Ceph: 10s

Closes: https://github.com/rook/rook/issues/13883

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
(cherry picked from commit daec93eaaa)
2024-03-14 16:04:31 +00:00
Travis Nielsen b79cc91040 Merge pull request #13924 from rook/mergify/bp/release-1.13/pr-13902
exporter: applying labels from monitoring section to ceph-exporter (backport #13902)
2024-03-13 15:17:34 -06:00
Redouane Kachach bbc482d82f exporter: applying labels from monitoring section to ceph-exporter
the labels listed under the 'monitoring' section are currently only
being applied to the rook-ceph-mgr ServiceMonitor. This change extends
those labels to also include the rook-ceph-exporter ServiceMonitor.

Fixes: https://github.com/rook/rook/issues/13774

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
(cherry picked from commit 10e26709c4)
2024-03-13 14:11:01 +00:00
Travis Nielsen 8fae43f143 core: set default ceph version to v18.2.2
With the release of Reef v18.2.2 we update the default
recommended version of Ceph to fix the prometheus issues
seen with v18.2.1

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit 026d745f8a)
2024-03-12 16:08:54 +00:00
mergify[bot] a7fc1f3005 Merge pull request #13797 from rook/mergify/bp/release-1.13/pr-13793
manifest: reduce CRD size by removing some descriptions (backport #13793)
2024-03-07 20:03:52 +00:00
Rakshith R d50b65b042 csi: update CSIDriverOption params during saving cluster config
During cluster creation, csi config map was first filled with
mon ips and without CSIDriverOptions.
This commit makes sure CSIDriverOptions are added at the begining
when the entry is first created.

Signed-off-by: Rakshith R <rar@redhat.com>
(cherry picked from commit 330f604cca)

# Conflicts:
#	pkg/operator/ceph/csi/cluster_config.go
#	pkg/operator/ceph/csi/cluster_config_test.go
2024-03-07 16:57:02 +05:30
Madhu Rajanna 522526ae6d csi: update sidecars to latest release
updating all the csi sidecars to the
latest release.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit 43fa57fa57)
2024-03-01 11:25:08 -07:00
subhamkrai 28182e9214 csi: remove cephFs networkFence code temporarily
cephFs fencing needs more testing and bug fixes to make
it in production. We tried multiple fixes but still it need
more work. So, removing the cephfs networkFence realted code
will rever this commit when we start working on this again.

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit bd4250f56e)
2024-02-22 12:31:32 +05:30
subhamkrai 5a15f6af30 csi: check networkFence status before deleting
earlier, we were only checking the specs of networkFence to see if
unfencing is done before proceeding with deletion but we should also
check the status of networkFence before proceeding with deletion.

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit 0ace7cf8cf)
2024-02-22 12:29:25 +05:30
sp98 b0cb722638 mon: set mon pdb max unavailable as 2 in case of 5 or more mons
If the spec.mon.count is 5 or more, then create
mon pdbs with maxUnavailable count as 2. We can
afford to have more than 1 mons down while
draining the nodes in this case.

Signed-off-by: sp98 <sapillai@redhat.com>
(cherry picked from commit a4866b4b06)
2024-02-20 19:29:36 +00:00
Redouane Kachach c181e05dc4 manifest: reduce CRD size by removing some descriptions
Reduce CRD size by removing some descriptions for things that
(a) are long, (b) are repeated, and (c) are commong kubernetes types.

Remove the `Status` field from VolumeClaimTemplates (a.k.a. PVCs) in
types.go to remove all unnecessary status-related fields.

Use `yq` to go through generated `crds.yaml` to strip out descriptions
for well-known k8s types that are long and repeated where we can't
remove them from types.go. This is mostly placement descriptions and
volumeSource descriptions.

The overall `crds.yaml` file is reduced to less than 60% of its original
size.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
Signed-off-by: Redouane Kachach <rkachach@redhat.com>
Co-authored-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit bd7477ec61)

# Conflicts:
#	deploy/charts/rook-ceph/templates/resources.yaml
#	deploy/examples/crds.yaml
2024-02-20 19:02:30 +00:00
Madhu Rajanna 1149d91a48 core: retry other pvc if active client not found
retry other cephfs/rbd pvc if there
are no active clients found on ceph cluster.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit ca21bd9715)
2024-02-14 18:57:11 +00:00
Madhu Rajanna c9b2e9f6af core: use error wraping in fenceCephFSVolume
to keep the code consistent and to propogate
more details about error rook uses error wraping.
updating current code whereever its required to
wrap the details.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit eb97390df2)
2024-02-14 18:57:11 +00:00
Madhu Rajanna 3a5eb389e2 core: fix cephfs pvc network fencing
The cephfs PVC might exist on the kubernetes
node object but due to some timing issues the
ip might not be visible on the ceph cluster or
the client might already got evicted or disconnected
from ceph cluster. In this case we will not be
able to get IP details for the subvolume and we dont
have any check for empty ip's in the code and rook
tries to create NetworkFence CR with empty Ip's
and the NetworkFence will get moved to the Failed state.
This PR adds the necessary check and logging to prevent
this one.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit 0e115c44bf)
2024-02-14 18:57:11 +00:00
Travis Nielsen f6751d75ce Merge pull request #13767 from rook/mergify/bp/release-1.13/pr-13718
core: Delete networkFence CRs during cluster removal (backport #13718)
2024-02-13 21:18:00 -07:00
subhamkrai 01142d56d4 core: remove namespace/ownerRef from networkFence
since networkFence is a cluster-based resource so that we don't need
the namespace and ownerReferences as it cause garbage-collector errors.
Also, now we create the networkFence with clusteUID label so when doing
cleanup we match the cephCluster uid and networkFence label clusterUID.

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit 5bff860380)
2024-02-13 21:56:34 +00:00
Redouane Kachach f6458e91ae mgr: remove privileged security context from mgr sidecar container
Mgr sidecar was using a privileged security context because it needed
to create the /var/lib/rook directory, generate the config on it, and
then copy it to the /etc/ceph directory. This change creates empty
directories on /var/lib/rook and /etc/ceph so the mgr sidecar can use
them, removing the need for using a privileged security context.

Fixes: https://github.com/rook/rook/issues/13719

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
(cherry picked from commit db4b3322fa)
2024-02-13 14:59:52 +00:00
Madhu Rajanna c6c2cdfa29 csi: update cephcsi image to 3.10.2
Updating the cephcsi image to 3.10.2
which is the latest released one.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit c22597a32c)
2024-02-09 18:21:53 +00:00
subhamkrai 0113cc85c5 core: remove ownerRef from networkFence
since networkFence is a cluster-based resource so that we don't need
the namespace and ownerReferences as it cause garbage-collector errors.

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit 2ac418a3b2)
2024-02-08 18:27:28 +00:00
Ryotaro Banno f4291a3e0a core: set blocking PDB even if no unhealthy PGs appear
When `managePodBudgets` is enabled, the Rook operator sets a blocking
PDB by considering the failure domains of the OSDs. This functionality
is implemented by `reconcilePDBsForOSDs`, and it sets the PDB only after
unhealthy PGs appear. However, there are no unhealthy PGs when an OSD
with no PGs becomes down. In this case, the PDB is never enabled.

This PR makes the operator configure the blocking PDB without waiting
for the unhealthy PGs to appear. This PR solves the above problem
because the blocking PDB is always enabled when a down OSD is detected.

Signed-off-by: Ryotaro Banno <ryotaro.banno@gmail.com>
(cherry picked from commit 6def9c8e30)
2024-02-06 18:47:17 +00:00
mergify[bot] 9221e5910c Merge pull request #13688 from rook/mergify/bp/release-1.13/pr-13615
csi: update network fence CR name (backport #13615)
2024-02-06 18:34:27 +00:00
Travis Nielsen 73e2fdb34f Merge pull request #13682 from rook/mergify/bp/release-1.13/pr-13652
core: Skip reconcile if override configmap is empty (backport #13652)
2024-02-06 11:34:12 -07:00
travisn 285d5fcabf core: skip reconcile if override configmap is empty
If the configmap rook-config-override is empty,
there is no need to trigger the reconcile to update
the ceph daemons. This configmap update is causing
unnecessary reconciles periodically in some clusters
even when it is empty.

Signed-off-by: travisn <tnielsen@redhat.com>
(cherry picked from commit 0240ee8563)
2024-02-06 17:49:26 +00:00
Riya Singhal 49aa21c93c csi: update network fence CR name
this commit updates the name of network fence CR to
node name + driver name, which will allow the creation of
multiple network fence per drivers on the same node, and
modifies the unit test and deletion procedure for the
same.

Signed-off-by: Riya Singhal <rsinghal@redhat.com>
(cherry picked from commit c2e3cf367c)
2024-02-06 17:48:53 +00:00
Jiffin Tony Thottan fb9befd501 object: add check specific to name and namespace for ceph cosi driver
The name for cephcosi driver should be ceph-cosi-driver and namespace
should same as the rook operator. Otherwise request need to be failed.

Fixes: #13025
Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
(cherry picked from commit 5b5e1c0292)
2024-02-06 17:48:34 +00:00
Travis Nielsen 2b876080ec Merge pull request #13668 from rook/mergify/bp/release-1.13/pr-13653
exporter: Don't delete exporter service on daemon deletion (backport #13653)
2024-02-01 10:17:05 -07:00
Praveen M e596f31cf0 csi: fix NetNamespaceFilePath generation
Corrected the NetNamespaceFilePath generation in the
subvolumegroup & radosnamespace controller by replacing
the cephCluster.Name with cephCluster.Namespace.

Signed-off-by: Praveen M <m.praveen@ibm.com>
(cherry picked from commit 67ff924b57)
2024-02-01 16:33:34 +00:00
travisn af513df7c4 exporter: dont delete exporter service on daemon deletion
The exporter service and service monitor should not
be deleted if an individual daemon is being removed
from a node. As long as the exporter is enabled with
v18 and newer, the exporter service and service monitor
should exist. Clusters were seeing their metrics stop
collection when the exporter service and service monitor
would disappear, especially when multiple clusters are
configured.

Signed-off-by: travisn <tnielsen@redhat.com>
(cherry picked from commit a1fc70f2fc)
2024-02-01 16:31:54 +00:00
Travis Nielsen dd7e6e4b81 Merge pull request #13640 from rook/mergify/bp/release-1.13/pr-13622
csi: option to customize csi driver name prefix (backport #13622)
2024-01-31 16:38:07 -07:00
Redouane Kachach 64e01267c6 mgr: use the ac-user-set-password cmd to update the password
previous code was calling the following command to create the
dashboard user:
> ceph dashboard ac-user-create <username> -i <password-file>
this works the first time when the user doesn't exist, however subsequent
calls for example when the password has changed or when the secret was
deleted from k8s, will not take place as this command will succeeded
because the user already exists but the password is not updated in
this case. The fix consists in adding an explicit call to the command:
> ceph dashboard ac-user-set-password <username> -i <password-file>
which ensures the password is updated correctly in the access control db

Fixes: https://github.com/rook/rook/issues/13594

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
(cherry picked from commit cb028f3a28)
2024-01-31 15:48:00 +00:00
parth-gr 2cc5682a35 object: fix the deafult multisite zonegroup creation
there was a bug in the code which doesn't
sets realm if we try to get the zonegoup
so because of that 1.12 this backport pr
for original change was not working

Signed-off-by: parth-gr <partharora1010@gmail.com>
(cherry picked from commit a9c77280c6)
2024-01-31 14:57:45 +00:00
Jiffin Tony Thottan 7b8a63817a object: watch updates for cosidriver crd
The changes made to cosi driver are reflected. Add the cosidriver crd to
predicate workflow.

Fixes: #12545
Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
(cherry picked from commit 3da2331fa3)
2024-01-30 16:07:18 +00:00
Madhu Rajanna 61bab8d17a csi: option to customize csi driver name prefix
For now we are using the operator namespace name
as the prefix for the csi driver, This PR provides
an option for the users if someone wants to have
their own prefix for the csi driver, if someone tries
to change the prefix for existing csi driver rook
operator will fail to reconcile the csi driver.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit c35a8532aa)
2024-01-29 11:27:10 -07:00
Redouane Kachach 32ba155566 mgr: adding logic to keep retrying in case mgr config delete fails
we dont set removeMgrDaemonConfiguration to true unless all the
delete operations went successfull.

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
(cherry picked from commit 39c06d2fa5)
2024-01-26 01:52:12 +00:00
Redouane Kachach 5baaf2da46 mgr: fixing dashboard configuration handling
previously, the dashboard parameters supported by Rook were stored in the
daemon configuration section (mgr.X, for example). This differs from
Cephadm-based deployments, where all configurations are stored in the
global mgr configuration section. This variance could result in
configuration mismatches between the active and standby dashboards.
Furthermore, all Ceph dashboard documentation exclusively points to
the global mgr configuration section and makes no use of individual
daemons sections.

Fixes: https://github.com/rook/rook/issues/13577

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
(cherry picked from commit 57e3937d40)
2024-01-26 01:52:12 +00:00
sp98 d57584ed1a osd: wait for the pgs to be clean
If migration of the OSDs is enabled, operator should wait
for the pgs to be clean after the all the OSDs have reconciled.
This will help add the exponential backoff for the operator
restarts when OSD migration is needed but PGs are still rebalancing the
data after last OSD migration.

Signed-off-by: sp98 <sapillai@redhat.com>
(cherry picked from commit 43d3bf147a)
2024-01-23 00:42:50 +00:00
travisn 1b171ee34b exporter: skip reconcile on exporter deletion
The exporter pod is ephemeral and frequently being deleted
and re-created when ceph daemons are created. Therefore,
we need to skip reconciling based on the deletion
of the exporter deployment.

Signed-off-by: travisn <tnielsen@redhat.com>
(cherry picked from commit 995a64fb3a)
2024-01-22 16:39:38 +00:00
mergify[bot] 9e95479384 Merge pull request #13587 from rook/mergify/bp/release-1.13/pr-13573
csi: make leader election flags configurable (backport #13573)
2024-01-18 19:34:49 +00:00
Madhu Rajanna d4dcecea65 csi: make leader election flags configurable
This commit adds the flexibility to configure
leader election flags as per the user
requirement and also keeps the existing values
as the default one.

resolve: #13475

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit 9b418d24a1)
2024-01-18 18:56:20 +00:00
Madhu Rajanna 50d5d1ccd5 csi: update csi provisioner to 3.6.3
updating csi provisioner to 3.6.3 to
as we have a bug in 3.6.2

resolves: #13475

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit 85b86efee1)
2024-01-17 19:47:12 +00:00
Praveen M d568fb75aa csi: update cmdline args as used by ceph-csi
This commit adds cmdline args to enable
1. RecoverVolumeExpansionFailure
2. PreventVolumeModeConversion
3. HonorPVReclaimPolicy

Signed-off-by: Praveen M <m.praveen@ibm.com>
(cherry picked from commit a80396df1b)
2024-01-16 19:30:36 +00:00
Satoru Takeuchi 4505a4f8e4 core: core: fix error handling on setting watcher
If `cmClient.Watch()` failed, `watcher.Stop()` causes null pointer
dereference.

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
(cherry picked from commit b1a81509a5)
2024-01-09 13:19:00 +00:00
travisn 0c4daa788e docs: update all examples to ceph v18.2.1
Since v18.2.1 is the default recommendation for the ceph version,
update all the docs and examples to that version.

Signed-off-by: travisn <tnielsen@redhat.com>
(cherry picked from commit 56a3370d83)
2024-01-04 16:10:42 +00:00
Travis Nielsen c3244677ca Merge pull request #13448 from rook/mergify/bp/release-1.13/pr-13348
csi: implement network fencing for cephFS (backport #13348)
2023-12-19 14:07:00 -07:00
Riya Singhal 8d6ded42c3 csi: implement network fencing for cephFS
Signed-off-by: Riya Singhal <rsinghal@redhat.com>
(cherry picked from commit 9202e20829)
2023-12-19 19:23:27 +00:00
Riya Singhal 8cdf1e6da3 csi: update default cephcsi version to 3.10.1
This commit updates default cephcsi driver version
to v3.10.1

Signed-off-by: Riya Singhal <rsinghal@redhat.com>
(cherry picked from commit ef1ee6ebae)
2023-12-19 19:22:28 +00:00