Commit Graph
979 Commits
Author SHA1 Message Date
Sébastien Han 428942ac59 Merge pull request #8854 from leseb/wait-longer
ci: wait longer for pod label to be deleted
2021-09-28 15:54:41 +02:00
Sébastien Han b4a36e9967 ci: wait longer for pod label to be deleted
I've seen cases were the CI needs a few more seconds to delete and
object store. When logging in the runner, the object store is gone and
the timing matches too with the runner's logs (comparing with the
operator's logs).

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-09-28 15:24:39 +02:00
Sébastien Han cda5dad291 rgw: use insecure TLS for bucket health check
We have seen cases where the signed certificate used for the RGW does not
contain the internal DNS endpoint, resulting in the health check to fail
since the certificate is not valid for this domain.
People consuming the gateways by external clients and for specific
domains do not necessarily have the internal DNS configured in the
certificate.
So let's be a bit more flexible and simply ensure a connectivity check
and bypass the certificate validation.

Also, this is fixing the tls code in newS3Agent and adds unit tests.

Closes: #8663
Signed-off-by: Sébastien Han <seb@redhat.com>
2021-09-28 14:48:07 +02:00
Sébastien Han d2e221c206 Merge pull request #8850 from leseb/fix-mgr-host
ci: fix mgr test for host
2021-09-28 10:18:01 +02:00
Sébastien Han 5d8a1deda1 ci: fix mgr test for host
The `mgr host ls` looks like:

`"addr": "10.1.0.27/fv-az244-362", "hostname": "fv-az244-362"`

Previously, we were picking `addr` which contains both IP and hostname
where the k8snode has the hostname only. So let's use the Hostname from
the mgr command output instead.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-09-28 09:19:01 +02:00
Blaine Gardner f42e4eebfa test: clean up object store tests
In general, make the output from the object store test easier to follow
and debug.

- Make sure assertions are associated with the appropriate subtest.
- Remove `t.Helper()` from complex helpers.
- Add info to log messages.
- Move long parts of (sub-)test names to log messages.
- Move some reused functions back to ceph_base_object_test.go
- Refactor runObjectE2ETestLite() to be suitable for use as the second
  store created in the "run a second object store" test.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-09-27 12:29:17 -06:00
Sébastien Han 86803287c7 Merge pull request #8758 from leseb/more-test
ci: add daily jobs
2021-09-27 15:23:49 +02:00
Satoru Takeuchi fc59b76afc Merge pull request #8837 from leseb/fix-8825
ci: wait longer for csi to be available
2021-09-27 19:56:13 +09:00
Sébastien Han 85216a266c ci: wait longer for csi to be available
Sometimes the CI needs more time...

Closes: https://github.com/rook/rook/issues/8825
Signed-off-by: Sébastien Han <seb@redhat.com>
2021-09-27 12:12:46 +02:00
Sébastien Han 33dbaba38b ci: add daily jobs
We have new jobs now:

* one that runs both smoke and object on the next Pacific version
* one that runs both smoke and object on Ceph master
* one that tests the upgrade from the current pacific stable to the
  pacific devel
