Commit Graph
124 Commits
Author SHA1 Message Date
Travis Nielsen 5a8b8c7217 ceph: run ceph tests in jenkins if requested
If the [test ceph] text is included in the PR description,
go ahead and run the ceph tests in Jenkins instead of always
skipping them

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-05-06 14:51:07 -06:00
subhamkrai 4683254419 ci: push build images to Docker hub using gh action
We are moving towards github action.
This commit allows pushing build images
to Docker hub using gh action for master
build similar to what Jenkins does.

And, also removing `Publish if Master` step
from the Jenkinsfil file.

Signed-off-by: subhamkrai <srai@redhat.com>
2021-05-06 12:45:24 +05:30
Blaine Gardner 37b31a7c5e build: run 'go mod vendor' on each build
CI fails on builds warning with the warning below

    [2021-04-15T14:15:28.461Z] go: inconsistent vendoring in /home/rook/go/src/github.com/rook/rook:
    [2021-04-15T14:15:28.461Z] 	github.com/jstemmer/go-junit-report@v0.9.1: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt

Fix this by running `go mod vendor` before each build.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-04-15 16:11:59 -06:00
Yannis Zarkadas 760e81edba test: skip cassandra integration test in jenkins
Signed-off-by: Yannis Zarkadas <yanniszark@arrikto.com>
2021-04-14 22:03:02 +03:00
Travis Nielsen bfa302f2c2 ci: run integration tests on k8s 1.21
With the release of K8s 1.21.0 we now run the integration tests
on v1.21.0. To keep consistent with running master builds on five
recent releases, we keep master builds back to v1.15 and skip other
less changed versions such as v1.16 and 1.19. Jenkins builds just run
five versions, while github actions run four versions.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-04-12 13:10:43 -06:00
Travis Nielsen bdbf264e68 ceph: integration tests in github actions skip cleanup
The integration tests run independently in the github actions so there is
no need to cleanup from every test. The cleanup is still needed in the
Jenkins tests where all the suites run serially.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-03-17 11:26:11 -06:00
Travis Nielsen c402e40f54 ceph: load test crds from files or urls
The integration tests will now read the manifests from the same source
that is used in the examples for installation. No longer is there a need
for a copy of the CRDs in the integration test code.

The tests will read the manifests directly from disk under a path
relative to the rook root. The upgrade test will read the manifests from
a github url where the base version has been published.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-03-08 21:34:59 -07:00
Sébastien Han c1362ce482 ceph: revert "ceph: test latest ceph on raw device"
This reverts commit 114a949cfb since
14.2.14 is out and has a fix to use raw mode instead of LVM mode on
   partitions.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-03-03 14:06:19 +01:00
Travis Nielsen 043f947321 build: remove yugabytedb operator
The YugabyteDB team has decided to move support of their operator
to a new repo at https://github.com/yugabyte/yugabyte-operator.
The operator in Rook is no longer needed. Further usage of
the YugabyteDB operator is recommended at the new location.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-02-06 00:03:41 -07:00
Travis Nielsen 53ed11f15b build: remove the edgefs operator from rook
The EdgeFS operator has been deprecated for some time in Rook.
If the replacement is added back to Rook it can be completed
according to the new guidelines in the documentation.
https://rook.io/docs/rook/master/storage-providers.html

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-01-25 17:51:24 -07:00
Travis Nielsen 2294851ca3 build: remove the cockroachdb operator from rook
The cockroachDB operator has not had community support in Rook.
Therefore, the time has come to deprecate and remove it.
If the sources are still needed, there is always git history.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-01-20 17:28:58 -07:00
Travis Nielsen 114a949cfb ceph: test latest ceph on raw devices and previous ceph on partitions
The latest ceph-volume does not support creating OSDs on partitions.
The github actions only have a partition available, so we will run
the github tests on v14.2.12 and v15.2.7 that still support partitions,
while the Jenkins environment has a raw device available where we
can run the latest versions of Ceph in the tests.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-17 18:21:16 -07:00
Travis Nielsen d4bb4b6346 ci: enable K8s 1.20.0 to run the integration tests
The integration tests need to run on all the supported version of K8s.
With the release of 1.20.0, we now enable the tests there. To keep the
tests running in master on 5 versions, we drop 1.17 and keep 1.15 so
we can keep testing against v1beta1 extensions in master.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-15 13:09:17 -07:00
subhamkrai 4895ced365 ci: update Jenkins to skip Ceph tests
we now run our ceph test or ceph suite
using GitHub actions, we can skip
Jenkins test for the same.

Signed-off-by: subhamkrai <srai@redhat.com>
2020-11-19 10:36:34 +05:30
Pete Birley 152a05c85e ceph: update to helm 3 for the rook chart
This updates the chart to make use of helm3 which has been released
for some time, and also permits CRDs to be installed pror to other objects
allowing the chart to be deployed at the same time as CRs for rook objects.

