Commit Graph
503 Commits
Author SHA1 Message Date
Travis Nielsen 22b95dbbfd Merge pull request #12977 from anthonyeleven/improve-csi-addons
12976 : Improve Documentation/Storage-Configuration/Ceph-CSI/ceph-csi…
2023-12-04 10:10:52 -07:00
Alexander Trost 3097455d78 Merge pull request #13246 from koor-tech/ceph_config_via_cluster_crd_impl
operator: allow setting ceph config options via ceph cluster crd
2023-12-02 11:27:20 +01:00
Anthony D'Atri 59d0240676 doc: improve ceph-csi-drivers.md and lintrolling
Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
2023-12-01 16:10:11 -07:00
Alexander Trost 4ed35d6bd6 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>
2023-12-02 00:05:48 +01:00
Travis Nielsen 25f5a23072 Merge pull request #13196 from parth-gr/external-rados
external: add support for rados namespace for external cluster
2023-12-01 12:21:25 -07:00
Blaine Gardner 20ce9da197 Merge pull request #13177 from subhamkrai/add-cel
webhook: add validating admission policy
2023-12-01 09:56:03 -07:00
Blaine Gardner f4d67fd4db Merge pull request #13261 from subhamkrai/remove-controller-runtime
core: remove webhook & controller-runtime from apis
2023-12-01 09:55:34 -07:00
subhamkrai ae15604fbe webhook: add validating admission policy
this commit adds validating admission policy
for cephcluster cr according to webhook rules.
Not all the webhook can be moved to validating
admission policy for example checking multus
selector validation.

Signed-off-by: subhamkrai <srai@redhat.com>
2023-12-01 22:01:12 +05:30
subhamkrai 28cc1ebc55 core: remove webhook & controller-runtime from apis
This commits removes controller-runtime dependencies
from the apis dir and to achieve that we are removing
webhook.

Signed-off-by: subhamkrai <srai@redhat.com>
2023-12-01 14:15:40 +05:30
parth-gr 939a1b7d20 subvolumegroup: add name spec in subvolumegroup
Originally we create it using this cmd
ceph fs subvolume create <vol_name> <subvol_name>
So we can have 2 variables filesystem and subvolume name,
Currently the CR doesn't allow us to make subvolume-name
as constant as needed to "csi" because of k8s limitations

Signed-off-by: parth-gr <paarora@redhat.com>
2023-11-30 20:39:11 +05:30
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
parth-gr df7c401d35 external: add support for rados namespace for external cluster
change the json output of storageclass to also inclusde rados namespace,
and also added the changes in the csi secret

Signed-off-by: parth-gr <paarora@redhat.com>
2023-11-28 11:52:30 +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
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 346746c43b Merge pull request #13244 from iPraveenParihar/upgrade-sidecar-versions
csi: update csi sidecars' image version
2023-11-21 12:10:49 -07:00
Blaine Gardner 891edb1cbd Merge pull request #13230 from koor-tech/ceph_config_via_cluster_crd
build: use /usr/bin/env to look up script interpreters
2023-11-21 10:07:56 -06:00
Alexander Trost fcf52207f8 build: use /usr/bin/env to look up script interpreters
Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2023-11-21 14:38:22 +01:00
Praveen M ddf03bce6f csi: update csi sidecars' image version
csi-node-driver-registrar: v2.9.1
csi-resizer: v1.9.2
csi-provisioner: v3.6.2
csi-attacher: v4.4.2
csi-snapshotter: v6.3.2
Signed-off-by: Praveen M <m.praveen@ibm.com>
2023-11-21 14:41:57 +05:30
Travis Nielsen 6b1f912958 Merge pull request #13236 from rkachach/fix_issue_monitoring_namespace
manifest: adding the namespace tag to the monitoring manifests
2023-11-20 11:43:05 -07:00
Redouane Kachach 147f6e2e78 manifest: adding the namespace tag to the monitoring manifests
including the namespace tag in the monitoring manifests to streamline
the automated process of modifying them through scripting

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-11-20 17:19:37 +01:00
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
Shachar Sharon 7c3e91390e nfs: add optional LivenessProbe to GaneshaServerSpec
Allow end-user to have full control on NFS-Ganesha liveness probe:

  - Disabled
  - Enabled, using user-provided definition
  - Enabled, using Rook's default liveness probe for Ganesha.

