Commit Graph
243 Commits
Author SHA1 Message Date
Madhu Rajanna a8589af337 Implement grpc metrics for cephcsi
grpc metrics is made option in rook
this can be disabled/enabled with ROOK_CSI_ENABLE_GRPC_METRCS
variable in operator.yaml
this will help admin who want to check the grpc metrics
of the ceph-csi plugins

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2019-08-30 15:01:45 +05:30
Madhu Rajanna 3c0801dedb remove liveness tests from csi_template
The tempate defined is supposed to use of v1.0 manifests
so removing the liveness code from it.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2019-08-30 13:16:55 +05:30
Travis Nielsen 5eab7ca658 Merge pull request #3573 from SUSE/mon-kv-store
Ceph: override configs in CRD
2019-08-29 19:04:16 -06:00
Blaine Gardner 1be43290be Ceph: override configs in CRD
Allow users to specify overrides in the CephCluster CRD. The override
ConfigMap still exists for emergency situations and is mounted into
daemon pods directly instead of being merged into a Rook-created config
file.

Rook Ceph no longer uses a config file for managing daemons with the
exception of the OSDs which still generate a config in an init
container.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-08-29 15:38:27 -06:00
Anton Skriptsov c0fe6af712 Initial v1
Signed-off-by: Anton Skriptsov <sabbotagge@gmail.com>
2019-08-28 15:18:38 -07:00
Travis Nielsen 0aa1774ebe Merge pull request #3668 from noahdesu/canary-sched
ceph/mon: support monitor migration without rebuils
2019-08-27 22:50:43 -06:00
Noah Watkins e2fccdf03b ceph: remove the CRD option Mon.PreferredCount
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2019-08-27 17:43:35 -07:00
Sameer Kulkarni 9816fc7ce6 yugabytedb: integration tests and scripts
Signed-off-by: Sameer Kulkarni <samkulkarni20@gmail.com>
2019-08-27 22:45:14 +05:30
Travis Nielsen 769949bca9 Merge pull request #3694 from leseb/new-images
ceph: use latest ceph images
2019-08-26 18:40:49 -06:00
Sébastien Han a42916eff0 ceph: use latest ceph images
The last image has disabled ephemeral repositories so it's now possible
for images older than 15 days to install packages without having an
  error from non-existing repositories.

Closes: https://github.com/rook/rook/issues/3662
Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-26 23:50:55 +02:00
Madhu Rajanna 78fb35a93d Use Deployment with leader election instead of StatefulSet
Deployment behaves better when a node gets disconnected
from the rest of the cluster - new provisioner leader
is elected in ~15 seconds, while it may take up to
5 minutes for StatefulSet to start a new replica.

if kube version is 1.13.x deploy provisioner as statefulset.
if kube version is higher than 1.14+ deploy provisioner
as deployment.

Refer: kubernetes-csi/external-provisioner@52d1fbc
Refer: ceph/ceph-csi#497

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2019-08-26 19:29:37 +05:30
Madhu Rajanna 1abfdf9fb6 Fix incorrect service account used for rolebinding
Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2019-08-26 15:45:23 +05:30
Madhu Rajanna d4befa79db update plugin directory name in csi
This is required if you are running multiple
csi drivers, if multiple node plugins are
listening on the same socket they request
may go to any node plugin. to avoid this we
need to have a unique socket per csi driver.
It is recommended to have socket inside the
driver name folder.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2019-08-26 15:45:23 +05:30
jiffin abe3678990 adding smoke test for bucket store
Signed-off-by: jiffin <thottanjiffin@gmail.com>
Signed-off-by: Jon Cope <jcope@redhat.com>
Signed-off-by: jeffvance <jeff.h.vance@gmail.com>
2019-08-22 19:54:44 -06:00
Travis Nielsen b8d306f18a Merge pull request #3534 from sebastian-philipp/cephcluster-validation
CRDs: Add some more validations
2019-08-21 08:00:43 -06:00
Sebastian Wagner fe9f8d0560 Added compatibility to K8s < 1.14
This commit can ber reverted, as soon as 1.14 is mandatory.

K8s < 1.14 does not support `nullable` and `type: "null"` is not allowed.

