Commit Graph
1299 Commits
Author SHA1 Message Date
Travis Nielsen dd7e6e4b81 Merge pull request #13640 from rook/mergify/bp/release-1.13/pr-13622
csi: option to customize csi driver name prefix (backport #13622)
2024-01-31 16:38:07 -07:00
parth-gr 6812215dbd ci: reformat the python scripts
currently there is a new release of black
formatter so updating it with new release

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

Signe-off-by: parth-gr <partharora1010@gmail.com>
Signed-off-by: parth-gr <paarora@redhat.com>
(cherry picked from commit 75fcffd08c)
2024-01-30 16:28:58 +00:00
Madhu Rajanna 61bab8d17a csi: option to customize csi driver name prefix
For now we are using the operator namespace name
as the prefix for the csi driver, This PR provides
an option for the users if someone wants to have
their own prefix for the csi driver, if someone tries
to change the prefix for existing csi driver rook
operator will fail to reconcile the csi driver.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit c35a8532aa)
2024-01-29 11:27:10 -07:00
Praveen M d568fb75aa csi: update cmdline args as used by ceph-csi
This commit adds cmdline args to enable
1. RecoverVolumeExpansionFailure
2. PreventVolumeModeConversion
3. HonorPVReclaimPolicy

Signed-off-by: Praveen M <m.praveen@ibm.com>
(cherry picked from commit a80396df1b)
2024-01-16 19:30:36 +00:00
Blaine Gardner fdf9c6f2f1 multus: use nginx-unprivileged image from quay
Use Quay as the source for the nginx-unprivileged image used for the
Multus validation tool because Quay does not rate limit image pulls,
which are a common complaint for users of the tool.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit cd253d0218)
2024-01-05 15:05:18 +00:00
travisn 0c4daa788e docs: update all examples to ceph v18.2.1
Since v18.2.1 is the default recommendation for the ceph version,
update all the docs and examples to that version.

Signed-off-by: travisn <tnielsen@redhat.com>
(cherry picked from commit 56a3370d83)
2024-01-04 16:10:42 +00:00
Ryotaro Banno 8c98474418 ci: wait for all OSD pods to become Running in wait_for_prepare_pod
Currently, `wait_for_prepare_pod` only waits until 1 prepare pod and 1
OSD pod are in Running state.

So if `wait_for_ceph_to_be_ready` failed after `wait_for_prepare_pod`
succeeded, there are 4 possible cases:

1. some prepare pods didn't start correctly;
2. some prepare pods didn't finish correctly;
3. some OSD pods didn't start correctly; or
4. all prepare pods and OSD pods worked correctly, but some other
   process failed.

As far as I understand, the number of prepare pods on the GitHub CI is
always 1, so cases 1 and 2 are not problematic. However, it is hard to
distinguish the other two cases from the CI log.

To solve the above problems, this patch makes wait_for_prepare_pod wait
for all OSD pods to become running state. If wait_for_prepare_pod
timeouts before the OSD pods become running state, this will be a strong
indication that the OSD pods didn't start properly (i.e., case 3).

Signed-off-by: Ryotaro Banno <ryotaro.banno@gmail.com>
(cherry picked from commit e9c1f81d79)
2023-12-26 08:15:37 +00:00
subhamkrai fbc745aa4b ci: remove ceph SVGs in helm test
Both the helm tests are failing because,
```
2023-12-19 08:47:06.136640 E | ceph-file-controller: failed to reconcile CephFilesystem "helm-ns/ceph-filesystem-test". CephFilesystem "helm-ns/ceph-filesystem-test" will not be deleted until all dependents are removed: CephFilesystemSubVolumeGroups: [ceph-filesystem-test-csi]
```
So, let's remove the ceph SVGs before removing Ceph filesystem.

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit d8766ff871)
2023-12-20 10:59:25 -07:00
subhamkrai d3ae92c6ef ci: improve collect-log script
I was debugging helm tests, I noticed, the operator namespace
content is empty and operator is created in same namespace as
other pods. Also, let's collect the 'kube-system' namespace logs
in multus test only as that is the only test where we need to debug
cluster networking and require kube-system logs.

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit 2d3e561a00)
2023-12-19 09:32:03 -07:00
parth-gr f793d1ea9a ci: delete svg in helm test
The filesystem is not being deleted because of the existing svg.
Add a cliet call to delete the deafult csi svg,
for helm test

