Commit Graph
512 Commits
Author SHA1 Message Date
Travis Nielsen d8f8ec9d43 build: update the release version to v1.15.2
For the patch release update the docs and examples
to v1.15.2

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-09-19 13:06:50 -06:00
Artem Torubarov 362cf539eb exporter: move config to cluster CRD
allows to set prio-limit and stats-period options to ceph exporter

Signed-off-by: Artem Torubarov <artem.torubarov@clyso.com>
(cherry picked from commit b2c39ace25)
2024-09-18 20:16:36 +00:00
Madhu Rajanna 5f2be2e52c csi: update to new cephcsi release
we have 3.12.2 as the new cephcsi release
updating the rook to use the same.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit d041be4bcf)
2024-09-06 14:52:00 +00:00
Travis Nielsen 2a1c5e0d2c build: update release version to v1.15.1
For the patch release update the docs and manifests
to v1.15.1

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-09-04 13:57:32 -06:00
Madhu Rajanna 21daa24046 csi: update csi-addons to v0.9.1
updating csi-addons to latest
v0.9.1 release.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit 05d579b607)
2024-09-03 18:15:40 +00:00
rene 04f3eae0fd helm: reorder volumes in rook-ceph-csi scc for argocd diff to show no changes
Signed-off-by: rene <rene.raab@gmx.net>
Co-authored-by Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit 746ef30b09)
2024-08-30 20:23:54 +00:00
Blaine Gardner ad5b332e77 rgw: allow users to add custom volume mounts
Allow RGW users to mount arbitrary volumes to RGW pods. This follows the
pattern that was established for NFS to support SSSD and LDAP, and
reuses much of the same code.

This opens the door wider for advanced users to take advantage of some
Ceph RGW features that Rook doesn't have first class support for.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit eea43b7b79)
2024-08-28 22:51:16 +00:00
Travis Nielsen 4c2a3411f5 build: update the release version to v1.15.0
For the minor release update the documentation and manifests
to v1.15.0

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-08-20 13:58:58 -06:00
Travis Nielsen 60faae1e73 Merge pull request #14608 from rook/mergify/bp/release-1.15/pr-14550
manifest: add registry name to docker images (backport #14550)
2024-08-20 12:53:28 -06:00
Travis Nielsen 1016b0ecfc Merge pull request #14610 from rook/mergify/bp/release-1.15/pr-14598
core: add configuration option for metrics bindAddress (backport #14598)
2024-08-20 12:52:20 -06:00
Zuhair AlSader e76d60dd25 manifest: add registry name to docker images
Signed-off-by: Zuhair AlSader <zuhair@devzero.io>
(cherry picked from commit 6714b86d3b)
2024-08-20 12:20:05 -06:00
parth-gr dd1e1a6120 osd: reweight osd while resizing
osd got resized by cryptsetup bluestore cmd
but it should also be reweight to balance the pgs properly

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

Signed-off-by: parth-gr <partharora1010@gmail.com>
(cherry picked from commit 17cfda5bd6)
2024-08-20 18:15:26 +00:00
Justin Cichra 8a0eadaa39 core: add configuration option for metrics bindAddress
Alerting on controller-runtime's workqueue_depth can be useful for
debugging controllers. Also having a prometheus target for a pod gives
another data point that the system is working as expected. It is useful
for uptime alerts.

Make the bind address configurable via the configmap while still retaining the default
behavior that it is disabled.

Resolves: #14538

Signed-off-by: Justin Cichra <jcichra@cloudflare.com>
(cherry picked from commit 74a79b24b3)
2024-08-20 18:15:21 +00:00
Travis Nielsen 1283f1d132 Merge pull request #14605 from rook/mergify/bp/release-1.15/pr-14357
csi: update csi sidecars' image version (backport #14357)
2024-08-20 12:11:53 -06:00
Praveen M af583add13 csi: add csinodes rbac rule for cephfs provisioner
Signed-off-by: Praveen M <m.praveen@ibm.com>
(cherry picked from commit 1efe3b6ee9)
2024-08-20 11:38:25 -06:00
subhamkrai 4f96664ba0 build: changes forced by latest controller-runtime
this commit contains changes that are forced by latest
controller-runtime version v0.19.0.

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit 2556e14780)
2024-08-20 17:28:15 +00:00
Praveen M cf42f35f12 csi: update csi sidecars' image version
Below csi sidecars are updated with latest available versions

csi-resizer: v1.11.1
csi-provisioner: v5.0.1
csi-attacher: v4.6.1
csi-snapshotter: v8.0.1
csi-node-driver-registrar: v2.11.1

Signed-off-by: Praveen M <m.praveen@ibm.com>
(cherry picked from commit a1ddf4535d)

# Conflicts:
#	deploy/examples/images.txt
2024-08-20 17:22:10 +00:00
Madhu Rajanna 9e64a840aa csi: update cephcsi to 3.12.0
updating cephcsi image to 3.12.0
release.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit 7c7e8a2b32)
2024-08-16 08:43:34 -06:00
Madhu Rajanna 9e98ae6512 csi: update csi-addons to v0.9.0
As we have new csi-addons v0.9.0
updating the same here as well.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit 123025f22c)

