Commit Graph
1080 Commits
Author SHA1 Message Date
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
Madhu Rajanna c40ff24410 csi: skip validation when installing snapshotter
in kubernetes 1.18 we are seeing CRD validation
errors when installing with kubectl, adding
validate=false to skip the validation and
to make tests works with kubernetes 1.18

closes: #9670

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2022-01-28 08:25:07 +05:30
Madhu Rajanna 53e12d687f csi: check deployment for snapshot controller
The external-snapshotter was deployed as statefulset
in 4.x and now its deployed as a deployment. updated
the check in CI to make sure deployment is created.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2022-01-27 23:06:16 +05:30
Madhu RajannaandMathieu Parent cf46615688 csi: bump csi snapshotter image to v5
updating the csi-snapshotter and dependencies
to v5.0.1 released version.

Co-authored-by: Mathieu Parent <mathieu.parent@insee.fr>
Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2022-01-27 21:17:51 +05:30
Travis Nielsen 50afb9f026 helm: update to the latest helm version v3.8
The CI was building with helm 3.6.2, now updating to
the latest v3.8.0

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-01-24 14:12:22 -07:00
Blaine Gardner 18c1397bcc Merge pull request #9565 from thotz/rgw-tls-cert-fix-bucket-notifications
rgw: inject tls certs for bucket notification and topic operations
2022-01-24 11:56:09 -07:00
Jiffin Tony Thottan a97747cece rgw: inject tls certs for bucket notification and topic operations
The certs for accessing TLS enabled RGW is saved as secrets and inject
them if controllers for notification and topics if request is sent to
TLS enabled RGW endpoint.

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com>
2022-01-24 22:39:57 +05:30
Eng Zer Jun ed63571530 test: use T.TempDir to create temporary test directory
The directory created by `T.TempDir()` and is automatically removed when
the test and all its subtests complete.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2022-01-24 23:52:54 +08:00
Travis Nielsen e5d35a32df Merge pull request #9615 from rook/ibm-kms-followup
osd: rename a few configuration flags
2022-01-21 07:26:38 -07:00
Travis Nielsen 741f211a13 helm: apply operator settings in configmap instead of deployment
Some operator settings can be applied dynamically in a configmap
instead of requiring the operator to restart. While these settings
may be infrequently updated, applying these settings in the configmap
can avoid an unnecessary operator restart. This will also make the
operator deployment more consistent with the non-helm install.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-01-20 14:41:28 -07:00
Sébastien Han 7cc6e23a0b osd: rename a few configuration flags
For better consistency with IBM_KP_SERVICE_API_KEY and use
"ibmkeyprotect" as a provider name for more clarity.

Signed-off-by: Sébastien Han <seb@redhat.com>
2022-01-20 16:01:26 +01:00
Sébastien Han cf5f68f378 Merge pull request #9545 from rook/kms-hpcs
osd: add ibm key protect kms
2022-01-13 18:11:15 +01:00
Blaine Gardner 3b415ea15a Merge pull request #9482 from yuvalif/ceph-cloudevent-topic
rgw: add HTTP CloudEvent endpoints to CephBucketNotification CR
2022-01-13 08:40:07 -07:00
Sébastien Han a7acf490b6 osd: add ibm key protect kms
The cluster-wide encryption feature now has a new supported key
management system: IBM Key protect. More information about the backend
can be found in Rook documentation under the

Today's implementation stores OSD encryption keys has "Standard" keys.

Signed-off-by: Sébastien Han <seb@redhat.com>
2022-01-13 16:02:10 +01:00
Yuval Lifshitz c99e2a37fd rgw: add HTTP CloudEvent endpoints to CephBucketNotification CR
this add a configuration parameter that allows an RGW, from
Ceph Quincy (v17) and on, to send bucket notifications to an HTTP CloudEvents
endpoint.
Header format:
https://github.com/cloudevents/spec/blob/main/cloudevents/adapters/aws-s3.md

Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
2022-01-13 12:08:40 +02:00
Travis Nielsen 8fb758fee9 test: implement helm upgrade integration test
The helm tests were previously only for new installs, and did
not have an upgrade path. Now the upgrade path is tested
to give confidence in the helm upgrades.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-01-12 07:19:42 -07:00
Travis Nielsen 52c938b7f9 test: remove obsolete check for test suites to run
The test suites were triggered by Jenkins potentially
using different versions of K8s and environment variables.
There is no longer a need for these environment vars to
determine which test suites should be run. The test
suites to run can just be triggered directly.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-01-11 11:10:50 -07:00
Travis Nielsen d1f3e3b9ad test: upgrade from v1.7.10
The upgrade test is best if run from the latest v1.7 patch release.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-01-11 11:10:48 -07:00
Blaine Gardner bb0d0d39f6 Merge pull request #9384 from leseb/fix-7036
subvolumegroup: add new crd
2021-12-21 10:24:23 -07:00
Sébastien Han 6e9eb33782 subvolumegroup: add new crd
This introduces a new CRD to add the ability to create subvolumegroup
for a given ceph filesystem volume. Typically the name of the volume is
the name of the filesystem created by rook.

