Commit Graph
250 Commits
Author SHA1 Message Date
Travis Nielsen a777c94a08 Merge pull request #3778 from rohantmp/managedPDB
Reflect pdb rbac in helm template and ceph_manifests.
2019-09-05 14:10:40 -06:00
Blaine Gardner 2c4aec93ff Merge pull request #3767 from SUSE/disable-crd-config
Ceph: remove configOverrides from CRD
2019-09-05 13:59:23 -06:00
Blaine Gardner 1d47c03534 Merge pull request #3417 from nabokihms/dynamic-flexvolume-resize
ceph: Add dynamic flexvolume expansion
2019-09-05 12:52:14 -06:00
Blaine Gardner 3a243d2978 ceph: remove configOverride functionality from CRD
After further consideration and working with the feature for a few
weeks, the `configOverride` functionality seems to be more complexity
than is worth it for the expected benefit. Users still have the most
preferred option of setting configs in Ceph's config database using
`ceph cofig set` or the dashboard, and the override ConfigMap still
exists for fallback scenarios. The config database can still be used
by Rook for setting necessary configs, but the user has no way of
telling Rook to do so.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-09-05 12:30:56 -06:00
Rohan CJ ceeace5fd4 Reflect permissions required for managed disruption in the helm template and ceph_manifests
Signed-off-by: Rohan CJ <rohantmp@gmail.com>
2019-09-05 08:37:02 +05:30
Maksim Nabokikh 179e1a310d ceph: Add dynamic flexvolume expansion
Allow to dynamic resize of rook volumes

Signed-off-by: Maksim Nabokikh <maksim.nabokikh@flant.com>
2019-09-05 02:40:22 +04:00
Sébastien Han 3390a85404 ceph: bump to 14.2.3
Let's use the latest minor release of Ceph 14.2.3.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-09-04 23:14:28 +02:00
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