Commit Graph
670 Commits
Author SHA1 Message Date
ShravaniVangur 9656d1963a csi: storageclass update to gp2-csi
Updating storageClassName for cluster-on-pvc.yaml file from gp2 to gp2-csi.

Signed-off-by: ShravaniVangur <shravanivangur@gmail.com>
2024-08-20 00:08:50 +05:30
Blaine Gardner 679ccc762d Merge pull request #14576 from travisn/version-detect-annotation
core: Add annotations and labels to detect version jobs
2024-08-16 10:03:41 -06:00
Madhu Rajanna 7c7e8a2b32 csi: update cephcsi to 3.12.0
updating cephcsi image to 3.12.0
release.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2024-08-16 10:47:44 +02:00
Madhu Rajanna 123025f22c 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>
2024-08-16 07:57:16 +02:00
Travis Nielsen 5014d5bcf2 core: add annotations and labels to detect version jobs
The jobs to detect the ceph and csi versions now can have
custom annotationso and labels added to them. They are
very short-lived jobs, but they may need custom annotations
in some environments to run.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-08-15 16:48:28 -06:00
Blaine Gardner 5f98d2ea3e Merge pull request #13807 from jklippel/feature/swift-and-keystone
rgw: implement support for authentication using keystone for s3 and swift
2024-08-08 09:55:34 -06:00
ee8bcad49d 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>
2024-08-08 14:26:21 +02:00
subhamkrai c30b8a527b csi: add csi-operator rbac, crds files
adding the CSI-operator manifest files
inside rook repo naming deploy/examples/csi-operator-manifests.yaml.

Also, let's skip running any lint check on file `deploy/examples/csi-operator.yaml` as this is owned by CSI-operator.

Signed-off-by: subhamkrai <srai@redhat.com>
2024-08-08 15:43:12 +05:30
subhamkrai 1ad20d07e7 csi: add csi-operator operator config cr
Signed-off-by: subhamkrai <srai@redhat.com>
2024-08-08 11:21:49 +05:30
subhamkrai 667e044013 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>
2024-08-08 11:21:49 +05:30
subhamkrai 4b0b3a55d9 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>
2024-08-08 11:21:45 +05:30
Rakshith R 53e2f8c67f csi: add pvc & pod yamls for block volume mode
This commit adds example yamls for block
volume mode.

Signed-off-by: Rakshith R <rar@redhat.com>
2024-08-07 12:50:50 +05:30
Blaine Gardner b76631ace9 Merge pull request #14467 from BlaineEXE/object-advertise-endpoint
object: add hosting.advertiseEndpoint config
2024-07-31 16:17:24 -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
Blaine Gardner cec77d7faa Merge pull request #14464 from parth-gr/external-upgrade
external: fix the output of user config
2024-07-23 10:05:21 -06:00
Blaine Gardner a2b0b6449c 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>
2024-07-22 14:43:51 -06:00
parth-gr cb30f66862 external: fix the output of user config
currently the output in the cm was not human readable
and can not easily used to create a config.ini file

Also for now removed the support of printing arg in upstream

Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-07-22 22:23:57 +05:30
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
Travis Nielsen 22d4139b74 core: add support for ceph squid
With the release of the first squid RC, we add squid
to the supported versions and add tests to run
Rook against the squid release.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-07-15 10:04:32 -06:00
Blaine Gardner 33f5407dd4 multus: add host checking to validation tool
In order to help users check that they have implemented the newly-added
Multus host configuration prerequisites, add a check to the validation
tool to verify connectivity.

Because users who are already running clusters with Multus enabled, add
a flag that allows users to only check for host configuration
prerequisites. This mode will not start the large number of clients that
would normally be started because those clients could disrupt a running
Rook cluster negatively.

