Commit Graph
11197 Commits
Author SHA1 Message Date
Nizamudeen 4b55a74ac4 ceph: Implementing Conditions on rook-ceph
Fixed conditions getting resetted after the operator restart.
Did the changes which required to implement conditions on the rook ceph cluster
Conditions will eliminate the current status.State and incorporates a type which
provides much more description to the current status of the cluster.

Signed-off-by: Nizamudeen <nia@redhat.com>
2020-01-30 10:21:11 +05:30
Travis Nielsen 55b4cdabd8 Merge pull request #4742 from leseb/external-cluster-test
ci: add external cluster functional test
2020-01-29 16:16:25 -07:00
Travis Nielsen 0a684fa84c Merge pull request #4549 from jmolmo/issue_3764
Ceph: Assure mon canary pods deletion
2020-01-29 12:32:03 -07:00
Sébastien Han 84fc10cdc1 ci: add external cluster functional test
Add coverage in the CI for the external cluster feature.

Closes: https://github.com/rook/rook/issues/3691
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-01-29 20:27:15 +01:00
Travis Nielsen bd3c618cef Merge pull request #4767 from Madhu-1/nil-check
ceph: Add nil check for ceph version
2020-01-29 11:59:53 -07:00
Dmitry Yusupov b4139b364e Merge pull request #4766 from SergeyKaydalov/edgefs-resources-fix
edgefs: memory/CPU resources limits fix
2020-01-29 09:17:33 -08:00
Juan Miguel Olmo Martínez b4ae856c70 Ceph: Assure mon canary pods deletion
If for any cause the operator processing a mon failover is restarted, the
mon canary pods created in order to get the right placement for this
kind of pods can remain in <pending> state forever.

The following labels have been added to the mon canary deployments:
"mon_type" = "canary"
"canary_pvc_name" = <PVC name used for the canary pod>

A separate <removeCanaryDeployments> has been implemented for
removing the dependence of the variable <canaryCleanup>.
This function uses the <canary> labels to obtain the <real>
and <existing> list of mon canary deployments in any moment.

This change, by itself, will avoid most of the problems with
pending canary pods, but as second safe guard measure a call to this
function has been added in the health check, to <force> a canary pod
deletion if the cluster of monitors is healthy and complete (this implies
that no canary pods should be present)

Resolves #3764

[test ceph]

Signed-off-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
2020-01-29 17:13:15 +01:00
Travis Nielsen cada839280 Merge pull request #4755 from leseb/raw-ceph-version
ceph: bump raw block mode support to 14.2.8
2020-01-29 09:10:14 -07:00
Madhu Rajanna 34e1585f54 ceph: Add nil check for ceph version
as CephVersion is pointer added a nil check
for CephVersion in status to avoid panic.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-01-29 19:34:30 +05:30
Sergey Kaydalov db788da967 edgefs: trlogKeepDays is a fractional value
The trlogKeepDays has to expressed as a fraction of a day: 0.5, 0.1 and etc

Signed-off-by: Sergey Kaydalov <kayserg@gmail.com>
2020-01-29 13:03:13 +02:00
Sergey Kaydalov 1d468f4c65 edgefs: fix in resouse exposal code.
User-specified memory and CPU limits are provisioned into a target container.

