Commit Graph
595 Commits
Author SHA1 Message Date
Sébastien Han 0d2f955d7c Merge pull request #4668 from likid0/fix-ocp-operator-external
ceph : Change in operator-openshift.yaml the env variable ROOK_CURREN…
2020-01-13 17:56:58 +01:00
Daniel Parkes 9762dee4b8 fix(context): ceph : Change in operator-openshift.yaml the env variable ROOK_CURRENT_NAMESPACE_ONLY to false
When configuring a cephcluster CRD on a different namespace than rook-ceph, like for example when deploying a external cluster, we need to set ROOK_CURRENT_NAMESPACE_ONLY to true so the operator can watch for CRD modifications on other namespaces.

Closes: https://github.com/rook/rook/issues/4667
Signed-off-by: Daniel Parkes <dparkes@redhat.com>
2020-01-13 14:31:04 +01:00
Madhu Rajanna 47cc1adf62 CSI: run containers as non-privileged in provisioner pod
currently we are running plugin container as privileged
in the provisioner pod for both cephfs and rbd.

we are also running snapshotter container as privileged
in the provisioner pod for rbd.

as we are executing the ceph and rbd commands in provisioner
pod we dont need to be privileged, This PR removed the
privileged capability from the templates.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-01-13 09:07:21 +05:30
Madhu Rajanna 7a7e65a9b2 CSI: use empty dir to store provisioner socket file
currently we are making use of hostpath
directory to store the provisioner socket, as this
socket is not needed by anyone else other than containers
inside the provisioner pod using empty directory
to store this socket is  the best option.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-01-10 08:31:18 +05:30
Madhu Rajanna d9dd91d9fb CSI: Add privileged securityContext to all daemonset containers
On systems with SELinux enabled, non-privileged containers
can't access data of privileged containers.
Since the socket is exposed by privileged containers,
all sidecars must be privileged too.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-01-10 08:31:12 +05:30
Travis Nielsen 9a078bf9e6 minio: remove from rook
The minio operator has not had community support nor
any updates since being added to Rook. Support is being
removed from Rook due to this lack of community interest.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-01-08 15:45:21 -08:00
Sébastien Han 05aa639317 ceph: add option to continue on unclean PGs
A new CRD option `continueUpgradeAfterChecksEvenIfNotHealthy` is added.
When upgrading, Rook goes OSD by OSD and then waits for PGs to be clean
before proceeding to the next OSD. Currently, Rook waits for 5 hours but
there might be circumstances where PGs need more time to settle.
Thus setting `continueUpgradeAfterChecksEvenIfNotHealthy` to true will
pursue the upgrade process, even if PGs are not 100% active+clean.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1786029
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-01-07 12:18:54 -07:00
Jeff Billimek 127e9d289a ceph: bumping ceph-operator memory limit to 256Mi
* bumping ceph-operator memory limit from 128Mi to 256Mi in order to
avoid OOMkills of the rook-ceph-operator pod
* updating documentation example for operator to denote a limit of 256Mi
instead of 128Mi

When upgrading from rook v1.1.7 to v1.2.0, the rook-ceph-operator pod
continued to get OOMKilled by the kubernetes scheduler.  Manually
bumping this limit to something higher than 128Mi (I tried 256Mi and it
was good) prevented the OOMKills.

Signed-off-by: Jeff Billimek <jeff@billimek.com>
2019-12-20 11:41:40 -05:00
Travis Nielsen 92e7f12451 cephcsi: add upgrade documentation for csi driver
If using ceph-fuse or rbd-nbd the application pods will need
to be restarted during upgrade. This adds a description of
the steps necessary to ensure the applications remain healthy
during upgrade.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2019-12-16 23:16:05 -07:00
Madhu Rajanna 8be3cdd10e CSI: cephfs and rbd daemonset upgrade strategy
CSI nodeplugins, specifically when using cephfs FUSE or
rbd-nbd as the mounters, when upgraded, will
cause existing mounts to become stale/not-rechable
(usually connection timeout errors).

This is due to losing the mount processes running within the
CSI nodeplugin pods.

This PR add updated the Daemonset update strategy
based on the ENV variable to take care of above issue
with some manual steps

Moreinfo: https://github.com/ceph/ceph-csi/issues/703