Co-authored-by: Pete Birley <pete@port.direct>
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-11-11 14:41:24 -07:00
Takashi IIGUNI 27c7146526 ci: simplify helm path setting
Download the pre-defined helm by default to make the integration test simpler.
As a result, we can make PATH/TEST_HELM_PATH environment variable optional.
In addition, the default helm path can be simplified that doesn't include arch and os.

Signed-off-by: Takashi IIGUNI <iiguni.tks@gmail.com>
Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2020-10-15 10:09:00 +09:00
Satoru Takeuchi d8211135ea ci: update K8s version for stability
K8s v1.16.13 is used in CI. In this version, there is a serious bug
which causes a continuous restart of both kube-scheduler
and kube-controller-manager. It results in the instability of CI.

This bug is fixed in v1.16.14 or later by the following PR.
https://github.com/kubernetes/kubernetes/pull/93208

Both 6415 and 6390, which only happen in v1.16.13, would be
caused by this issue.

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2020-10-11 02:46:56 +00:00
Travis NielsenandSébastien Han 40cfc9c70e ci: only build amd64 for PRs
The PRs only test against amd64 and have no need for the arm64
builds. This will save several minutes of build time.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
Co-authored-by: Sébastien Han <seb@redhat.com>
2020-09-08 16:18:39 -06:00
Sébastien Han 9a06d059f0 ci: change local disk path
With the recent aws instance type the disk naming changed too, so
replace xvdc with nvme0n1.

Closes: https://github.com/rook/rook/issues/6189
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-08-31 22:04:46 +02:00
Travis Nielsen 68b3789bba ci: run integration tests on k8s 1.19
With the pending release of k8s 1.19 we need to start running
the integration tests on 1.19. In master we remove support for
1.14 to keep the last five releases running in master.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-08-28 08:35:45 -06:00
Sébastien Han 575b00f4c3 ci: only run unit tests on official build
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-08-27 22:33:54 +02:00
Sébastien Han 58c8de95be ci: add modcheck github workflow
Add a new github workflow to verify with mod check.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-08-27 12:15:41 +02:00
Travis Nielsen cb8111c042 ci: check for official build string properly
The version of Jenkins has changed such that setting the official build env
var is no longer comparing correctly. Now we will only assume the env
var is set by the PR to false, therefore the tests need to compare
against false instead of true.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-07-13 13:53:57 -06:00
Sébastien Han 33a90a10d1 ci: more debug
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-08 22:49:25 -06:00
Sébastien Han 4e8f7e725d ci: auto-detect storage provider
If the PR follows our contribution guideline https://rook.io/docs/rook/master/development-flow.html#commit-structure
and then the PR title contains for example "ceph: add a feature", then
the CI will run the ceph storage integration tests.

Closes: https://github.com/rook/rook/issues/5612
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-08 11:24:54 +02:00
Sébastien Han 01784a4b59 ci: do not run when no code changes
If no Golang files were modified we don't want to run the integration
test.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-05 18:04:19 +02:00
Sébastien Han c9d306fe61 ci: do not run the pipeline if PR is draft
If the PR is a draft, it's not ready for review and most likely the CI
pipeline should not run as the code might be broken in some places.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-03 10:19:28 +02:00
Adam Kraitman 1731f9cb25 build: Enabling buildDiscarder
Enabling buildDiscarder which keeps only the newest 200 builds

Signed-off-by: Adam Kraitman <akraitma@redhat.com>
2020-05-26 17:43:15 +03:00
Satoru Takeuchi e96009c26d ceph: prepare PVCs for OSD on PVC test inside the integration test
The PVCs for OSD on PVC test is prepared before running the integration test.
In addition, users are forced to run this script for this by themselves.
To avoid this problem, running this script inside the integration test.

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2020-05-14 05:14:27 +09:00
Juan Miguel Olmo Martínez 4b492e6f39 ceph: manager integration tests
Ceph orchestrator device ls
Ceph orchestrator status
Ceph orchestrator host ls
Ceph orchestrator create OSD
Ceph orchestrator ls

[test ceph]