Signed-off-by: Sergey Kaydalov <kayserg@gmail.com>
2020-01-29 13:03:13 +02:00
Sébastien Han 98aff03098 ceph: bump raw block mode support to 14.2.8
14.2.7 will only be a CVE fix release so 14.2.8 is the release that will
contain the fixes for ceph-volume partition.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-01-29 09:12:44 +01:00
Travis Nielsen 8043afb165 Merge pull request #4710 from travisn/tests-skip-upgrade-checks
Skip the upgrade checks in integration tests
2020-01-28 16:31:33 -07:00
Travis Nielsen ec7f06b52b Merge pull request #4680 from jmolmo/mdszones
Ceph: MDS pod placement adheres to fault domain topology
2020-01-28 16:19:53 -07:00
Blaine Gardner 6f77db514c Merge pull request #4726 from Madhu-1/update-csi
CSI: Update cephcsi to v2.0.0 release
2020-01-28 15:41:49 -05:00
Madhu Rajanna 57c9002b92 integration: update CSI clusterRoles
Updated rbd-external-provisioner-runner and
cephfs-external-provisioner-runner CSI
clusterroles inintegration tests.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-01-28 23:50:23 +05:30
Madhu Rajanna 21e7a61ffd CSI: Add CSI clusterrole for upgrade testing
Add required clusterrole for CSI to work when rook
upgraded from 1.2 to 1.3

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-01-28 23:50:23 +05:30
Madhu Rajanna 1cab0985d5 CSI: Add log if the CSI volume expansion is not supported
Added warning log in opeartor, if csi volume
expansion is not supported.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-01-28 23:50:23 +05:30
Madhu Rajanna 5a685fba77 CSI: Add support for rbd erasure coded pool
In ceph-csi v2.0.0 added a support for specifing
the erasure coded pool in storageclass which will be
used to store data.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-01-28 23:50:23 +05:30
Madhu Rajanna cf16184899 CSI: Add support for CSI volume expansion
This PR makes the necessary changes required
for volume expansion support for both cephfs and
rbd.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-01-28 23:50:23 +05:30
Madhu Rajanna 8c1a90ca01 CSI: upgrade node-driver-registrar from v1.1.0 to v1.2.0
latest released upstream version is v1.2.0,this
PR updates it to latest releasd version.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-01-28 23:50:15 +05:30
Madhu Rajanna 06d2dd2994 CSI: update csi-attacher from v1.2.0 to v2.1.0
external-attacher v2.x is not compatible with v1.x
This PR makes the require changes in csi templates
and upgrade documentation for easily upgrade

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-01-28 23:46:24 +05:30
Madhu Rajanna 29f8749ded CSI: Remove containerized flag from rbd daemonset template
In ceph-csi release v2.0.0, deprecated `containerized` flag
is removed.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-01-28 12:20:13 +05:30
Madhu Rajanna a5605e8063 CSI: add missing image tag ENV to openshift operator
CSI image tag ENV required to select the image tag
is missing in operator-openshift.yaml, This commit
adds the missing image tag ENV to operator-openshift.yaml

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-01-28 12:20:13 +05:30
Madhu Rajanna 0abb3b9e1b CSI: update ceph-csi image tag to v2.0.0
ceph-csi v2.0.0 is released. This commit updates
the image tag to latest released ceph-csi version

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-01-28 12:20:13 +05:30
Travis Nielsen 153f28344e ceph: skip the upgrade checks in tests
The integration tests only have a single node so the upgrade
checks do not provide any real safety for the cluster during
the upgrade. We will be able to improve the reliability and speed
of the tests by disabling these checks.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-01-27 15:23:57 -07:00
Sébastien Han 9e4c8092fc ci: re-enable multi-cluster test
We are about to add support for external cluster in the CI so let's
re-enable this scenario.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-01-27 22:56:01 +01:00
Travis Nielsen d40cb217ae Merge pull request #4694 from egafford/secure-port-for-ceph-object-manifests
ceph: add securePort values for objectstore integration tests
2020-01-27 14:49:47 -07:00
Elise Gafford d7906266e1 ceph: remove validation on SecurePort for k8s <= 1.13
Versions of k8s prior to 1.14 do not support the nullable field in
CRD properties. As k8s 1.13 remains part of our support matrix and
as this field must remain nullable, we must remove CRD validation
of SecurePort. Range validation of this field has been moved into
the logic of rgw.validateStore.

Fixes: #4693
Signed-off-by: Elise Gafford <egafford@redhat.com>
2020-01-27 13:49:35 -05:00
Sébastien Han ed38ad4821 Merge pull request #4748 from galexrt/ci_k8s_updates
test: update k8s versions for CI
2020-01-27 16:13:23 +01:00
Sébastien Han d7a9409a9e Merge pull request #4606 from ashangit/set_pod_placement
ceph: create a generic setPodPlacement used by mon and gateways
2020-01-27 14:58:59 +01:00
Sébastien Han b762c1b7b2 Merge pull request #4751 from leseb/doc-pg
doc: update doc for PG count
2020-01-27 14:22:51 +01:00
Sébastien Han 20db12cb16 Merge pull request #4442 from leseb/refact-is-upgrade-2
ceph: improve kubernetes deployment upgrade detection
2020-01-27 14:04:06 +01:00
n.fraison 383299c5f5 k8sutil: refacto pod anti affinity placement used by ceph mon and gateways
Code for pod anti affinity mechanism on ceph gateways is a duplica of the one used by ceph mon.
This is a refacto to use same code on both components

