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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
- 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>
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>
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>
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)
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>
* 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>
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>
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>
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>
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>
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>
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>