Commit Graph
1115 Commits
Author SHA1 Message Date
Satoru Takeuchi a9465efa07 Merge pull request #9931 from cybozu-go/test-add-canary-integration-tests-for-osd-on-device
test: add canary integration tests for osd on device
2022-05-06 05:25:57 +09:00
Satoru Takeuchi 805163e2e2 test: add canary integration tests for osd on device
OSD on PVC is tested in many patterns but OSD on device is not.
It's preferable to add the following patterns for OSD on device.

- An OSD on a raw disk
- Two OSDs on a device

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2022-05-05 13:15:18 +00:00
Satoru Takeuchi ab38c10c2d test: avoid to create a corrupted GPT headers
The following steps in CI scripts create corrupted GPT headers.

```console
$ sudo sgdisk --zap-all --clear --mbrtogpt -g -- "$DISK"
$ sudo dd if=/dev/zero of="$DISK" bs=1M count=10
```

It results in the failure of the succeeding `sgdisk --print "$DISK".

Here is an example.

```console
$ sudo parted /dev/sdb mklabel msdos
...
$ sudo sgdisk --zap-all --clear --mbrtogpt -g -- /dev/sdb
...
$ sudo dd if=/dev/zero of=/dev/sdb bs=1M count=10
...
$ sudo sgdisk --print /dev/sdb
Caution: invalid main GPT header, but valid backup; regenerating main header
from backup!

Warning: Invalid CRC on main header data; loaded backup partition table.
Warning! One or more CRCs don't match. You should repair the disk!
Main header: ERROR
Backup header: OK
Main partition table: OK
Backup partition table: OK