Signed-off-by: parth-gr <partharora1010@gmail.com>
(cherry picked from commit 60e879050a)
2023-12-11 19:56:06 +00:00
Anthony D'Atri d5c86cf13a doc: improve ceph-csi-drivers.md and lintrolling
Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
(cherry picked from commit 59d0240676)
2023-12-04 17:12:20 +00:00
Alexander Trost ab80b77f49 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>
(cherry picked from commit 4ed35d6bd6)
2023-12-02 10:27:44 +00: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 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
Redouane Kachach b739f29bc8 test: fix how we obtain the dashboard endpoint
current code gets the ip:port for the dashboard by using
the ip of the mgr pods. This works great when there's only
one mgr but it fails in case of a multi-node cluster

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-11-30 11:26:48 +01:00
Travis Nielsen 94060b3433 Merge pull request #13238 from rkachach/fix_issue_adding_ns_support
test: adding support to specify the operator and cluster namepaces
2023-11-27 10:02:43 -07:00
Redouane Kachach 734d105790 test: applying adding rbac.yaml when enabling monitoring
applying adding rbac.yaml when enabling monitoring to avoid
permission issues when accessing servicemonitors

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-11-23 16:38:12 +01:00
Redouane Kachach f60cdde460 test: increasing rook-ceph-tools deployment timeout to 90s
Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-11-23 16:37:01 +01:00
Redouane Kachach f93532a8e4 test: adding support to specify the operator and cluster namepaces
adding support to specify operator and cluster namespaces through new
command-line arguments: -c for cluster and -o for operator. The script
will automatically update the namespace in the corresponding YAML files

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-11-23 13:48:06 +01: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
travisn 6c16c0eb83 tests: upgrade from 1.12 to master
The upgrade test should always upgrade from the previous
minor release to the latest master. With 1.13 releasing
soon, now we uprade from 1.12 to master, to confirm
if there are any upgrade issues to 1.13.

Signed-off-by: travisn <tnielsen@redhat.com>
2023-11-15 16:11:14 -07: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
Travis Nielsen 1f157df699 Merge pull request #12817 from parth-gr/objectstore-improvements
object: improve the error handling for multisite objs
2023-11-14 12:33:38 -07:00
parth-gr 46c241433d object: improve the error handling for multisite objs
here is the https://go.dev/play/p/SS9Q-dAiIx3 example which says the
error handling was wrongly implemented

Signed-off-by: parth-gr <paarora@redhat.com>
2023-11-14 15:12:15 +05:30
Travis Nielsen 6f1a3eee01 Merge pull request #13182 from obnoxxx/fix-getopts-in-create-dev-cluster
unify treatment of invocation errors in the create-dev-cluster script
2023-11-13 11:29:40 -07:00
Michael Adam 82c329c6af tests: create-dev-cluster: unify handling of invocation errors
This change to the create-dev-cluster script is intended to make the
handling of invalid invocations more uniform
examples are unknown options and options requiring an argument specified
without one.

The unification is achieved by encapsulating the corresponding code in a
function.

Signed-off-by: Michael Adam <obnox@samba.org>
2023-11-13 19:19:52 +01:00
Blaine Gardner 65d5920584 Merge pull request #13170 from parth-gr/objectsuite-ci
ci: fix objectsuite flakiness
2023-11-09 15:55:51 -06:00
Redouane Kachach b9501bdddb test: adding support for multi-rook clusters creation
This change introduce a new argument -p to specify the minikube
profile for the new cluster. This way we can have multiple rook
clusters running on the same machine.

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-11-08 13:29:46 +01:00
parth-gr 40295a989c ci: fix objectsuite flakiness
objectstore deletion was failing with not found error,
Could Not get resource in k8s -- Failed to run:
kubectl [get -n object-ns CephObjectStore
other-tls-test-store -o json]
So added a check if it not found then donot check its
further condition

Signed-off-by: parth-gr <paarora@redhat.com>
2023-11-08 15:33:03 +05:30
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