Commit Graph
1270 Commits
Author SHA1 Message Date
Redouane Kachach 1d0fb2f5a1 test: adding a new variable for minikube command and its args
Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-11-07 12:54:36 +01:00
Redouane Kachach 66f48e3777 test: using minikube profiles for rook cluster creation
Let's use the minikube profiles feature to set up a unique profile
exclusively for the Rook cluster. By doing this, we make sure that we
don't run into any issues with other minikube profiles that users
might already have in their local setup.

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-11-07 00:55:38 +01:00
Travis Nielsen 68625bc737 Merge pull request #13155 from obnoxxx/improve-create-dev-cluster-script
Improve the create-dev-cluster script
2023-11-06 10:32:43 -07:00
Michael Adam f6068159af tests: improve create-dev-cluster script to find examples dir
The new create-dev-cluster script errored out for me, not finding the
deploy/examples directory.

This change fixes that problem by making the path relative to the
script's directory, so that it works in a rook code tree from where it
is expected to be run.

Signed-off-by: Michael Adam <obnox@samba.org>
2023-11-06 18:28:05 +01:00
sp98 345f92961b ci: filter both 14 and 64 disks in CI
github ci runner is allocating both 14 and 64 Gb disks to the setup.
Rook CI currently hard codes the lsblk with a 14G filter.
This PR updates the filter to use either 14G or 64G disks.

Signed-off-by: sp98 <sapillai@redhat.com>
2023-11-06 13:30:10 +05:30
Redouane Kachach 5c7951f92b test: adding support for monitoring in dev-create-cluster script
Adding a new '-m' option for activating monitoring during
cluster setup. With this option turned on, the script will handle the
installation of the monitoring stack and configure the dashboard to
connect to the newly installed Prometheus server automatically.

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-11-03 15:14:21 +01: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 73b7e649d7 test: adding a script to simplify test cluster creation
Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-10-30 16:48:49 +01:00
Eng Zer Jun 77bff6a07c core: remove redundant len check
From the Go specification [1]:

  "1. For a nil slice, the number of iterations is 0."
  "3. If the map is nil, the number of iterations is 0."

`len` returns 0 if the slice or map is nil [2]. Therefore, checking
`len(v) > 0` before a loop is unnecessary.

[1]: https://go.dev/ref/spec#For_range
[2]: https://pkg.go.dev/builtin#len

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2023-10-05 20:16:46 +08:00
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 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
subhamkrai e14f8c7710 ci: remove workaround for clean disk action
The issues are fixed from the clean disk action
repo and we shouldn't require any workaround. Also,
I'm not using git revert to revert the commit is earlier
clean disk action was mentioned in every CI which was
duplicate and now we have placed the action to composite yaml

Signed-off-by: subhamkrai <srai@redhat.com>
2023-09-29 19:17:01 +05:30
subhamkrai 3267576307 ci: fix github action free disk space
Since `google-cloud-sdk` is renamed with `google-cloud-cli`,
the github action is failing to remove the older name and this
is causing ci issues. Applying changes suggested by community to
manually remove some packages to resolve the issue.

Signed-off-by: subhamkrai <srai@redhat.com>
2023-09-28 18:56:59 +05:30
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
Blaine Gardner 3e2e906ea7 test: update multus canary test
Update the multus canary test to reflect modern knowledge about how it
should be configured.

No longer test for the network device in OSD pods. Pods will utterly
fail to start if Multus is unable to attach interfaces.
Instead, look to the OSD map to test the connections more wholistically.
OSDs must have map IPs that include both public and cluster network.
This implicitly tests that the interfaces exist in the Pod, and it
additionally verifies other details, like Ceph `*_network` configs are
set propertly.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
2023-09-18 17:15:23 -06:00
subhamkrai 90d81e11b6 ci: upgrade the kubernetes versions for ci
since, kubernetes v1.28.0 release upgrading the
latest k8s version to v.1.28.0 excepth objectSuite
tes.

Signed-off-by: subhamkrai <srai@redhat.com>
2023-08-28 10:35:44 +05:30
subhamkrai ad50c8e780 ci: use local tag instead master image
using `rook/ceph:master` tags take longer time
to pull and also, we should be using `rook/ceph:local-build`
tag for our ci. This will help canary raw test to be more stable.

Signed-off-by: subhamkrai <srai@redhat.com>
2023-08-25 17:26:54 +05:30
Travis Nielsen 430e8552a4 Merge pull request #12744 from Javlopez/feature/11574-move-how-to-run-tests-instructions-to-developer
docs: move how to run tests instructions to contributing
2023-08-17 12:51:49 -06:00
Javier b16f062af0 docs: move how to run tests instructions to contributing
rename and move tests/README.md to
Documentation/Contributing/rook-test-framework.md in order to make it
part of the contributing section