Host checking pods require host network access. Many Kubernetes
distributions have pod security features enabled. In order to allow
non-Vanilla distros to run this tool, allow specifying a service account
that pods will run as, which can be configured by the admin to allow
test pods.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
2024-07-10 13:41:38 -06:00
Travis Nielsen 28addd1301 Merge pull request #14216 from thotz/update-cosi-images
object: update cosi images
2024-07-10 12:47:07 -06:00
Travis Nielsen b8bcd71929 Merge pull request #14421 from subhamkrai/update-go-mods
build: update controller runtime to v0.18.4
2024-07-08 10:10:10 -06:00
Travis Nielsen 1fe1a2bc23 Merge pull request #14406 from parth-gr/logrotate-csi-odf
csi: add securityContext to csi containers
2024-07-08 10:08:40 -06:00
parth-gr 2ca0d1390b csi: add securityContext to csi containers
With the recent enhancements csi containers for using
logrotate, they need to run with securityContext to privileged,
on platform like openshift.
Used the ROOK_HOSTPATH_REQUIRES_PRIVILEGED flag
wich is set with operator deployment to see
if the securityCOntext is needed or not

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

Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-07-08 18:47:26 +05:30
parth-gr 7cfbe09a94 external: config file should have more priority then defaults
Priority: command-line-args > config.ini file values > default values
Currently default was having more priority so fixed it

Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-07-05 14:55:08 +05:30
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
parth-gr 26cecb568a external: add final args used to the upgrade configmap
Recently we have introuced external-cluster-user-command cm
Which help user to look at the previous command run,
So with this PR we will add another data field arg
on this confimap which will have the final processed flags
that are being used
So user can use them directly either in config.ini or cmd line args

Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-07-03 21:50:29 +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
Blaine Gardner bd02cf1f6f Merge pull request #14353 from parth-gr/external-seamless-upgrade1
external: add support for config file in external mode
2024-06-26 09:48:56 -06:00
parth-gr 5387ef16fd external: add support for config file in external mode
Now user can pass the cli flags using config file and
also command line argument,
if mentioned at both the place priority is given to
command line argument

Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-06-26 17:07:49 +05:30
Blaine Gardner c85ce7c4e6 Merge pull request #14354 from parth-gr/external-seamless-upgrade2
external: create a configmap for the command line args
2024-06-25 08:08:11 -06:00
parth-gr 951c683786 external: create a configmap for the command line args
user can look back to there configurations by
looking at the configmap created with command
line arguments
This will be useful for them during upgrades when they
need to re run the python script with the same flags

Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-06-25 16:50:48 +05:30
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
Blaine Gardner 4b51c2c3bd Merge pull request #14322 from ideepika/wip-disablecrush-updates
enableCrushUpdates option: rook operator would not be able to update crush rules by default if not set
2024-06-17 12:20:26 -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
Travis Nielsen eed1033485 monitoring: set honor labels on the service monitor
The endpoint property honorLabels: true should be set so that
different rgw instances can show separate prometheus
values instead of being aggregated.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-06-14 15:38:34 -06:00
Deepika Upadhyay 8bb2c3b9f6 docs: add docs for enableCrushUpdates option
Signed-off-by: Deepika Upadhyay <deepikaupadhyay01@gmail.com>
2024-06-13 00:23:40 +05:30
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
Travis Nielsen 02a552ce00 Merge pull request #14312 from matofeder/update-prometheus-alerts
monitoring: update to the latest ceph prometheus rules
2024-06-10 15:17:25 -06:00
Matej Feder 7053e761da monitoring: fix exporter service monitor selector
Exporter service created by rook operator contains the following labels:
`app=rook-ceph-exporter,rook_cluster=<cluster-name>`

Label `ceph_daemon_id=exporter` is not there and therefore the service
monitor selector can not discover the exporter service.

This fix removes the `ceph_daemon_id=exporter` label from the exporter
service monitor selector.

Signed-off-by: Matej Feder <matej.feder@dnation.cloud>
2024-06-07 13:38:15 +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
Blaine Gardner 904a0754f2 Merge pull request #14243 from parth-gr/pylint-fix
external: remove support of python2 for external clusters
2024-06-04 10:30:30 -06:00
parth-gr cf1a39ee84 external: remove support of python2 for external clusters
fix pylint issue and remove pyhn2 support

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

Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-06-04 20:25:01 +05:30