Invalid partition data!
$ echo $?
2
```

We can safely use the simple `sgdisk --zap-all "$DEVICE"` here.
It's not necessary to convert "mbr" to "gpt" because we'll make new GPT
labels just after this command.

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2022-05-05 13:11:21 +00:00
Sébastien Han 6ef491d9fc osd: close the encrypted disk after cleanup is done
Once we are done cleaning up the content of the encrypted osd, let's
close the main LUKS device.
This avoids having dm devices on the system after the cleanup.

Closes: https://github.com/rook/rook/issues/10181
Signed-off-by: Sébastien Han <seb@redhat.com>
2022-05-03 16:47:59 +02:00
Alexander Trost 3005a6fc68 Merge pull request #10137 from koor-tech/fix_9099
rgw: fix dashboard admin creation for multiple object stores
2022-04-27 16:13:38 +00:00
Alexander Trost 5d03061d47 rgw: fix dashboard admin creation for multiple object stores
Check the radosgw-admin realm user list per object store instead of relying
on the ceph dashboard get-rgw-api- command.

Resolves #9099

Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2022-04-27 14:57:17 +02:00
Sébastien Han 4ea8cc6224 Merge pull request #10173 from subhamkrai/fix-deploy-vault
ci: wait for cert while deploying vault
2022-04-27 11:51:02 +02:00
Sébastien Han ed3121defd Merge pull request #9925 from leseb/multus-plugin-restart-fix
core: fix csi-cephfsplugin pod restart on non-hostnetworking env
2022-04-27 11:41:59 +02:00
subhamkrai 86b3d466f6 ci: wait for cert while deploying vault
sometimes, it take few seconds to fill certificate
after certificate approval. So, let's wait for few seconds.

Closes: https://github.com/rook/rook/issues/10158
Signed-off-by: subhamkrai <srai@redhat.com>
2022-04-27 14:44:24 +05:30
Travis Nielsen 8b334685a9 Merge pull request #10123 from travisn/min-version-1.17
build: Update min version to k8s 1.17
2022-04-26 12:24:04 -06:00
Sébastien Han 73b1347675 core: fix csi-cephfsplugin pod restart on non-hostnetworking env
Implementation of the design proposed in
https://github.com/rook/rook/pull/9903.

Signed-off-by: Sébastien Han <seb@redhat.com>
2022-04-26 17:53:01 +02:00
Sébastien Han 79dbb35302 ci: collect secrets and cms in the logs
The CI runs will now collect all the secrets and configmaps available.

Signed-off-by: Sébastien Han <seb@redhat.com>
2022-04-26 11:05:02 +02:00
Travis Nielsen d26b6cf403 build: update min version to k8s 1.17
Support is removed for k8s for various limitations such as
priority classes not working and csi driver feature
incompleteness and missing snapshots. Documentation is updated
with the new min version of k8s 1.17 and also the tests are
updated to run on the min version of 1.17.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-04-25 15:32:09 -06:00
Travis Nielsen 2db3910052 test: remove dead test helper code
The K8sHelper has a number of methods that are no longer
in use that we can remove.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-04-25 15:28:29 -06:00
Sébastien Han 1a7e983ad2 Merge pull request #10156 from rook/fix-ibm-key-test
ci: use stringData instead of data for secret
2022-04-25 18:16:51 +02:00
Sébastien Han edfd120d6a ci: use stringData instead of data for secret
The "data" field only accepts base64 strings and our env var is not. So
let's use stringData to prevent an error from the API server:

```
"v1" cannot be handled as a Secret: illegal base64 data at input byte 29
```

Signed-off-by: Sébastien Han <seb@redhat.com>
2022-04-25 16:41:27 +02:00
Alexander Trost 8686296e17 core: remove double imported packages
This removes double package imports. Example:
```
"github.com/rook/rook/pkg/apis/ceph.rook.io/v1"
cephv1 "github.com/rook/rook/pkg/apis/ceph.rook.io/v1"
```
Only one is now being used as shown in go-staticcheck ST1019

Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2022-04-25 13:51:45 +02:00
Travis Nielsen 23c29b4e28 test: skip upgrade checks during integration tests
The upgrade checks are not necessary during the CI.
The flag had previously been set, but was changed
unintentionally with https://github.com/rook/rook/pull/10096.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-04-20 14:12:27 -06:00
Travis Nielsen f7cefbbbde test: improve reliability of mon failover test
The mon failover test was failing if the cluster reconcile
was being triggered in the middle of the failover and if
the ordering of the mons happened to attempt to start the
mons that were not failed over. The other mons couldn't be updated
due to the upgrade checks, so the test would timeout waiting
for the mons that would never update in time.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-04-20 13:45:09 -06:00
Travis Nielsen fb86955f01 core: examples set default priority class names
By default, we should set the priority class to one of the built-in
priority class names to ensure that pods critical to the storage
will be able to remain running when resources are low. Otherwise,
critical rook pods could be evicted and affect many other pods
that rely on the storage to continue functioning. The options have
been available in the CRs, but until now we have just not set the
defaults in the examples. Critical rook components are now set to
the priority class system-node-critical if they are generally pinned
to a node, and system-cluster-critical if they are critical to the storage.
Some pods such as the operator and crash collector do not have a
default priority class set in the examples since they don't affect
the data path.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-04-19 16:09:34 -06:00
Madhu Rajanna 4425ef1ce2 build: provide 775 permission for deploy_cert_manager.sh
provided 775 permission like other scripts for
deploy_cert_manager.sh

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2022-04-13 10:57:33 +05:30
Sébastien Han 2c09bbb91b ci: add multus integration test
This new integration test will deploy a cluster with multus enabled. It
will be comprised of two network interfaces for ceph public and cluster
communications.
For now, it only deploys a Ceph cluster up to the OSDs.

Closes: https://github.com/rook/rook/issues/9784
Signed-off-by: Sébastien Han <seb@redhat.com>
2022-04-12 17:30:47 +02:00
subhamkrai f6f03d272b core: start admission controller without any script
finally, admission controller will be enabled default
without any script/manual step. But it still requires cert-manager
to be installed which I believe is already installed in clusters.

**Note**
Code doesn't return error it just logs the error since
we don't want to stop reconciling if the admission controller fails.
We can work on this once the admission controller is stable.

Signed-off-by: subhamkrai <srai@redhat.com>
2022-04-11 19:44:54 +05:30
subhamkrai 24802c559e core: fix golangci linter
fix golangci linter

Signed-off-by: subhamkrai <srai@redhat.com>
2022-04-04 20:59:31 +05:30
Jiffin Tony Thottan 5e72b26948 object: add service account for RGW pod
For supporting features like service account authentication for vault
KMS , a service account account need to attach with pod.

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2022-04-04 11:24:50 +05:30
Travis Nielsen 6c50530737 Merge pull request #9685 from weirdwiz/context-remove
Remove context.TODO and add context parameter
2022-03-30 12:20:30 -05:00
Jiffin Tony Thottan fc2b8012c6 object: use us-east-1 for aws go lang sdk
The aws go lang sdk needs value for region, it is set differently in
various part of current code. With PR the value is always `us-east-1` so
that it will work RGW server without any issues.

This reverts commit 280c29f330.

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2022-03-24 14:37:39 +05:30
Divyansh Kamboj 9008409f87 core: add context parameter to functions
This commit adds context parameter to various functions, and remove the
usage of context.TODO.

Closes: https://github.com/rook/rook/issues/8701
Signed-off-by: Divyansh Kamboj <dkamboj@redhat.com>
2022-03-22 08:19:07 +05:30
Travis Nielsen 4edcff04f7 monitoring: create prometheus rules with helm chart
The prometheus rules had been previously created if the cephcluster CR
setting monitoring.enabled was set to true. The rules were not customizable
and therefore not flexible enough. Now the rules are installed by the helm
chart. To customize the rules, a post-processor can be applied to the helm
chart.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-03-21 14:47:52 -06:00
Travis Nielsen 4f9a72c1db Merge pull request #9894 from yuvalman/resources
helm: enable resource defaults on rook components
2022-03-21 13:58:17 -06:00
Yuval Manor ff7a5c2d2d helm: enable resource defaults on rook components
This PR assign default values to the resources of all Rook and Ceph components

Closes: https://github.com/rook/rook/issues/9858
Signed-off-by: Yuval Manor <yuvalman958@gmail.com>
2022-03-21 21:23:35 +02:00
Satoru Takeuchi 3bbffd1e4d test: avoid potential data inconsistency on zapping disk
Data inconsistency might happen if the disk is accessed just after disk
zapping because direct I/O is not synchronous by itself.

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2022-03-18 11:50:04 +00:00
Travis Nielsen 48be000b4f core: add quincy to the supported versions
Ceph Quincy is now supported as of Rook v1.9.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-03-16 14:26:20 -06:00
Travis Nielsen ee1e17518d test: upgrade from 1.8 to master
The upgrade integration test had been testing from v1.7
to master. Now with the v1.8 release coming up we upgrade
from v1.8 to master.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-03-16 14:19:08 -06:00
Travis Nielsen 8ed9c5d480 test: add quincy to the integration test matrix
With Ceph Quincy v17 support added in Rook v1.9, Quincy
is now added as a target ceph version to test in the integration
tests. The smoke suite will test against Quincy, the upgrade
suite will upgrade from pacific to quincy, while other test
suites will run against octopus or pacific. The daily tests
will test other combinations as well.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-03-16 14:19:08 -06:00
Sébastien Han 9fcc6891b6 Merge pull request #9706 from subhamkrai/use-webhook-placeholder-value
core: remove caBundle value from webhook
2022-03-14 08:59:15 +01:00
subhamkrai 2115daa317 core: refactor webhook config and related script
This commit refactor webhook config by adding/removing
spaces. Also, moved the Issue and Certificate creation
from bash script to webhook config yaml.

Signed-off-by: subhamkrai <srai@redhat.com>
2022-03-14 10:16:01 +05:30
Travis Nielsen 03c7164b15 mon: options for enabling msgr2 encryption and compression
msgr2 allows for encryption and/or compression across the wire.
Settings for enabling the encryption and compression are now
available in the cluster CR to that ceph will be automatically
configured with these settings when desired.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-03-10 11:50:42 -07:00
Travis Nielsen cec3942d72 test: run encrypted tests with nbd driver
The encryption on the wire requires either the 5.11 kernel
or the nbd driver. Until the kernel update is available in minikube
we use the rbd-nbd.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-03-10 11:48:48 -07:00
Travis Nielsen 75a385e187 csi: update volume replication to v0.3.0
Update to the latest volume replication crd version of
v0.3.0

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-03-09 15:53:45 -07:00
subhamkrai 536a73af64 core: remove caBundle value from webhook
now, we don't require caBundle values to verify in
webhook config.

Signed-off-by: subhamkrai <srai@redhat.com>
2022-03-09 09:11:02 +05:30
Travis Nielsen bc9914e99d mgr: set the default count of mgr daemons to 2
To ensure the mgr is not the single point of failure, the mgr
daemon count is now set to 2 by default in the cluster examples.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-03-02 13:35:05 -07:00
Madhu Rajanna 2076a3c788 csi: add custom ceph.conf for csi pods
Currently, the admin/user can configure the ceph.conf
for daemon pods using https://rook.io/docs/rook/v1.7/
ceph-advanced-configuration.html#custom-cephconf-settings.
This the above custom ceph.conf is only for ceph pods.
the support to provide constom ceph.conf for cephcsi
is added in cephcsi PR 2476

This PR adds the support to create/update
ceph.conf for csi pods.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2022-03-01 12:42:59 +05:30
Blaine Gardner 9a5d43761d test: collect fuller logs for CI tests
Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2022-02-22 13:14:39 -07:00
bootjp / Yoshiaki Ueda 294b6854f6 test: fix typo
GitHub is officially known as GitHub. https://github.com/logos

Signed-off-by: bootjp / Yoshiaki Ueda <contact@bootjp.me>
2022-02-19 20:32:23 +09:00
Sébastien Han d86351aa1c Merge pull request #9728 from thotz/vault-kms-backendpath-tranist-engine-fix
object: fix backend path for transit engine for rgw kms
2022-02-16 10:21:08 +01:00
Jiffin Tony Thottan 0b4cdb992b object: fix backend path for transit engine for rgw kms
The backend path was added with additional `transit` to it.
Also added PR test case to check transit engine

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2022-02-15 18:49:31 +05:30
Jiffin Tony Thottan 438cf6abf1 test: update bucket notification integration test with http server
Add test cases to check notification is received by http server. For
this a sample http server https://github.com/thotz/pythonwebserver is
used.

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2022-02-15 12:59:58 +05:30
Madhu Rajanna 44353167d7 csi: fix snapshot CRD and controller cleanup oder
cleanup the CRD and controller in defer
to make sure the CRD and controller are
removed as filesystem/block test also
install CRD and controller separately.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2022-01-31 13:17:55 +05:30
Madhu Rajanna 97e5b78c11 csi: cover error cases in snapshot ready check
Currently, we sleep only if the snapshot is not ready
and try again, this covers only the happy path.
the checks might fail to get the snapshot object
or the `.status.readyToUse` might not be set yet.
First sleep and then try to check snapshot is
ready or not, if we do this we cover all the cases
when checking the snapshot ready status.
Changed sleep internal to do incremental sleep to
give more time for tests.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2022-01-31 13:07:37 +05:30