See https://github.com/rook/rook/issues/3660

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2019-08-21 11:47:37 +02:00
Daniel-Pivonka 665172a9ea ceph: deploy liveness sidecar with csi
Signed-off-by: Daniel-Pivonka <dpivonka@redhat.com>
2019-08-19 14:26:47 -04:00
Travis Nielsen dd7a82fdc2 Merge pull request #3565 from nixpanic/ceph-csi/pidlimit
ceph-csi: pass --pidlimit option to provisioners
2019-08-13 22:58:26 -06:00
Travis Nielsen 35adf26d79 Merge pull request #3611 from phlogistonjohn/jjm-support-non-docker-in-tests
tests: do not require actual docker cli
2019-08-13 21:23:48 -06:00
Travis Nielsen 8e2f3f74a5 Merge pull request #3587 from pcuzner/change-ceph-mgr-rules
ceph: add rbac permissions for events api access
2019-08-13 17:01:17 -06:00
Blaine Gardner 1fce599d4c Merge pull request #3613 from SUSE/integration-use-apply-instead-of-create
Integration tests: use 'kubectl apply' vs create
2019-08-13 16:21:10 -06:00
Blaine Gardner 9009326ad7 Integration tests: use 'kubectl apply' vs create
Some integration tests fail due to resources from a previous integration
run not being cleaned up properly. Instead of using 'kubectl create' --
which fails with an error if the resource already exists -- to create
resources, use 'kubectl apply' -- which does not fail for pre-existing
resources. 'kubectl apply' will give a warning that it should be used to
apply changes to resources created with 'create' or 'apply', but there
is no error.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-08-13 15:03:39 -06:00
John Mulligan 28cb59943b tests: do not require actual docker cli
Other CLI tools, such as podman, and equivalent to docker so support
setting an environment var to use it.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2019-08-13 10:43:10 -04:00
travisn 7e670aa01f tests: collect operator log after each failed test
Signed-off-by: travisn <tnielsen@redhat.com>
2019-08-13 07:23:00 -06:00
travisn be391de73c resolve changes from merge conflict in upgrade changes
The upgrade changes for #2901 added the check for the correct version
of the ceph image before continuing with an upgrade. This commit is
to refactor that change to work with the new code path to validate
the ceph version.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-08-13 07:23:00 -06:00
travisn 9a3dc52a11 ceph: minimum version allowed is mimic 13.2.4
With the 1.1 release we should not be creating bluestore OSDs
with rook's legacy partitioning scheme. All new bluestore OSDs
should be created with ceph-volume. Therefore, the miminum
version allowed is a version of mimic supporting ceph-volume.

This commit also adds consistent version checking between
the Add and Update methods for the operator handling the
CR events.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-08-13 07:22:59 -06:00
John Mulligan c22c9f10c3 ceph csi: add temp filesystem for keys to csi test templates
Signed-off-by: John Mulligan <jmulligan@redhat.com>
2019-08-13 06:42:22 -04:00
John Mulligan 0a6ee2e072 ceph csi: add missing config map to csi test templates
Signed-off-by: John Mulligan <jmulligan@redhat.com>
2019-08-13 06:42:22 -04:00
Paul Cuzner ccbd037e2d ceph:RBAC updates for helm and test framework
Apply the RBAC changes for the mgr to access the
events API to the helm templates dir and the test
framework manifests for ceph

Signed-off-by: Paul Cuzner <pcuzner@redhat.com>
2019-08-13 09:59:10 +12:00
John Mulligan 9f6c0ba2c5 csi: prevent trivial conflicts between ceph csi instances with a prefix
Add a prefix to the csi drivername when ceph csi is deployed by rook.
This aims to prevent trivial conflict between csi instances when two
rook operators are deployed into the same cluster. By default the
prefix is the "<rook-namespace>." but can by customized on the cli
and via environment vars.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2019-08-12 16:41:26 -04:00
John Mulligan 4f9333bff7 ceph csi: switch templates to new cross-cluster config map
Signed-off-by: John Mulligan <jmulligan@redhat.com>
2019-08-12 16:41:26 -04:00
rohan47andAshish Ranjan d2f52aebe5 Adds support for storageClassDeviceSet in rook-ceph operator
- Added code to support StorageClassDeviceSet spec provided in the cluster-on-pvc.yaml
- The code reads the StorageClassDeviceSet spec and creates pvc based on the ‘count’ field for each device set.
- OSD prepare job is started for each PVC which activates the ceph-volume on each PVC
- Finally OSD is started on each of the PVC device.

Co-authored-by: rohan47 <rohgupta@redhat.com>
Co-authored-by: Ashish Ranjan <aranjan@redhat.com>
Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2019-08-12 09:24:13 -06:00
travisn 1d22146080 add CephCluster RBAC to the osd service account
In order for the osd service account to reference the
cephcluster CR in the owner references, OpenShift requires
access to the CephCluster CRD. This adds the minimal changes
needed to appease OpenShift.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-08-07 11:59:52 -06:00
travisn 0a3fbf62f3 enable the ceph-csi driver by default
CSI is now the preferred storage driver for Rook.
By default both the CSI and flex drivers will be started
by the operator. In a future release the flex driver
will be deprecated, but for now is still supported.

The drivers can be disabled with an environment
variable in the operator deployment in operator.yaml.
If users are only using one driver or the other there is
no need to enable both drivers.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-08-07 10:00:41 -06:00
travisn 1598a048a1 tests: collect all logs for pods in the test namespaces
Now we collect logs for all pods and all their init and main
containers during the integration tests. No longer will we be
missing logs from the integration tests as long as the pods
are available when they are collected at the end of the test.
The pod descriptions are also written to a log file instead
of being included inline with the test output.