Resolves: https://github.com/rook/rook/issues/4248

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2019-12-16 23:15:56 -07:00
Juan Miguel Olmo Martínez e8ccef854d Ceph: Toleration seconds for <NotReady> nodes is now configurable
Reduce from 5 minutes to less than 50 seconds the time needed to restart a
mgr and osds(PVCs based),rgw,mds,rbd,nfs and toolbox pod that was running
in a k8s "NotReady" Node.

A new Rook Operator setting has been added to allow the user to set the
time used in pod's toleration <node.kubernetes.io/unreachable>:
ROOK_UNREACHABLE_NODE_TOLERATION_SECONDS = <5>

New setting added in release notes

Addressed @travisn,@leseb, and @blaineEXE suggestions

Signed-off-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
2019-12-16 21:38:46 -07:00
Travis Nielsen 804e41132d ceph: force enable the cephfs kernel driver by default
There are two issues at odds with the cephfs driver. The
first is that older kernels less than 4.17 do not support
quotas so PVC sizes will not be enforced with the kernel
driver in that case. If the FUSE client is used instead, there
are issues during upgrade because the client mount will be
disrupted and the client pods will have to restart.

To prevent client pods from breaking during upgrade, we enable
the kernel driver by default. If the quotas are critical,
the admin will need to take steps during upgrade to prevent
breaking the applications.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2019-12-16 13:04:16 -07:00
Madhu Rajanna 85d622dc2f CSI: Add ENV variable to use ceph kernel client
In ceph-csi v1.2.2 we have add a flag `forcecephkernelclient`
to force use Ceph Kernel clients on kernel < 4.17 which
support quotas for Cephfs

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2019-12-16 12:36:31 -07:00
Travis Nielsen 32a69b8afc ceph: clarifications to v1.2 upgrade guide
Removed some obsolete instructions from the 1.1 upgrade
and made a few minor fixes to make the upgrade to 1.2 smoother.
With the addition of the CephClient CRD, the CRD needs to be
created before the upgrade or else the operator log will be
filled with errors until it is created. The CSI driver also
had an error when registering after the upgrade due to an RBAC
change.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2019-12-16 11:31:52 -07:00
Sébastien Han 0a1d700927 ceph: osd tune startup flags when running on GP2
gp2 devices present themselves as SSDs,
but have much more variable performance.
Ceph attempts to adjust some settings based on the drive type,
HDD/SSD
In this case client I/O can be impacted too much by assuming gp2 devices are like other SSDs
(an example is https://bugzilla.redhat.com/show_bug.cgi?id=1765923#c6)

In order to prevent this, rook can set the following for OSDs
if the new CR setting `tuneSlowDeviceClass` is set to `true`:

```
osd_recovery_sleep = 0.1
osd_snap_trim_sleep = 2
osd_delete_sleep = 2
```

Closes: https://github.com/rook/rook/issues/4298 and https://bugzilla.redhat.com/show_bug.cgi?id=1771047
Signed-off-by: Sébastien Han <seb@redhat.com>
2019-12-16 16:37:02 +01:00
Dmitry Yusupov ad93098a33 EdgeFS documentation corrections and 1.2 release notes
Signed-off-by: Dmitry Yusupov <dmitry@nexenta.com>
2019-12-13 15:35:30 -08:00
Sébastien Han 2652ae74d0 Merge pull request #4347 from swati-kale/operandForm
ceph: Metadata for creation of operand form for CephObjectStore
2019-12-13 10:23:00 +01:00
Blaine Gardner 2a250314be Ceph: update upgrade docs for v1.1 -> v1.2
Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-12-12 13:58:25 -07:00
Swati Kale 946c6e2a64 olm: Metadata for creation of operand form for CephObjectStore
Signed-off-by: Swati Kale <swkale@redhat.com>
2019-12-12 14:06:11 -05:00
Sébastien Han a888ed5d7c Merge pull request #4485 from anmolsachan/osd_alerts
ceph: Added OSD utilization alerts
2019-12-12 18:24:27 +01:00
Anmol Sachan 99e961f72a ceph: Added OSD utilization alerts
Signed-off-by: Anmol Sachan <anmol13694@gmail.com>
2019-12-12 22:40:26 +05:30
Anmol Sachan 353621452b ceph: Improve storage utilization alert description and message.
Signed-off-by: Anmol Sachan <anmol13694@gmail.com>
2019-12-12 14:51:27 +05:30
Travis Nielsen 3294384da7 Merge pull request #4415 from leseb/use-minor-version
rook-ceph: stop using ceph version with timestamp and bump to 14.2.5
2019-12-10 08:14:51 -07:00
Sébastien Han 68fd4f4df9 rook: stop using ceph version with timestamp
With https://github.com/ceph/ceph-container/pull/1529, we now build
vX.X.X version so we don't need to have the timestamp. Also we will
automatically get the last changes from the OS/packages too more
frequently.

Closes: https://github.com/rook/rook/issues/4414
Signed-off-by: Sébastien Han <seb@redhat.com>
2019-12-10 11:39:35 +01:00
Nizamudeen 910fe6f980 ceph: make the udevfilter into configurable
Added default regex values.
Created an environment variable and using that variable the user can give custom regex values
Updated the PendingReleaseNotes.md
Signed-off-by: Nizamudeen <nia@redhat.com>
2019-12-10 10:07:30 +05:30
Dmitry Yusupov f842c60116 Merge pull request #4432 from SergeyKaydalov/edgefs-s3-payload
EdgeFS: support for payload on external S3 server
2019-12-09 20:01:37 -08:00
Travis Nielsen a8f399af88 Merge pull request #3669 from mateuszlos/cephclient
Create Client CRD
2019-12-09 08:05:19 -07:00
Mateusz Los 50f3d29cf4 ceph: client controller tests and docs
ceph client CRD refactoring
Add info about client crd to documentation
Add tests for client controller CRD

Signed-off-by: Mateusz Los <los.mateusz@gmail.com>
2019-12-09 12:48:44 +01:00
Dominic Pearson f71a600e0c examples: correct spelling error.
Signed-off-by: Dominic Pearson <dsp@technoanimal.net>
2019-12-09 11:43:54 +01:00
Mateusz Gozdek 65fd8ece2a ceph: Create initial client controller code
Create initial client controller code

Signed-off-by: Mateusz Los <los.mateusz@gmail.com>
2019-12-08 16:47:57 +01:00
Travis Nielsen 1247e7add8 ceph: comment out empty deviceFilter property
The deviceFilter property needs to have a value rather
than be completely empty as it was in the settings.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2019-12-06 16:45:41 -07:00
Sergey Kaydalov b6b95d44ed edgefs: payloads on an S3 service
Added support for data chunk forwarding to an external S3 service

Signed-off-by: Sergey Kaydalov <kayserg@gmail.com>
2019-12-06 19:16:43 +02:00
Travis Nielsen c75e64b954 Merge pull request #3998 from ruslanloman/master
Allow to run rook operator on host network
2019-12-05 10:51:06 -07:00
Travis Nielsen 0a352f64d9 Merge pull request #4285 from cybozu-go/use-mapper-name
ceph: support device selection for OSDs by device path name patterns
2019-12-05 07:54:07 -07:00
ruslanloman 59e17dcdf5 ceph: Allow to run rook operator on host network
There is use case when need to run rook operator on host network since
  ceph mon is not accessible from kubernetes pod network.

Signed-off-by: ruslanloman <ruslanloman@gmail.com>
2019-12-05 13:25:08 +02:00
Kazuhito MATSUDA 40d868ebd7 ceph: support device selection for OSDs by device path name patterns
Add devicePathFilter to Storage Selection Settings which enables
device selection with a regular expression for device path names.

Fixes: https://github.com/rook/rook/issues/4275
Signed-off-by: Kazuhito MATSUDA <kazuto.jinnai@gmail.com>
2019-12-05 07:02:44 +00:00
RAJAT SINGH ca3ab62b9d Ceph: Modified toolbox.yaml so that it need not to run privileged
Removed unnecessary voumeMounts and privileged flag from toolbox.yaml file.

Signed-off-by: RAJAT SINGH <rajasing@redhat.com>
2019-12-05 01:57:50 +05:30
RAJAT SINGH 519b36286c File: Added file direct-mount.yaml
Changed all the occurances of toolbox.yaml to direct-mount.yaml in file direct-tools.md

Signed-off-by: RAJAT SINGH <rajasing@redhat.com>
2019-12-05 01:57:40 +05:30
Madhu Rajanna cc418bce3b CSI: Ability to disable snapshotter from ceph-csi rbd
we need to set a ENV `CSI_RBD_ENABLE_SNAPSHOTTER`
variable to "false" in operator template to disable
deployment of snapshotter sidecar in ceph-csi rbd
provisioner.

Fixes: #4401
Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2019-12-03 13:27:29 +05:30
Satoru Takeuchi fcc3dbce0b ceph example: remove non-existent topologyAware CRD option
topologyAware CRD option is removed by the following commit.

commit ef6815ebfa

Fixes: https://github.com/rook/rook/issues/4384

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2019-11-28 13:34:49 +00:00
Madhu Rajanna 7f14b52ba6 CSI: update ceph-csi from v1.2.1 to v1.2.2
cephcsi v1.2.2 release is out and the image is available
for use, updating rook to use latest available release
image

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2019-11-21 10:59:20 +05:30
Travis Nielsen 8e3a620bc5 Merge pull request #4335 from Madhu-1/update-sidecar
CSI: update kubernetes sidecar images
2019-11-18 22:57:06 -08:00
Madhu Rajanna 49381b322d CSI: update kubernetes sidecar images
update csi sidecar images to fix CVE-2019-11255

more info:
https://github.com/kubernetes/kubernetes/issues/85233
https://github.com/kubernetes-csi/external-snapshotter/issues/193
https://github.com/kubernetes-csi/external-provisioner/issues/380

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2019-11-19 10:20:12 +05:30
Blaine Gardner f32cecb701 Merge pull request #3206 from d-luu/ceph_priority_classes
ceph: added priority classes to components
2019-11-18 11:27:57 -07:00
d-luu 9c755fac66 ceph: added priority classes to components
Adds priority class support to Ceph components
  to influence scheduler's pod preemption

Signed-off-by: d-luu <david@davidluu.info>
2019-11-15 16:28:41 -06:00
ShyamsundarR 48a0decc49 CSI: Make attach mandatory in ceph CSIDriver object
A recent PR #4172 added the ability for rook to create
the CSIDriver object on a kubernetes cluster. The change also
made it so that attachRequired value in the ceph CSI drivers
were set to false.

This leads to the entire attach skipping the AD controller
that deals with RWO attachment enforcement. Thus, if a
CephFS volume is marked RWO, 2 pods on different hosts can
end up mounting the same and consuming it at the same time.

Further for RBD, currently the image watchers are the only ones
that prevent a double mount of an image, other than the AD controller
enforcement of single attach for RWO RBD PVs. This has proven
not to be reliable in the face of MON failures, as the watcher
information is lost, and a second mount is allowed.

Thus, we need to bring back the attach requirement to leverage
kubernetes checks and balances for RWO volume type, and
prevent unwanted multi-attach use of the same.

This PR hence undoes some of the changes introduced by the
PR #4172, to bring the attacher side car back, and also declare
the attachRequired for both RBD and CephFS CSI plugins as true.

NOTE: Initially the attachRequired was set to false as this
improved attach times considerably on kubernetes, as the
entire phase was being avoided.

Signed-off-by: ShyamsundarR <srangana@redhat.com>
2019-11-15 16:15:53 -05:00
Sébastien Han 59164f2bca Merge pull request #4326 from travisn/doc-pvc-usage
Add osd anti-affinity to the example of OSDs on PVCs
2019-11-15 19:54:51 +01:00
Travis Nielsen 93543a2565 Merge pull request #4321 from leseb/reorganize-design-dir
design: add backends to their respective directories
2019-11-15 11:01:15 -07:00
Travis Nielsen dd04c5f1bc ceph: add anti-affinity for the example of osds on pvcs
OSDs on PVCs need some anti-affinity or other node affinity in order
to attempt to spread the OSDs across nodes. The OSD anti-affinity
is only effective when the number of OSDs matches the node count,
but at least it is a start.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2019-11-15 08:30:15 -07:00
Sébastien Han 91b76cc24c doc: update design links
Since we re-organized the design directory we need to update the links
in various files.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-11-15 11:29:46 +01:00