Signed-off-by: n.fraison <n.fraison@criteo.com>
2020-01-27 09:58:50 +01:00
Sébastien Han 7a05ee63e4 doc: update doc for PG count
Ceph recently changed its default PG count in
https://github.com/ceph/ceph/pull/32788, it also changed from 8 to 16
then 16 to 32. So let's remove the 8 PGs mention which is incorrect.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-01-27 09:38:11 +01:00
Alexander Trost 112a746c62 docs: clean-up Ceph NFS Gateway CRD (#4745)
docs: clean-up Ceph NFS Gateway CRD
2020-01-25 11:31:20 +01:00
Alexander Trost 3a27d87ecc test: update k8s versions for CI
The CI will now use the current latest K8S releases.
v1.15: v1.15.9
v1.16: v1.16.6
v1.17: v1.17.2

Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2020-01-25 10:10:32 +01:00
Michael Fritch 384cba1a35 docs: clean-up Ceph NFS Gateway CRD
- fixup RADOS pool name to match what is used by the CRD
- add missing RADOS namespace to the Sample description
- move/merge description of the RADOS pool/namespace config into the
  sample text instead of inline comments within the CRD yaml
- add inline code block for `spec.server.active` field

Signed-off-by: Michael Fritch <mfritch@suse.com>
2020-01-24 17:16:38 -07:00
Sébastien Han caa8382e25 ceph: do not update deployment if no changes
We know use k8s-objectmatcher to verify whether a deployment is going to
change or not.
This avoids calling Update() from k8s utils which takes time to run.

Closes: https://github.com/rook/rook/issues/4519 and https://github.com/rook/rook/issues/4642
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-01-24 17:02:40 +01:00
Sébastien Han 92c1696bfc ceph: cleanup/trim isUpgrade variable a bit
We now always perform ok-to-stop change when the deployment is going to
be updated. This could be for various reasons like change in the spec or
a new Ceph image.
In any case, if Ceph resources are going to be restarted this must be
done carefully.

Also trimmed the isUpgrade variable, the upcoming commit will remove the
need of that variable.

Keeping isUpgrade from the controller code since we need it to detect
whether an orchestration upgrade should be triggered or not (based on
the ceph cluster status).

Also, we keep it on the child controllers so we don't go into an
orchestration phase if the cluster image hasn't changed. The child does
not need to be updated/go into its orchestration phase because the
cluster CR changed.

Closes: https://github.com/rook/rook/issues/4379
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-01-24 17:02:37 +01:00
Sébastien Han a8cd184aa1 Merge pull request #4629 from egafford/add-ceph-version-to-cluster-status
ceph: add ceph version to cluster status
2020-01-24 16:42:11 +01:00
Sébastien Han 677f9af718 Merge pull request #4435 from leseb/rm-rook-bin-for-osd-pvc
ceph: osd do not use the rook binary for osd on pvc
2020-01-24 16:00:56 +01:00
Elise Gafford b19f8d4989 ceph: add ceph version to cluster status
In order for deployments managed outside the immediate scope of
the ClusterController to accurately detect the Ceph version of
their images, the ClusterController must store the detected
version. This change records the Ceph version as part of the
cluster status and modifies the crashcollector deployment to
consume this field to record its own Ceph version. This replaces
an earlier solution to this problem in which the Ceph version
for a given image to version mapping was stored in a global
in-memory map by the operator.

Resolves: rook#4357
Signed-off-by: Elise Gafford <egafford@redhat.com>
2020-01-24 09:22:48 -05:00
Sébastien Han 0e41b45e43 ci: disable multi-cluster test
Since filestore is not supported anymore, this scenario might not be
needed anymore.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-01-24 12:18:21 +01:00
Sébastien Han 2245deb1a1 ci: temporarily disable upgrade suite
With the recent change, the upgrade suite needs to be adapted to only
test a c-v transition.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-01-24 12:18:21 +01:00
Sébastien Han 2367b65d4a ci: print more debug
Add more info on error to ease debugging.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-01-24 12:18:21 +01:00
Sébastien Han c1534e951a ci: unblock wipe job
Somehow the job was stuck on 'fdisk -l', the logic to wipe the block
device changed and we don't need that command anymore.
We wipe the disk in the PV loop.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-01-24 12:18:16 +01:00
Sébastien Han 227d2d527a ceph: osd store refactor
Multiple things:

1. We removed all the function/methods/tests that were used to
create and manage rook legacy OSDS as well as bringing support to
Bluestore OSD only.
It also fixes various go-lint issues in the respectives files.

2. use c-v inventory to detect available devices:
Now we rely on the 'ceph-volume inventory' command to tell us if a
device is available or not.

3. implement raw mode for osd on pvc
When an OSD will be bootstrap on a PVC, the new c-v raw mode will be
used. It consists of putting block, db and wal under the same device.
Here LVM is out of the picture and the raw device is used as is. The
implementation is backward compatible so existing OSD on PVC will LVM
will continue to operate.

Closes: https://github.com/rook/rook/issues/4363
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-01-23 19:13:09 +01:00
Sébastien Han 749ef5fe76 Merge pull request #4723 from leseb/mds_join_fs
ceph: add mds_join_fs option when running mds daemon
2020-01-23 11:30:38 +01:00
Sébastien Han 57a0dcea7f Merge pull request #4712 from xdsxc/device-filter-log-messages
osd: fix misleading log messages when matching device filters
2020-01-23 10:18:28 +01:00