Signed-off-by: Javier <sjavierlopez@gmail.com>
2023-08-17 10:13:39 -06:00
travisn 0bd7d4ac84 tests: use same ceph version for toolbox in multicluster
The multicluster test was using a different ceph image for the
toolbox than from the original cluster. For efficiency of
pulling images in the test, the toolbox of the external cluster
will now use the same ceph image as the internal cluster.

Signed-off-by: travisn <tnielsen@redhat.com>
2023-08-16 15:50:57 -06:00
travisn 90d06a862b tests: start toolbox earlier in tests
The toolbox sometimes times out when the tests are waiting
for it to start. Now we create the toolbox spec sooner in
the tests so we won't need to wait so long for it to start
or increase the wait timeout in the tests.

Signed-off-by: travisn <tnielsen@redhat.com>
2023-08-16 15:30:12 -06:00
parth-gr 715bd31a0a ci: fix testobjectsuite ci
Current reason for failure
clients: "cephbuckettopic" "my-topic" exist, but ARN was not set

Added some more re-try as it might take some more time to
update the ARN in status

OBC bound status was failing and going into
race condition adding a seprate timeout
makes recover it from that state

Signed-off-by: parth-gr <paarora@redhat.com>
2023-08-08 23:46:02 +05:30
Travis Nielsen 8e1090b3be Merge pull request #12624 from parth-gr/s5-cmd
object: fix s5cmd for s3 endpoint verification
2023-08-04 08:19:28 -06:00
parth-gr 8a3f058329 object: fix s5cmd for s3 endpoint verification
add a new toolbox yaml manifest which will use the
rook image instead of ceph image
for running s5 cmd container needs to run with rook image

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

Signed-off-by: parth-gr <paarora@redhat.com>
2023-08-04 18:29:05 +05:30
Travis Nielsen d89758da38 Merge pull request #12634 from subhamkrai/fix-canary-test
ci:  fix all the canary test
2023-08-02 10:15:38 -06:00
subhamkrai 4502ea8ee1 multus: use right interface in ci validation
runner version `2.306` had the interface `net`
but somehow version `2.307.1` which is latest
doesn't have `net` it has `eth0*` so using that.

```
cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
 tunl0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  eth0:     446       5    0    0    0     0          0         0        0       0    0    0    0     0       0          0
sh-4.4# grep etho /proc/net/dev
sh-4.4# grep eth0 /proc/net/dev
  eth0:     446       5    0    0    0     0          0         0        0       0    0    0    0     0       0          0
sh-4.4# exit
```

Signed-off-by: subhamkrai <srai@redhat.com>
2023-08-02 20:11:34 +05:30
subhamkrai b9c41fd548 ci: same ceph version in toolbox and cluster-test
Let's use same ceph version(latest Reef) in both
cluster-test and toolbox.yaml so that we don't need
to pull image twice. Alos, github action helper script
was calling `deploy_manifest_with_local_build` which
is required for operator.yaml and not for toolbox.yaml.

Signed-off-by: subhamkrai <srai@redhat.com>
2023-08-02 20:11:30 +05:30
subhamkrai 1bd4ab9d81 ci: skip mgr pod restart count upgrade 1.22.x suite
for now, let's skip the mgr pod restart count
for upgrade suite 1.22.x to get the CI green
and so that we don't skip any other error in name
of mgr restart count.

Signed-off-by: subhamkrai <srai@redhat.com>
2023-08-02 20:03:08 +05:30
travisn c17724b536 tests: multi cluster suite toolbox version
The toolbox image tag was always being set from #12625
even when the image was not set in the test. If the image
is not set, skip replacing the image name to use the default
test version.

Signed-off-by: travisn <tnielsen@redhat.com>
2023-07-31 16:18:24 -06:00
travisn 600068ea21 tests: toolbox uses same ceph image as the test
The test is currently only using the ceph version that is
included with toolbox.yaml, which may be different
from the version of the ceph cluster being tested.
Now the version will be replaced to match the desired
ceph test version.

Signed-off-by: travisn <tnielsen@redhat.com>
2023-07-31 13:18:59 -06:00
Blaine Gardner c86f22e4f7 Merge pull request #12578 from subhamkrai/fix-upgrade-suite
test: fix upgrade suite for 1.27.x version
2023-07-26 09:47:43 -06:00
subhamkrai 0ed91458dc test: collect kube-system logs for debugging
added kube-system namespace also to collect
logs from to debug the smoke suite issue

Signed-off-by: subhamkrai <srai@redhat.com>
2023-07-26 14:09:15 +05:30
subhamkrai e8e8a4673a test: fix upgrade suite for 1.27.x version
the upgrade suite for version 1.27.x is failing
due
```
debug 2023-07-24T19:11:20.264+0000 7f3395a82c80 -1 error: monitor data filesystem reached concerning levels of available storage space (available: 5% 4.4 GiB)
you may adjust 'mon data avail crit' to a lower value to make this go away (default: 5%)
```
so adding mon setting to start on `compact` also adding
other setting present in cluster-test.yaml.