Signed-off-by: Shachar Sharon <ssharon@redhat.com>
2023-11-13 16:21:24 +02:00
Madhu Rajanna 5658e026cb csi: remove deprecated grpc metrics code
GRPC metrics got deprecated in cephcsi
3.7.0 and the deprecated flags will get
removed in the next release. This PR
removes the deprecated metrics code which
allow us to run with older cephcsi as well.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2023-11-07 11:24:17 +01:00
Blaine Gardner 35bd18660e Merge pull request #13123 from Sheetalpamecha/mmultus-validation-test
multus: improve the multus validation test's flakiness metric
2023-11-01 09:44:19 -06:00
Travis Nielsen d5b26c3edb Merge pull request #13115 from rkachach/fix_issue_adding_cluster_pvc_local
test: adding an example for cluster on local pvc creation
2023-10-31 09:43:44 -06:00
Sheetal Pamecha 06c176524a multus: improve the multus validation test's flakiness metric
Allow the flakiness threshold window to be tuned from the cli

Signed-off-by: Sheetal Pamecha <spamecha@redhat.com>
2023-10-31 15:23:10 +05:30
Redouane Kachach f95c96ad29 test: adding an example for cluster on local pvc creation
adding an example for a cluster where local pvc are used
for mon store and for OSD creation

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-10-30 17:30:45 +01:00
Redouane Kachach d6aae62879 manifest: fix rook-ceph-mgr-system role and namespace
Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-10-26 16:17:32 +02:00
Travis Nielsen 72452f0558 Merge pull request #13089 from rkachach/fix_issue_second_cluster
docs: unifying namespaces handling for the second cluster creation
2023-10-25 08:00:47 -06:00
Travis Nielsen 63ba241ded Merge pull request #13060 from parth-gr/external-updation
external: fix monitoring endpoint check
2023-10-25 07:43:35 -06:00
Redouane Kachach 13654d3c3d docs: unifying namespaces handling for the second cluster creation
Let's use the same technique based on 'sed' while employing two
different namespaces for the cluster and the operator when creating
the second cluster.

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-10-25 09:16:48 +02:00
Travis Nielsen aa4835c853 Merge pull request #13078 from rkachach/fix_issue_namespace
namespace: adding namespace to all rook-ceph namespaces references
2023-10-24 09:47:46 -06:00
Redouane Kachach ff081cc4ae namespace: adding namespace to all rook-ceph namespaces references
To make it easier for the user to switch to a namespace other than the
default 'rook-ceph', the tag '# namespace:cluster' must be inserted in
all the places where this namespace is used. This way, a simple 'sed'
command can update all the Yaml files to the new namespace.

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-10-24 14:17:17 +02:00
parth-gr 3363a195a8 external: fix monitoring endpoint check
if the monitoring endpoint is not present
we were not returning any error, but the
field is the mandatory output, so return error if not found

Signed-off-by: parth-gr <paarora@redhat.com>
2023-10-24 00:06:48 +05:30
parth-gr 40008bf18d external: automatically init the rbd pool
Sometimes the pool is not enabled and the ceph cluster
shows health warning, so automatically initalize the pool
from the script

Signed-off-by: parth-gr <paarora@redhat.com>
2023-10-23 20:45:50 +05:30
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
parth-gr bf5252e139 external: fix client healhchecker user keyring return
if the client.health checker already exited it was
returning extra information, It was making the structure and
return JSON non idempotent output, So fixed
that problem by returning a single value

Signed-off-by: parth-gr <paarora@redhat.com>
2023-10-05 16:04:13 +05:30
Blaine Gardner 0c721e05d5 multus: allow node profiles in validation test
Add the ability to specify node profiles in the multus validation test.

This addresses a few points of early feedback on the validation tool.
Statements below critique the tool's behavior before this patch.
1. The tool assumes all daemons are on public and cluster network, which
   means users who have a significantly smaller cluster net (a
   design choice) cannot run a single test to determine if Rook is
   likely to install correctly.
2. The tool does not have placement options to select only a subset of
   Kubernetes nodes to run validation on.
3. Users of multus seem to have a dedicated pool of storage nodes more
   often than the average Rook install. This makes sense for security-
   and perforance-minded users. The tool cannot run a single test to
   verify storage-only and general-workload nodes at one time.