# Conflicts:
#	go.sum
2024-08-16 14:36:41 +00:00
subhamkrai 26d44d6415 csi: add csi-operator operator config cr
Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit 1ad20d07e7)
2024-08-15 16:45:05 -06:00
subhamkrai ae5c3f85ec csi: add new CSI-operator config CR
adding changes to create CSI-operator config CR based on
every radosnamesapce and subvolumegroup.

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit 667e044013)
2024-08-15 16:45:05 -06:00
subhamkrai dcff7aead5 csi: add code for new CSI operator CR cephcluster
adding code changes,rbac changes required for create the new
Ceph-CSI operator CR named cephCluster in api group 'csi.ceph.io'.

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit 4b0b3a55d9)
2024-08-15 16:44:53 -06:00
Sebastian Riese 85949049a3 rgw: add support for keystone auth + swift/s3
For the specification see:
<https://github.com/rook/rook/blob/master/design/ceph/object/swift-and-keystone-integration.md>

* extend the API object specs for swift and keystone integration

* adapt rgw to the new go-ceph version

  - The parameter lists of the API call have changes, as parameters
    ignored by the RGW Admin Ops API are no longer serialized, therefore
    the mock has to be adapted.

  - There is now validation for the user keys that are passed to the
    User get API, therefore things failed when we had empty keys in our
    User proxy object.

* expand the reconcile loop for the swift and keystone integration

* fix minor mistakes in design document

* add env var to pass extra args to minikube

  Minikube decides CPU cores and memory automatically based on the
  available resources on the machine which may be insufficient to
  run rook. This commit adds an environment variable to add arbitrary
  arguments to the minikube command, so both can be specified if
  desired.

* integration tests for swift and keystone

  The new integration of swift or s3 and keystone support by rook
  does not have any integration tests yet.

  This commit introduces integration tests for swift and keystone. The
  tests are done against a minimal keystone setup (keystone container
  image from Yaook-project (https://yaook.cloud), sqlite as database
  backend, cert-manager and trust-manager for test certificate setup).

  To prevent hardcoded credentials, passwords are generated
  by the tests. The integration tests use the openstack client
  (keystone- and swift-functionality) (https://docs.openstack.org/
  python-openstackclient/ latest/). This was a concious design decision
  to use client tooling as close as possible to the end user instead of
  using other go-libraries (such as gophercloud).

* add documentation on swift and keystone

  Currently there is no documentation on the use of Swift to access
  an object store as well as the use of OpenStack keystone for
  authentication.

  This commit adds documentation on the use of Swift and OpenStack
  keystone, as well as CRD-related documentation and an example setup.

* add integration tests for S3 via keystone

  This commit introduces integration tests for s3 and keystone. The
  tests are run against the same minimal keystone setup that the tests
  for swift and keystone use.

  The integration tests use the aws s3 client to use client tooling as
  close as possible to the end user instead of using other go-libraries.

Co-authored-by: Jan Klippel <jan.klippel@uhurutec.com>
Co-authored-by: Silvio Ankermann <silvio.ankermann@cloudandheat.com>
Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
Signed-off-by: Jan Klippel <jan.klippel@uhurutec.com>
Signed-off-by: Silvio Ankermann <silvio.ankermann@cloudandheat.com>
(cherry picked from commit ee8bcad49d)
2024-08-08 15:56:28 +00:00
Blaine Gardner ae00f2f811 object: add hosting.advertiseEndpoint config
Add CephObjectStore spec.hosting.advertiseEndpoint configuration. This
provides a clear documented default for which endpoint Rook "advertises"
to dependent resources like CephObjectStores, OBCs, and COSI
Buckets/Accesses and allows users to override the default behavior if
desired.

The current default is to round-robin an endpoint from
spec.hosting.dnsNames, which has proven to be troublesome for some
users' object store configurations. This change provides much-needed
disambiguation for users.

This may be a breaking change for some existing spec.hosting.dnsNames
users. This is unexpected but is documented.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit a2b0b6449c)
2024-07-31 22:18:07 +00:00
Travis Nielsen 9720aaed56 build: set the release version to v1.15.0-beta.0
For the new 1.15 branch and first test release, update the docs
and manifests to v1.15.0-beta.0

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-07-31 12:32:40 -06:00
Travis Nielsen d91b8073c5 Merge pull request #14488 from sp98/set-min-compat-client-to-reef
core: set min-compat-client to reef for upmap-read
2024-07-29 11:28:29 -06:00
sp98 ee5e710912 core: set min-compat-client to reef for upmap-read
If upmap-read balancer mode is required, then set
min-compat-client to reef

