Commit Graph
1410 Commits
Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
sp98 1aaf42146a mon: allow changing hostNetwork settings
Allow changing spec.network.hostNetwork settings on a running cluster
by failing over the mons

Signed-off-by: sp98 <sapillai@redhat.com>
(cherry picked from commit 42ea2897cf)
2023-12-18 15:55:26 +00:00
sp98 d52312a738 mon: fix mon failover on path change
This PR fails over mon when the mon path is changed from hostPath to PVC or vice versa

Signed-off-by: sp98 <sapillai@redhat.com>
(cherry picked from commit 4b6fd89365)
2023-12-12 18:03:38 +00:00
Alexander Trost ab80b77f49 operator: allow setting ceph config options via ceph cluster crd
This implements the "Ceph Config via Ceph Cluster CRD" design document
as a `cephConfig:` structure on the CRD.
This also fixes the `yq` commands used to manipulate the
`cluster-test.yaml` that caused CI issues for this PR and potentially
unknowingly others.

Signed-off-by: Alexander Trost <galexrt@googlemail.com>
(cherry picked from commit 4ed35d6bd6)
2023-12-02 10:27:44 +00:00
Michael Adam 93bf6540b2 mgr: honor the ContinueUpgradeAfterChecksEvenIfNotHealthy flag
Fixes: #13167

Previously, the mgr did not honor the flag
ContinueUpgradeAfterChecksEvenIfNotHealthy
from the cluster spec. Only osd, mds, and rgw did.

To render the update behavior correct and complete across the daemons, this
change implements the honoring of the flag for the mgr.

Signed-off-by: Michael Adam <obnox@samba.org>
2023-11-29 20:23:25 +01:00
Rakshith R 59cb0dd4bf csi: add CSIDriverOptions section in cephCluster CR
This commit adds new CSIDriverOptions section in
cephCluster CR. This section contains settings
for read affinity and kernel+fuse Mount options
These settings will be injected directly into
rook-ceph-csi-config cm to be applicable per
ceph cluster.

Signed-off-by: Rakshith R <rar@redhat.com>
2023-11-29 19:34:28 +05:30
Travis Nielsen d1c4667c8b Merge pull request #13225 from ushitora-anqou/use-regex-match-for-pdb-reset
core: add pgHealthyRegex to DisruptionManagementSpec
2023-11-27 14:23:25 -07:00
Travis Nielsen 49c4163b32 Merge pull request #13256 from rkachach/fix_issue_radosgw_admin
mgr: adding CEPH_ARGS to the mgr pod so radosgw-admin can use it
2023-11-27 10:01:12 -07:00
Divyansh Kamboj f9d6cd7f3a exporter: change deployment strategy to Recreate
Restarting the exporter using RollingRelease causes a race condition,
that results in exporter crashing and the ceph health to show a warning.

Signed-off-by: Divyansh Kamboj <dkamboj@redhat.com>
2023-11-27 15:20:25 +05:30
Redouane Kachach afc485fa03 mgr: adding CEPH_ARGS to the mgr pod so radosgw-admin can use it
ceph dashboard uses radosgw-admin for certain tasks that
aren't accessible via the rgw REST API. Due to the absence of
a valid ceph.conf file at /etc/ceph/ceph.conf within the mgr pod,
radosgw-admin fails to operate, resulting in 500 errors across
various 'Object Gateway' views on the dashboard. This change
adds CEPH_ARGS environment variable to the mgr pod enabling
its propagation and utilization by the dashboard/radosgw-admin
for executing rgw commands.

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

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-11-23 10:48:55 +01:00
Ryotaro Banno 0ad88e9d68 core: add pgHealthyRegex to DisruptionManagementSpec
This patch adds `pgHealthyRegex` field to DisruptionManagementSpec.
`pgHealthyRegex` is a regular expression that is used to determine which
PG states should be considered healthy. The default value of
`pgHealthyRegex` is:

        ^(active\+clean|active\+clean\+scrubbing|active\+clean\+scrubbing\+deep)$

which is effectively the same as before.