These points are addressed by allowing users to specify configurations
for different "NodeTypes."

Each NodeType config has options for selecting the number of OSDs as
well as the number of other (non-OSD) Ceph daemons. This limits the
unnecessary exhaustion of cluster network addresses from critique 1.

Each NodeType config has its own placement (critique 2).

Users can define as many NodeTypes as needed to test the network for
their planned CephCluster. Specifically, this allows the tool to test
storage-only nodes and generalized-workload nodes at the same time. An
arbitrary number of NodeTypes are allowed to support even more highly
specialized cluster setups, such as multiple tiers of storage nodes
where some storage-only nodes may run more OSDs than others.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
2023-10-04 15:26:35 -06:00
Blaine Gardner e74333ddcd Merge pull request #12633 from thotz/cosi-user-creation
object: create cosi user for each object store
2023-10-04 10:05:36 -06:00
Redouane Kachach aa59e3bb86 ci: fixing linter error
Fixing linter error (using variable 'urllib' before assignment)
Adding logic to properly import urlencode depending on python version

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

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-10-04 09:40:49 +02:00
Redouane Kachach b3dd74ea20 docs: fixing some spelling issues
closes: https://github.com/rook/rook/issues/12987

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-10-03 13:50:17 +02:00
Travis Nielsen b7eaba318c Merge pull request #12941 from subhamkrai/update-caps
external: update healthchecker caps for rbd command
2023-09-27 22:55:31 -06:00
subhamkrai c78bd1cbc6 external: update healthchecker caps for rbd command
when creating networkFence CR, it requires IP's to block
which we get from running `rbd status ...` command. But,
the client.healthchecker user didn't had the right caps
to run hence it was giving error. Now, adding the required
caps `profile rbd-read-only` to osd so that rbd command can
be executed.

Signed-off-by: subhamkrai <srai@redhat.com>
2023-09-28 08:21:21 +05:30
Redouane Kachach c763935436 mgr: adding support for prometheus endpoint configuration
Using the new configuration parameters prometheusEndpoint and
prometheusEndpointSSLVerify users can configure dashboard to
point to their prometheus instance.

closes: #12876

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-09-27 11:07:18 +02:00
Jiffin Tony Thottan a941b3c33f object: create cosi user for each object store
Create each cosi user for each object store and secret which holds
credentials.

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2023-09-19 13:48:58 +05:30
Travis Nielsen a3dafbe9cf Merge pull request #12715 from sp98/osd-sleep
osd: make osd pod to sleep when osds are flapping
2023-09-15 12:24:08 -06:00
sp98 4eb9f62205 osd: make osd pod to sleep when osds are flapping
When OSDs flap, ceph stops the OSD daemon if its marked down greater than
5 times in 600 seconds. But OSD pod restarts and marks the OSD `up` again.
This causes the PGs mapped to these OSDs to peer. While the PGs are peering,
IO to these PGs are blocked.

So we need to ensure that if ceph is marking OSD `down` due to flapping, OSD pod
should not restart to mark the OSDs `up` again.

This PR adds a sleep to the OSD pod if the container returned with a 0 exit code
Default behavior is to sleep for 6 hrs. But user can configure it from the
ceph cluster spec.

Signed-off-by: sp98 <sapillai@redhat.com>
2023-09-15 22:59:46 +05:30
travisn 66547d27be mgr: allow more than two mgrs
While two mgrs is considered sufficient, more mgr daemons are
now allowed in case the admin wants even more fault tolerance
to the active mgr going down, in case multiple mgrs go down.
Up to five mgr pods will be allowed. All mgrs will be in
standby mode except one active mgr. All mgr pods have a sidecar
that will update their respective pod specs with the active
or passive label.

Signed-off-by: travisn <tnielsen@redhat.com>
2023-09-14 13:29:11 -06:00
Micah Nagel 0ff224d453 helm: update docs to reflect reef support
some helm comments incorrectly indicate ceph v18 is not supported

Signed-off-by: Micah Nagel <micah.nagel@defenseunicorns.com>
2023-09-08 12:11:58 -06:00
Blaine Gardner 17f0072d9d Merge pull request #12778 from BlaineEXE/multus-allow-cidr-spec
multus: allow using NADs without inspectable CIDRs
2023-09-07 13:42:41 -06:00