Signed-off-by: sp98 <sapillai@redhat.com>
2024-07-29 22:03:37 +05:30
Travis Nielsen e26920a483 manifest: update the ceph recommended version to v18.2.4
Since Reef v18.2.4 is released, set it to the default
ceph version that is deployed with Rook.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-07-24 11:06:09 -06:00
Travis Nielsen 88e952a3ac osd: update the device class if desired state changes
Normally the device class of an OSD is determined at provisioning
and is not updated thereafter. In some scenarios the admin may
want to force update the device class to a new value. The device
classes can be updated by first setting allowDeviceClassUpdate
in the storage spec of the cephcluster, then updating the
device class specified on the deviceSets or other OSDs.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-07-17 13:54:21 -06:00
Travis Nielsen 9967b161f9 Merge pull request #14420 from YiteGu/make-kube-api-limit-configurable
csi: make kube apiserver qps configurable
2024-07-16 07:40:56 -06:00
yite.gu 80541a23c9 csi: make kube apiserver qps configurable
This commit adds the flexibility to configure kube apiserver qps
as per the user requirement and also keeps the existing values as
the default one.

Signed-off-by: yite.gu <yitegu0@gmail.com>
2024-07-16 18:39:16 +08:00
subhamkrai d429ed8be4 build: update controller runtime to v0.18.4
this commit update cntrl runtime to v0.18.4 and other related deps/

Signed-off-by: subhamkrai <srai@redhat.com>
2024-07-05 09:05:12 +05:30
Travis Nielsen 8e25300ad5 Merge pull request #14199 from Nordix/update-cephfs-clusterroles
csi: add cephfs encryption support
2024-07-01 15:27:38 -06:00
subhamkrai e8aeb0d263 osd: revert limit storageClassDeviceSets to 63 chars
This reverts commit 6f5cc9b01d.

Signed-off-by: subhamkrai <srai@redhat.com>
2024-06-21 11:24:25 +05:30
subhamkrai c7d07562c4 core: revert increase storage deviceset name limit to 50
This reverts commit 1dcc99ec1d.

Signed-off-by: subhamkrai <srai@redhat.com>
2024-06-21 11:23:55 +05:30
subhamkrai 1dcc99ec1d core: increase storage deviceset name limit to 50
initially, we have the limit of 40 char set on
storageclassdeviceset.Name but seems like that is not enough and
upgrade clusters can face issue with this. So, increasing the limit to
50.

Signed-off-by: subhamkrai <srai@redhat.com>
2024-06-20 10:51:14 +05:30
Blaine Gardner d74832d41c Merge pull request #14346 from matofeder/fix_CephPoolGrowthWarning_expr
monitoring: fix CephPoolGrowthWarning expression
2024-06-17 12:23:39 -06:00
Matej Feder 6ba084f35a monitoring: fix CephPoolGrowthWarning expression
Prometheus found duplicate series for the match group `pool_id`
and `instance` when evaluating the CephPoolGrowthWarning alert
expression. This alert has an evaluation interval of 2 days and
did not consider the changing POD names during the Rook migration process.

This commit adds the `pod` label to the set of considered labels.

Signed-off-by: Matej Feder <matej.feder@dnation.cloud>
2024-06-17 09:18:07 +02:00
Deepika Upadhyay d71f9c238f pool: add option to enableCrushUpdates to pool if required
this will be disabled by default but in scenarios where the user want to
update failureDomain, DeviceClass etc, this option can be enabled, to be
noted this can lead to lot of data rebalancing and remapping. Use with
caution

Signed-off-by: Deepika Upadhyay <deepika.upadhyay@clyso.com>
2024-06-12 22:48:25 +05:30
Peter Dahlberg de82481d80 helm: allow custom labels and annotations for storage classes
Storage classes were missing the possilbilty to attach custom labels and
annotations. This change brings it on par with VolumeSnapshotClass
objects.

Signed-off-by: Peter Dahlberg <catdog2@tuxzone.org>
2024-06-12 03:48:45 +02:00
Matej Feder c0a0a3c7b2 monitoring: update to the latest ceph prometheus rules
Pick up the latest ceph prometheus rules from the ceph repo
found at https://github.com/ceph/ceph/blob/master/monitoring/ceph-mixin/prometheus_alerts.yml.