Signed-off-by: Ryotaro Banno <ryotaro.banno@gmail.com>
2023-11-22 00:19:04 +00:00
Travis Nielsen da2513e484 Merge pull request #13248 from rkachach/fix_issue_exporter_interval
mgr: get servicemonitor exporter's interval from MonitoringSpec
2023-11-21 16:02:38 -07:00
Redouane Kachach 6b71325dbe mgr: get servicemonitor exporter's interval from MonitoringSpec
this change updates the serviceMonitor interval of the the rook-ceph-exporter
with the value from the MonitoringSpec.

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

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-11-21 21:47:28 +01:00
Travis Nielsen 38ceb90ab2 Merge pull request #13211 from subhamkrai/pr/gauravsitlani/12957
core: operator to skip reconcile of mgr, rgw, mds and rbd-mirror
2023-11-21 12:15:34 -07:00
avanthakkar 8fa561484a exporter: run exporter with specific keyring
Similar to the ceph crash collector daemon that generates a keyring with more
restrictive privileges, the exporter should also generate and use a more limited keyring.

Signed-off-by: avanthakkar <avanjohn@gmail.com>
2023-11-21 23:52:50 +05:30
gauravsitlani 3d0049c547 core: operator to skip reconcile of mgr, rgw, mds and rbd-mirror daemons in debug
During certain maintenance tasks the admin will own running
operations on the ceph mgr, rgw, mds and rbd-mirror daemons
and the operator should not interfere with those operations.

Co-authored-by: gauravsitlani <gaurav.sitlani@live.com>
Signed-off-by: subhamkrai <srai@redhat.com>
2023-11-21 20:14:16 +05:30
Travis Nielsen 297e8400e5 Merge pull request #12850 from parth-gr/node-telemetry
core: report node metrics using ceph telemetry
2023-11-16 14:55:44 -07:00
parth-gr f007f2aca1 core: report node metrics using ceph telemetry
Add this reporting with the cephcluster reconcile,
Similar way we reported other telemetry's

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

Signed-off-by: parth-gr <paarora@redhat.com>
2023-11-16 19:13:22 +05:30
travisn 03d077aa6b core: remove support for ceph pacific
Pacific is end of life and no longer necessary to
support in Rook with v1.13.

Signed-off-by: travisn <tnielsen@redhat.com>
2023-11-14 17:07:03 -07:00
Redouane Kachach 06bc976959 mgr: set interval of serviceMonitor to the value from MonitoringSpec
This change updates the serviceMonitor interval field with the
value from the MonitoringSpec.

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

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-11-09 06:35:20 +01:00
Travis Nielsen 674407db7b Merge pull request #12952 from sp98/hostpath-to-pvs
mon: failover mons from hostpath to persistent volumes
2023-10-30 11:31:21 -06:00
sp98 09356636fa mon: failover mon from hostpath to pv
failover mons from  hostpath to pv and vice versa

Signed-off-by: sp98 <sapillai@redhat.com>
2023-10-30 11:46:00 +05:30
subhamkrai ef4dd76df1 pool: rbd cmd shouldn't use admin in external mode
when creating networkFence, rbd command was loading
admin config and hence running rbd command use client.admin
in case of external cluster also. With this commit instead
of client.admin user it will use what is being passed to
config.

Signed-off-by: subhamkrai <srai@redhat.com>
2023-10-27 14:45:01 +05:30
travisn a421143ddd Revert "core: use crash profile in crash daemon keyring"
This reverts commit fab23d3407.
The mgr requires rw access for the cron job that collects
the crashes.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2023-10-20 15:46:36 -06:00
sp98 ffd69291f1 osd: use bash script if restart interval is > 0
If `FlappingRestartIntervalHours` for OSD is > 0 in the cephCluster CR,
then start OSD inside a bash script.

Signed-off-by: sp98 <sapillai@redhat.com>
2023-10-11 11:38:26 +05:30
Blaine Gardner 29fa7771f8 Merge pull request #12998 from travisn/exporter-logging
exporter: Change verbose info to debug logs
2023-10-05 11:28:45 -06:00