* one that tests the upgrade from the current octopus stable to the
  octopus devel

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-09-27 11:59:04 +02:00
Sébastien Han 12506c7918 Merge pull request #8779 from travisn/obsolete-test-scripts
test: Remove obsolete test scripts for minishift, kubeadm, and update test readme
2021-09-24 09:38:11 +02:00
Travis Nielsen f5c1543ddf build: update min k8s version to 1.16
In Rook v1.8 the min version of K8s supported is updated to 1.16.
Users running on older versions of K8s are recommended to update
to 1.16 or newer before updating to Rook v1.8.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-09-23 16:17:56 -06:00
Travis Nielsen 0a0b9c98bd build: remove obsolete flex driver
The flex driver has been fully deprecated and thus removed from Rook.
Before upgrading to v1.8, users will need to convert existing flex volumes
from flex to csi volumes.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-09-23 16:17:20 -06:00
Travis Nielsen ce52a07477 test: simplify instructions for minikube
Simplify the test documentation on running the integration tests
to clarify that any K8s cluster can be used, and only support
minikube in the instructions.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-09-23 22:16:53 +00:00
Travis Nielsen 76748f0419 test: remove obsolete minishift and kubeadm scripts
The test scripts to start minishift and kubeadm are no
longer in use by Jenkins or anyone else.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-09-23 22:16:53 +00:00
Blaine Gardner def4ca57fe Merge pull request #8796 from BlaineEXE/test-multiple-object-stores
test: run multiple object stores at once in CI
2021-09-23 13:31:47 -06:00
Travis Nielsen 09a5b08fde Merge pull request #8766 from thotz/regionfixobcprovisioning
ceph: pass region to newS3agent()
2021-09-23 11:24:55 -06:00
Travis Nielsen 4583a80001 Merge pull request #8790 from travisn/test-local-build
test: Run all integration tests against the local build
2021-09-22 14:31:18 -06:00
Blaine Gardner b9ebf280fa test: run multiple object stores at once in CI
Multiple CephObjectStores should be able to run at the same time. In CI,
test this by:
1. Create the primary object store under test (store A) (this was
   already done)
2. Verify that store A starts and becomes ready (already done but is
   moved here)
3. Create a second object store (store B) (new)
4. Verify that store B starts and becomes ready (new)
5. Delete store B, and ensure it is deleted (new)
6., etc. Continue to verify primary store A operations as before (this
  was already done)

This is necessary to ensure that the Rook operator is using
`radosgw-admin` and the RGW Admin Ops API properly to support multiple
ObjectStores running at once.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-09-22 13:27:35 -06:00
Travis Nielsen 9ff0753514 test: run all integration tests against the local build
The integration tests must always be run against the local
build of rook, and an image should never be pulled from dockerhub.
To prevent pulling a release or master tag, the local build
will use a tag specific to the build and not ever published
elsewhere.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit a8a40428b0)
2021-09-22 07:39:42 -06:00
Sébastien Han 7c8dc4bc1a ci: fix multisite test
We just need to wait a little for the object to be replicated to the
other gateway. A simple retry solves this.

Closes: https://github.com/rook/rook/issues/8671
Signed-off-by: Sébastien Han <seb@redhat.com>
2021-09-22 10:23:02 +02:00
Sébastien Han 8786b40d64 rgw: do not create the rgw ops user on the secondary cluster
If the cluster where the rgw is started is secondary and not primary,
trying to create the admin ops user will fail with:

```
Please run the command on master zone.
Performing this operation on non-master zone
leads to inconsistent metadata between zones
```

So we need to force the creation regardless, it is fine the creation will
return UserAlreadyExist and then we just read the current user.

Closes: https://github.com/rook/rook/issues/8671
Signed-off-by: Sébastien Han <seb@redhat.com>
2021-09-21 16:58:03 +02:00
Sébastien Han 470fbfd341 Merge pull request #8743 from leseb/next-pacific
ceph: use next ceph v16.2.6 pacific version
2021-09-21 16:41:45 +02:00
Sébastien Han c1a88f34d4 mds: change init sequence
The MDS core team suggested with deploy the MDS daemon first and then do
the filesystem creation and configuration. Reversing the sequence lets
us avoid spurious FS_DOWN warnings when creating the filesystem.

Closes: #8745
Signed-off-by: Sébastien Han <seb@redhat.com>
2021-09-21 15:43:34 +02:00
Jiffin Tony Thottan 280c29f330 ceph: pass region to newS3agent()
If the region is specified in the storage class of OBC, use that in the
newS3agent() than using constant "us-east-1".

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2021-09-21 13:08:18 +05:30
Sébastien Han 0c33493f27 ceph: bump manifests to ceph pacific 16.2.6
New version is out so let's use it.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-09-21 09:16:32 +02:00
Juan Miguel Olmo Martínez 5c75139581 ceph: fix probable cause of intermittent fails in the manager test
Explicitly set the length of the string parameter in json.Unmarshal method