The updates include new rules for monitoring of ceph as well as
adjustments related to the Rook ceph deployment.
List of main adjustments:
- Alerts related to cephadm are excluded
- The PrometheusJobMissing alert is adjusted for the rook-ceph-mgr job, and the PrometheusJobExporterMissing alert is added

Signed-off-by: Matej Feder <matej.feder@dnation.cloud>
2024-06-07 12:47:53 +02:00
Travis Nielsen e479b051bc osd: configure cluster full settings when osds fill up
When the clusters reach full, nearfull, or backfill full thresholds
ceph will raise health warnings and stop allowing IO or backfill
depending on the threshold. These settings require special ceph
commands instead of being generic ceph config. Allow these settings
to be set from the CephCluster CR in the spec.storage
section.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-05-30 12:10:41 -06:00
Travis Nielsen 48b657099d Merge pull request #14232 from sp98/configure-balancer-mode
mgr: setting balancer mode from cluster spec.
2024-05-29 10:44:29 -06:00
sp98 1ad37ecce9 mgr: setting balancer mode from cluster spec
This PR adds a `settings` option in the `Module` struct
which can help users to futher customize the `balancer`
module with a differet mode.

Signed-off-by: sp98 <sapillai@redhat.com>
2024-05-27 11:30:10 +05:30
NymanRobin 30e6a7349b docs: fix broken link to network config
Signed-off-by: NymanRobin <robin.nyman@est.tech>
2024-05-22 15:13:02 +03:00
NymanRobin 05315ae64f csi: add cephfs encryption support
Ceph-CSI support for fscrypt encryption of cephfs.
To achieve this commit add capability of mounting the
required `rook-ceph-csi-kms-config` configmap into
csi-cephfsplugin-provisioner and nodeplugin pods.

Further it modifies the ClusterRoles `cephfs-csi-nodeplugin` and
`cephfs-external-provisioner-runner` to grant privileges
required for reading encryption configuration and fetching
encryption secrets from either kubernetes secrets or
from a Key Management System (KMS).

These privileges are essential for the proper functioning of
ceph-csi-cephfs with fscrypt encryption.

The following privileges have been added:
- `secrets/get`: Allows reading of secrets for encryption.
- `configmaps/get`: Grants access to configuration maps,
    this is used to read encryption configuration.
- `serviceaccounts/get`: Enables retrieval of service accounts for
    authentication to KMS and for retrieving encryption secrets
    stored there.
- `serviceaccounts/token/create`: Allows creation of service account tokens,
    which are required for authenticating requests to KMS
    when retrieving encryption secrets.

The commit also updated the csi documentation to include cephfs
in the encryption section, with examples updated accordingly.

Signed-off-by: NymanRobin <robin.nyman@est.tech>
2024-05-20 14:03:02 +03:00
Travis Nielsen 3628e83892 osd: add cephcluster status for legacy osds to replace
LVM-based OSDs on PVCs are legacy and are not well tested.
Therefore, we add status to the cephcluster CR that at least
gives a clue that the OSDs should be replaced.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-05-10 16:00:41 -06:00
subhamkrai 6f5cc9b01d osd: limit storageClassDeviceSets to 63 chars
there are some cases where storageClassDeviceSets length
are more 63 chars and osd provisioned failed due to this.
with error
```
 failed to run osd provisioning job for PVC "ocs-deviceset-*-local-volume-storageclass-0-data-*": Job.batch "rook-ceph-osd-prepare-*" is invalid: [spec.template.spec.volumes[10].name: Invalid value: "ocs-deviceset-*-local-volume-storageclass-0-data-*": must be no more than 63 characters, spec.template.spec.containers[0].volumeMounts[9].name: Not found: "ocs-deviceset-*-local-volume-storageclass-0-data-*",
```

Using x-validator to limit the maxLength to the deviceClassSet.Name to
40 chars and adding code check that overall pvc name should be less than
63 chars.

Signed-off-by: subhamkrai <srai@redhat.com>
2024-05-03 10:52:18 +05:30
Praveen M faf7837621 csi: update csi sidecars' image version
Below sidecars are updated with latest available versions

csi-node-driver-registrar: v2.10.1
csi-resizer: v1.10.1
csi-provisioner: v4.0.1
csi-attacher: v4.5.1
csi-snapshotter: v7.0.2

Signed-off-by: Praveen M <m.praveen@ibm.com>
2024-04-25 18:58:00 +05:30
Steven Fackler 0c38dd81c2 operator: support custom dashboard service labels and annotations
Unlike other components, the Ceph dashboard Service object could not be
configured with custom labels and annotations. This can be useful when
integrating Rook into a cluster with custom controllers similarly to how
the RGW service is customized.

Signed-off-by: Steven Fackler <sfackler@gmail.com>
2024-04-23 15:28:19 -04:00