Closes: https://github.com/rook/rook/issues/7036
Signed-off-by: Sébastien Han <seb@redhat.com>
2021-12-21 16:28:38 +01:00
Sébastien Han 05775b068d osd: handle removal of encrypted osd deployment
This is handling a tricky scenario where the OSD deployment is manually
removed and the OSD never reconvers. This is unlikely to happen, but
still OSD should be able to run after that action. Essentially after a
manual deletion, we need to run the prepare job again to re-hydrate the
OSD information so that the OSD deployment can be deployed.
On encryption, it is a little bit tricky since ceph-volume list again
the main block won't return anything, so we need to target the encrypted
block to list.
There is another case this PR does not handle, which is the removal of
the OSD deployment and then the node is restarted. This means that the
encrypted container is not opened anymore. However, opening it requires
more work like writing the key on the filesystem (if not coming from the
Kubernete secret, eg,. KMS vault) and then run luksOpen. This is an
extreme corner case probably not worth worrying about for now.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-12-21 10:51:09 +01:00
Travis Nielsen 60cc67fed4 test: only create replicated pools in ci
Creating an EC pool is causing the CI to hang when the EC
pool is initialized since there aren't enough OSDs to
satisfy the EC parameters.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-12-15 15:32:03 -07:00
Travis Nielsen 7ee9cc9d56 pool: allow configuration of built-in pools with non-k8s names
The built-in pools device_health_metrics and .nfs created by ceph
need to be configured for replicas, failure domain, etc.
To support this, we allow the pool to be created as a CR.
Since K8s does not support underscores in the resource names
the operator must translate this special pool name into
the name expected by ceph.

This also sets the basis for allowing filesystem data
pools to specify the desired pool name instead of requiring
a generated name.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-12-15 15:32:02 -07:00
subhamkrai 22865815cf pool: add rbd ec pool support in external cluster
Adding cli agrument `--rbd-metadata-ec-pool-name` to read
rbd ec pool name to support ec pool in external cluster
and also updating the json blob.

Signed-off-by: subhamkrai <srai@redhat.com>
2021-12-14 12:13:22 +05:30
Blaine Gardner 2467daa406 Merge pull request #9169 from thotz/addtestcasesbucketnotification
test: add more test cases for bucket notfication
2021-12-09 08:54:21 -07:00
Sébastien Han 2bba4f18b8 Merge pull request #9343 from leseb/bump-to-16.2.7
core: bump to ceph 16.2.7
2021-12-08 18:03:41 +01:00
Sébastien Han 0a918814ea core: bump to ceph 16.2.7
ceph 16.2.7 is out so let's use it in our manifests.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-12-08 17:24:56 +01:00
Travis Nielsen 1e9d4cc31f test: upgrade test to update the toolbox spec
The toolbox spec changed from 1.7 to 1.8 due to the removal
of tini from the image. The upgrade test was failing on
k8s 1.18 due to this issue.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-12-07 17:00:22 -07:00
Travis Nielsen 9d2aa1f6bd test: generate long node name depending on test suite
The generation of a long node name in the integration tests was
being done based on the k8s version. In the past, older K8s versions
did not support the changing name. Now it's more maintainable if
we generate the long name depending on the test suite.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-12-06 08:03:56 -07:00
Blaine Gardner 243a47bfc4 build: do not use cross build container for ceph
Do not use the cross build container when building, publishing, and
promoting rook/ceph images. It is no longer needed, and its complexity
can add flakiness.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-12-03 11:06:21 -07:00
Jiffin Tony Thottan 7a9a7123a0 test: add more test cases for bucket notfication
Added following test cases for bucket notification integration test
suite:

* different order: OBC - Topic - Notification
* different order: OBC - Notification - Topic
* adding a label to an existing OBC
* deleting a label from an existing OBC

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2021-12-02 23:02:45 +05:30
Travis Nielsen d9ac8ce490 test: upgrade integration test from 1.7 to master
The upgrade integration test was from rook v1.6 to the latest master.
This was necessary until we are ready for the v1.8 release, from which
time we want to focus the upgrade testing from v1.7 to the latest
master.

The duplication in the test CRs and other resources is now reduced
by the upgrade calling a thin wrapper to forward a call to the
master version of the resource. When a new feature is added that
needs to be differentiated from the previous version, the method
then can be implemented instead of wrapping the master implementation.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-11-30 08:07:42 -07:00
Sébastien Han c890710b63 core: change directory layout
As per discussion, proposing a new layout for the charts/yaml/olm files.

./deploy
├── charts
│   ├── rook-ceph
│   │   └── templates
│   └── rook-ceph-cluster
│       └── templates
├── examples
│   ├── csi
│   │   ├── cephfs
│   │   └── rbd
│   ├── flex
│   ├── monitoring
│   ├── pre-k8s-1.16
└── olm
    └── assemble

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-11-30 09:12:53 +01:00
Sébastien Han 7a223adde4 Merge pull request #9230 from leseb/osd-rm-check
osd: check if osd is safe-to-destroy before removal
2021-11-25 10:55:34 +01:00
Sébastien Han ad2c3c2ae6 Merge pull request #8931 from BlaineEXE/test-rgw-multisite-in-nightly-tests
test: test rgw multisite nightly
2021-11-25 10:25:57 +01:00
Sébastien Han 7402c2cce6 osd: check if osd is ok-to-stop before removal
If multiple removal jobs are fired in parallel, there is a risk of
losing data since we will forcefully remove the OSD. It's also simply
true if a single OSD is not safe to destroy, there is also a risk of
data loss.

So now, we check if the OSD is safe-to-destroy first and then proceed.
The code waits forever and retries every minute unless the
--force-osd-removal flag is passed.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-11-25 10:21:32 +01:00