Signed-off-by: subhamkrai <srai@redhat.com>
2023-07-26 12:14:34 +05:30
Travis Nielsen 91fea5395e Merge pull request #12415 from thotz/ceph-cosi-driver
object: adding ceph cosi driver
2023-07-18 12:12:12 -06:00
Jiffin Tony Thottan b48dc8a335 object: intial cosi driver controller design
Adding CephCOSIDriver CRD and controller. The controller will bring up
the ceph cosi driver when first object store is created in the rook
operator namespace. Then admin can defined COSI CRDs like BucketClass
and BucketAccessClass for different object stores deployed via Rook.
Using the BucketClass and BucketAccessClass, user can define
BucketAccess for backend bucket in the RGW. The CephCOSIDriver CRD
defines configuration options for ceph cosi driver. In the first version
its usability is minimal. Even if it is not defined Rook will bring up
the ceph cosi driver with default values.

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2023-07-18 22:49:41 +05:30
Javier d17109a5f5 test: update reef as default version
update ceph to reef as default version

Signed-off-by: Javier <sjavierlopez@gmail.com>
2023-07-17 12:45:28 -06:00
Javier 46cb9435a6 test: support Ceph Reef v18 with updated integration tests
update test files to support the next version of ceph, ceph reef v18

Signed-off-by: Javier <sjavierlopez@gmail.com>
2023-07-10 15:24:36 -06:00
subhamkrai 70f29be748 ci: fix ci test encryption-pvc-kms-vault-token-auth
we need to wait for the rgw pod to be delete and not
only the cephobjectsore, sometime the pod could be in
terminating state. Also, in some place it require proper
command to wait for pod to be ready/delete and get the
pod name only.

Signed-off-by: subhamkrai <srai@redhat.com>
2023-07-05 14:49:18 +05:30
travisn 557a3e06cc core: api updates for controller runtime v0.15
For the controller runtime v0.15 there are some breaking
changes to the api that need to be updated.

Signed-off-by: travisn <tnielsen@redhat.com>
2023-06-22 10:33:28 -06:00
Sheetal Pamecha a6d57c164d test: upgrade tests to update from v1.11
With the upcoming v1.12 release, Rook upgrade tests
should upgrade from v1.11.x to master instead of
from v1.10.x to master.

Signed-off-by: Sheetal Pamecha <spamecha@redhat.com>
2023-06-13 03:48:45 +05:30
Travis Nielsen 12d79814d3 Merge pull request #12257 from travisn/test-doc
docs: Update the integration test guide
2023-06-08 16:50:42 -06:00
Travis Nielsen 3b4ba859fd Merge pull request #12267 from parth-gr/fix-rgw-ci
ci: catch error in ci for external rgw server canary test
2023-05-31 12:42:12 -06:00
parth-gr ef4fa96e26 ci: catch error in ci for external rgw server canary test
currently we just print the error is anything fails in
script for rgw, So by that there is no panic or
failiure of script if something wrong happened,

Added Explicittly forcing to catch the error from
the error message that is thrown

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

Signed-off-by: parth-gr <paarora@redhat.com>
2023-05-31 18:42:52 +05:30
Blaine Gardner 2eb5a9a3f6 test: add CI e2e test for multus validation test
Add a CI e2e test for the multus validation routine that runs whenever
the multus validation test is modified and on master/releases.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2023-05-26 12:19:54 -06:00
travisn fa5b758f9e docs: update the integration test guide
The integration test guide is updated to be more accurate
and provide more hints that the CI is the recommended
place to troubleshoot the integration tests

Signed-off-by: travisn <tnielsen@redhat.com>
2023-05-22 12:10:15 -06:00
Blaine Gardner e58b09c01c test: add tmate pod manifest
Add a tmate manifest that can be added to CI tests to allow manually
debugging them in real-time while the test is ongoing.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2023-05-19 16:59:23 -06:00
Blaine Gardner 5a1d1f2175 Merge pull request #12069 from BlaineEXE/multus-golang-tester
test: add multus validation test routine to rook binary
2023-05-02 19:37:29 +02:00
Blaine Gardner 0f6e7ee921 test: add multus validation test routine to rook binary
Add a more involved multus validation test to the Rook binary. Because
this is intended to be end-user runnable, make sure operator-only
commands are hidden.

Build this into the rook binary instead of creating a separate binary
for ease, and because any binary built with the kube api becomes 40+
megabytes. We save quite a bit of space by including this in the Rook
binary, which is good for keeping container layers as small as possible.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2023-05-02 10:23:00 -06:00
travisn db04b127b0 core: remove obsolete journal size config value
The journal size was only applicable to the filestore OSD
format which has not been supported by rook since v1.2.
Remove the remaining obsolete setting from the examples and
code.

Signed-off-by: travisn <tnielsen@redhat.com>
2023-04-24 15:54:53 -06:00