fixes: https://github.com/rook/rook/issues/8669

Signed-off-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
2021-09-20 13:29:45 +00:00
Blaine Gardner 264256acfb test: remove unused minimal test versions
The `*SuiteMinimalTestVersion` vars in
`tests/integration/ceph_base_deploy_test.go` are no longer needed with
Jenkins no longer being used. Remove them.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-09-17 16:49:29 -06:00
Blaine Gardner c60bf241e1 test: make object e2e test its own test
The CephSmokeSuite is becoming quite large and long, and most of the
length is now related to the object e2e tests. Separate the full object
e2e test into CephObjectSuite, and only test the object 'lite' test in
the CephSmokeSuite.

Resolves #8714

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-09-17 15:27:27 -06:00
Sébastien Han b89730d895 ceph: refactor operator initialization sequence
This commit is a large refactor on how the operator starts, stops and
how it starts various sub-components such as the ceph-csi driver. It
also refines the way we cancel orchestrations. We don't use breakpoints
anymore but send our self a SIGUP to reload our controller runtime
manager.
The reload will happen under different circonstances like:

* a new adminission controller secret is created/deleted/changed
* a CephCluster CR is edited

As mentioned earlier, the csi driver now has its own controller, just
like flex. It reacts to change in the operator config map for particular
ROOK_CSI_ fields.

A second new controller for the operator's general config has been
created, it manages:

* the logging level
* the ceph CLI command timeout
* the discovery daemon

The operator reacts much more rapidly to cancellation events by stopping
the manager's context and reloading it.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-09-17 16:57:12 +02:00
Sébastien Han ae291afb2f ci: force a particular ceph version
Let's force v16.2.5 since the CI is broken with 16.2.6. This gives us
time to continue to merge work and work on fixing deployments with
16.2.6 in parallel.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-09-17 15:28:48 +02:00
subhamkrai 038031ddbd ci: dry-run is deprecated and replaced with --dry-run=client
--dry-run is deprecated and replaced with --dry-run=client

Signed-off-by: subhamkrai <srai@redhat.com>
2021-09-14 16:13:27 +05:30
Blaine Gardner eed91efdc2 Merge pull request #8667 from thotz/enhanceusernits
ceph: addressing nits from #8211
2021-09-09 12:10:51 -06:00
Sébastien Han 0e961c4bdc ci: stop build 3 times
This time for real.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-09-09 17:51:03 +02:00
Sébastien Han 73c340ded7 ci: fix pod list
We should not use .items[0].metadata.name if the array length is 0. This
is the case when nothing has been initialized yet. Instead, we should
use .items[*].metadata.name, the wildcard ensures to always return 0
even if nothing is present yet.

Fixes: https://github.com/rook/rook/issues/8676
Signed-off-by: Sébastien Han <seb@redhat.com>
2021-09-09 17:24:56 +02:00
Jiffin Tony Thottan 50ecff8f13 ceph: addressing nits from #8211
Addressing remaining nits from the PR #8211

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2021-09-09 12:57:32 +05:30
Jiffin Tony Thottan ca43800119 ceph: add options for cephobjectstore user
Adding options for quota, bucket limit, caps for the
`cephobjectstoreuser`.

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2021-09-07 22:43:09 +05:30
Sébastien Han 8f42bee563 ci: fix object store test
We just need to wait longer when the status is not ready. We needed
another sleep otherwise the status was never nil and the loop went too
fast. See:

```
2021-09-02 16:29:11.372249 I | integrationTest:
2021-09-02 16:29:11.374427 I | integrationTest:
2021-09-02 16:29:11.377764 I | integrationTest:
2021-09-02 16:29:11.379950 I | integrationTest:
2021-09-02 16:29:11.382084 I | integrationTest:
2021-09-02 16:29:11.385383 I | integrationTest:
2021-09-02 16:29:11.388499 I | integrationTest:
2021-09-02 16:29:11.391301 I | integrationTest:
2021-09-02 16:29:11.393545 I | integrationTest:
2021-09-02 16:29:11.396249 I | integrationTest:
```