Signed-off-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
2020-05-04 11:32:56 +02:00
Satoru Takeuchi bf27b0f5c4 ceph: allow to set the device for OSD in the integration test
The device name for OSD is fixed to /dev/xvdc. It works fine in the CI.
However, the name would be different in the developer's local environment.

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2020-04-17 23:24:03 +09:00
Travis Nielsen c4e712bbd2 tests: convert cli params to env vars
The command line flags parsing inside an init() method was causing
issues at runtime when trying to add certain new features, which
is a limitation of the flag parsing. We now move away from using
any command line flags in the tests and only use environment variables
to simplify adding new parameters to the tests.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-04-14 07:29:18 -06:00
Travis Nielsen dcc1e2a291 Merge pull request #5117 from travisn/test-k8s-1.18
Test rook on K8s 1.18
2020-03-30 16:48:04 -06:00
Travis Nielsen 0a5a17cf51 build: tidy the go modules before the release build
The go modules are changed by the install of the junit
tool for the unit tests. Before the release build we need
to ensure that the modules are tidied.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-03-30 15:33:28 -06:00
Travis Nielsen 0e1ccce61a build: use git checkout instead of git restore
The CI is using an older version of git that doesn't
recognize git restore.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-03-30 13:05:25 -06:00
Travis Nielsen 9a615eef99 build: check for modified files in build
The master build is publishing with the dirty tag so we
need to ensure that the files do not remain modified.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-03-30 12:15:53 -06:00
Travis Nielsen a3a7a10236 build: test rook on k8s 1.18
With the release of k8s 1.18 we now will run the integration
tests on 1.14 through 1.18 in master.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-03-30 11:14:14 -06:00
Travis Nielsen 816d8286e4 build: ensure files are not modified during build
The recent change to go modules is causing a file to change
during the build, which results in a dirty tag to be
generated.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-03-27 14:14:15 -06:00
Travis Nielsen adba744320 build: ensure go.sum is updated with every build
Every developer should commit all the files that need to be changed
in a given set of changes. The go.sum file was not being generated
as expected since the update to go modules. Since the Jenkinsfile
was running make mod.check, the build was ending up with a modified
file, which caused a dirty tag on the build. Now it is expected
that each PR will merge with the corresponding go.sum changes.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-03-26 15:42:06 -06:00
moricho 7d0215d820 ci: switch to use go.mod.check target
This switches to use `go.mod.check` target instead of `go.vendor.check` target.

Signed-off-by: moricho <ikeda.morito@gmail.com>
2020-03-17 16:48:43 +09:00
moricho 2beb731a7e go: move to gomodules
This switches Rook to use `go mod` instead of `dep` for
dependencies management.

Signed-off-by: moricho <ikeda.morito@gmail.com>
2020-03-17 16:47:53 +09:00
Ashish Ranjan 2238ccbfa6 Jenkins: Updates jenkins file to pre clean the k8s cluster
This commit updates the jenkins file to pre clean the k8s cluster before the running the integeration tests.

Signed-off-by: Ashish Ranjan <aranjan@redhat.com>
2020-02-05 12:20:58 +05:30
Ashish Ranjan 4eff5e0730 ceph: updated jenkins file for executing localPathPV.sh
This commit updates jenkins file for executing localPathPV.sh during
bootstrapping of k8s cluster. The localPathPV.sh script is responsible
for creating localPathPVs over disks in the nodes.

Signed-off-by: Ashish Ranjan <ashishranjan738@gmail.com>
2020-02-04 16:06:06 +05:30
Alexander Trost 3a27d87ecc test: update k8s versions for CI
The CI will now use the current latest K8S releases.
v1.15: v1.15.9
v1.16: v1.16.6
v1.17: v1.17.2

Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2020-01-25 10:10:32 +01:00
Travis Nielsen 1e67902248 build: run tests on k8s 1.17.1
Checking that the flex driver tests succeed on 1.17.1 as well

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-01-15 20:32:49 -07:00
Travis Nielsen a02c2c3089 tests: run integration tests on k8s 1.17 and remove 1.12
With the release of K8s 1.17 Rook needs to test on this new version.
The integration tests will now run the tests across K8s 1.13-1.17.
The pattern has been to run the tests across the most recent five
versions.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-01-08 07:18:53 -08:00
Travis Nielsen eb1dadccb2 build: always use the version suffix from tag pipeline
The version suffix such as alpha.0, beta.0, or rc.0 only apply
when running the tag pipeline or the release build. Otherwise,
we don't want to use the suffix from the master build.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2019-12-09 17:43:29 -07:00
egafford 59adfc04b5 test: functional default baseTestDir for remote k8s master
Using the current working directory as the base test directory
fails with an unclear error message when running mkfs for OSDs
if tests are run when the k8s master node is not running on
localhost.

This change creates a new flag for the test suite to set the
base test directory, but uses a default that is safe for
virtualized test environments ("/data").

Fixes: #4205
Signed-off-by: egafford <egafford@redhat.com>
2019-11-08 12:15:02 -05:00
travisn 4ef3ffb8e4 test: add k8s 1.16 to the integration test matrix
With the desire to run the integration tests on the five
most recent versions of K8s, 1.16 is added and 1.11
is removed from the integration test matrix.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-10-19 12:46:01 -06:00
travisn ac8f0dff09 tests: by default run the minimum test matrix in PRs
The CI runs the integration tests on several versions of K8s. By default
the integration tests have all been running on all versions of K8s. With the
recent option to run a minimum matrix for ceph tests it has shown to be reliable
for PRs and is much faster to have the test distribution.

Master and release builds will still run the full set of test suites on all
versions of K8s.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-10-14 10:23:04 -06:00