Signed-off-by: travisn <tnielsen@redhat.com>
(cherry picked from commit 6e0bc338f90b3f36a89cf37b542ff4ff873b70bd)
2019-08-02 11:10:46 -06:00
Niels de Vos 5bf2d71ed8 ceph-csi: pass --pidlimit option to provisioners
The Ceph-CSI provisioners can hit a resource limit that is configured by
the container runtime (CRI-O restrict the number of processes/threads in
a container to 1024 by default). When there are spikes in the
provisioning, it is possible that the provisioners or helper executables
are not able to start new child processes, causing delays in the volume
creation or deletion.

A new --pidlimit command flag has been introduced with ceph/ceph-csi#517
and can be used to prevent the resource restrictions. This makes it
possible for the provisioners to stay responsive during spikes in the
requests.

The PID limit is configured to 'max' (value -1), but this can be adapted
to a (large) static value if needed.

See-also: https://github.com/ceph/ceph-csi/pull/517
Signed-off-by: Niels de Vos <ndevos@redhat.com>
2019-08-02 12:47:08 +02:00
Sebastian Wagner 07d31f066b CephCluster CRD: Add resources to Storage Nodes
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2019-08-01 14:57:19 +02:00
Sebastian Wagner cf19f2ad80 CRDs: Add some more validations
* Extend CephCluster
* Add validation for CephFilesystem,
* Add validation for CephNFS
* Add validation for CephObjectStore
* Syncronozed the validation of all three copies

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2019-07-31 09:23:22 +02:00
Madhu Rajanna f95929da16 update csi template
ceph-csi https://github.com/ceph/ceph-csi/pull/457

made deployment template changes and also
removed node publish secrets and added not
stage secrets.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2019-07-24 22:27:56 +05:30
travisn be8a25e07e trigger the integration tests for all branches if tags not set
The integration tests for storage providers will be skipped
for example if [test ceph] is specified. If the [test] tag
is not specified, all tests should be run. If the tag is not
specified, the Jenkinsfile will pass null, which needs to be
handled by the test code deciding to run all the tests.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-07-23 10:53:22 -06:00
Sébastien Han 41d2953e7e ceph: use latest 14.2.2 code
14.2.2 is out and along with it numerous fixes so let's use it.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-07-22 15:58:25 +02:00
Blaine Gardner f54dcbb5f5 ceph integration: add psp to integration tests
Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-07-18 14:52:39 -06:00
travisn d40e490444 allow executing tests specific to a storage provider
Since most PRs are focused on a single storage provider,
the tests for other storage providers do not need to be
run. The CI will allow skipping tests for other storage
providers by specifying keywords in the PR description.
Similar to [skip ci], you can now specify [test storage-provider].
For example, [test ceph] will only trigger the test
suites for ceph and none of the other storage providers.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-07-17 23:29:52 -06:00
Anton Skriptsov aea098b8b5 Add/remove nodes via EdgeFS cluster' CRD
Signed-off-by: Anton Skriptsov <sabbotagge@gmail.com>
2019-07-17 09:09:52 -07:00
Sébastien Han 40d37a165f test framework: collect logs earlier
Logs will be lost if we collect them after pods are uninstalled.
So we need to collect them before purging.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-07-17 00:39:18 +02:00
Blaine Gardner 5fc99a6266 Merge pull request #3369 from SUSE/cmd-reporter
Add cmd-reporter daemon; use it to get ceph version
2019-07-11 16:05:14 -06:00
travisn ef9dc0be74 tests: ensure cluster does not exist before starting a test
The CI instances are not always being properly cleaned up
between runs. This is an attempt to get the tests
to ensure a clean install before proceeding with the test.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-07-05 16:41:52 -06:00
Blaine Gardner 2ef83c4027 ceph: use cmd-reporter for ceph version job
Use cmd-reporter to detect Ceph version.

The job to detect Ceph version needs to run in a security account context
capable of getting/creating ConfigMaps, so a new security account, role,
and role binding are created for the cmd-runner jobs. In the future, the
Ceph mgr may create jobs in this service account for running
`ceph-volume` on nodes, and this also keeps Rook operators controlling
multiple Ceph clusters independent.

Fixes #2686 - ceph version job not working correctly with graylog

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-07-05 15:37:14 -06:00
Travis Nielsen 0f699aa33c Merge pull request #3377 from poornimag/fork-ceph-image-latest
Change the ceph image to point to latest-nautilus-devel
2019-07-05 08:42:05 -06:00
Poornima G 4ddef3e823 Change the ceph image to latest-nautlius-devel
Currently in cluster deploy, ceph image points to ceph/ceph:v14.2.1-20190430.
Changing this to use ceph/daemon-base:latest-nautilus-devel as its the latest nautilus.

Ceph nautilus has some changes in cephsfs mgr module, which is required by ceph-csi
canary image, without which the create/purge of RWX PVCs will fail. These changes
are not yet part of any released ceph version, i.e v14.2.1-20190430. Even in the
short future, we expect some changes to land in Nautilus after 14.2.2, hence
waiting for 14.2.2 release and updating to it, will not solve the issue.
Therefore using latest-nautilus-devel, which will always have the changes
required by ceph-csi. This is only a temperory change in the master, until
14.2.3 is released.

Signed-off-by: Poornima G <pgurusid@redhat.com>
2019-07-05 06:50:30 +00:00