Signed-off-by: Sébastien Han <seb@redhat.com>

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-09-07 17:15:20 +02:00
Blaine Gardner 7febd4e303 ci: add debugging to release build script
Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-09-01 13:58:21 -06:00
parth-gr 827ee1d879 ceph: auto grow OSDs size on PVCs
When an OSD reaches OSD_NEARFULL state,
we have to manually increase the PVC volume claim
or manually increase the count of OSDs in the device set

Added a script auto-grow-storage.sh which will
i)automatically increase claim volume
ii)automatically add number of OSDs

Closes: https://github.com/rook/rook/issues/6101
Signed-off-by: parth-gr <paarora@redhat.com>
2021-09-01 12:57:42 +05:30
Blaine Gardner a1814af1d9 ceph: remove NFS and Cassandra operator code
Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-08-31 14:07:02 -06:00
Travis Nielsen 5489dd7b58 cassandra: suppress integration test errors temporarily
The Cassandra tests are failing in the CI, although they pass when
run locally on a developer cluster. Until the issue can be tracked
down we need to disable these checks to get to a green CI again.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-08-26 14:34:40 -06:00
Travis Nielsen 23b772643b ceph: test against release version in the branch
The release version needs to be the same in the example/test manifests
as it is in the local build image. The github actions are different in
this regard than the Jenkins builds were. The Jenkins builds always
locally used the master tag instead of a release-specific tag.
Now that the github actions use the release-specific tag, the test
framework no longer should be using the master tag in release branches.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-08-26 12:10:05 -06:00
Blaine Gardner 7b862c1a8d Merge pull request #8506 from subhamkrai/shell-check
ci: add action for shellcheck linter
2021-08-26 09:42:12 -06:00
subhamkrai ebe21c8f68 ci: add action for shellcheck linter
we are adding new linter for shellcheck.
As we are writing more shell scripts this
will help maintain quality.

Also, doing all the changes required in
bash files to pass this shellcheck.

Closes: https://github.com/rook/rook/issues/8431
Signed-off-by: subhamkrai <srai@redhat.com>
2021-08-26 10:03:32 +05:30
Sébastien Han 41e915d411 Merge pull request #8493 from leseb/admission-controller
ceph: move the admission webhook to the operator
2021-08-25 09:30:54 +02:00
Sébastien Han 656dd0f334 ceph: move the admission webhook to the operator
Our admission webhooks will now run as part of the Operator container
and not an additional deployment. This has the advantage of consuming
fewer resources in the cluster and not having to manage affinities and
tolerations. This only drawback is that the Secret containing the
certificates is not mounted anymore and the content needs to be written
inside the Operator. This is not practical since we also need to watch
for the Secret content to change. Meaning that the certificates have
been renewed and the webhook server needs to use them.
A new approach is on its way to hopefully simplify this last issue and
implement a watcher for the Secret.
In the meantime, users need to use the cert-manager or renew
certificates manually. Additionally, they must update the
ValidatingWebhookConfiguration object with the new CA bundle.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-08-24 19:07:04 +02:00
Jiffin Tony Thottan f4bb47e440 ceph: add support for update() from lib-bucket-provisioner
Recently lib-bucket-provisioner add support for update() API.
Include that on the obc implementation since it can be used to
update quota for OBC.

Fixes: #7146

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2021-08-19 23:57:11 +05:30
Travis Nielsen c00b290041 Merge pull request #8364 from parth-gr/update-certificates.k8s.io
ceph: update CSR from v1beta1 to v1
2021-08-18 08:00:01 -06:00
Juan Miguel Olmo Martínez 6ff5a5b86c ceph: fix error in <ceph orch device ls> test
Rook orchestrator is going to use PVs as <devices> for OSDs.
These PVs must use one storage class present in the cluster and
configured properly in the manager.
With this change we include this new requirement in the Rook manager module test

Signed-off-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
2021-08-18 14:19:23 +02:00