Commit Graph
7961 Commits
Author SHA1 Message Date
Sébastien Han b6c1cb13a5 ceph: force enabling balancer module with older clients
When running old client version, we must force the compatibility
features so that the orchestration does not fail in a loop.

Closes: https://github.com/rook/rook/issues/4842
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-02-11 18:25:15 +01:00
Sébastien Han c08c3ced05 ceph: add support for metadata PVC for OSD on PVC
We now support the addition of the PVC that acts as a metadata device
for a given OSD.
For this, you need to create a new `volumeClaimTemplates`, its name must
be "metadata" otherwise, Rook won't pick it up.

A template will look like this:

```
volumeClaimTemplates:
- metadata:
    name: data
  spec:
    resources:
      requests:
        storage: 10Gi
    # IMPORTANT: Change the storage class depending on your environment (e.g. local-storage, gp2)
    storageClassName: gp2
    volumeMode: Block
    accessModes:
      - ReadWriteOnce
- metadata:
    name: metadata
  spec:
    resources:
      requests:
        storage: 6Gi
    # IMPORTANT: Change the storage class depending on your environment (e.g. local-storage, gp2)
    storageClassName: gp2
    volumeMode: Block
    accessModes:
      - ReadWriteOnce
```

We now map block and block.db directly inside the container instead of
running ceph-volume activate. This is much cleaner.

Closes: https://github.com/rook/rook/issues/3852
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-02-11 17:30:02 +01:00
Sébastien Han 7390940acd ceph: osd add missing annotation
Setting annotation on pvc deployments too so that we don't
restart/update deployment is not necessary.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-02-11 17:25:51 +01:00
Travis Nielsen 02ba91cddc Merge pull request #4839 from rwd5213/add-patch-cephfs-external-role
Update Chart for Patch to Volume Attachment in Storage apiGroup
2020-02-10 12:00:06 -07:00
Alexander Trost 430e4dc0f4 k8sutil: set ResourceVersion for PrometheusRule
This change sets the ResourceVersion on the PrometheusRule object before
it is updated in Kubernetes.
This change fixes the following error
```
is invalid: metadata.resourceVersion: Invalid value: 0x0: must be specified for an update
```
which can occur during update when no ResourceVersion is set.

Resolves #4528

Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2020-02-10 13:36:46 +01:00
desprert 712873641a helm: update charts for cephcsi v2.0.0
Updating clusterroles for cephcsi v2.0.0 permissions

Signed-off-by: Ryan Despres <rdespres117@gmail.com>
2020-02-07 22:45:25 -08:00
Travis Nielsen ffcd8b320a Merge pull request #4833 from travisn/min-size-0
Set min size to 0 on pool replication
2020-02-06 16:26:05 -07:00
Travis Nielsen 12ff5ab54a Merge pull request #4830 from leseb/octopus-support-osd
ceph: allow osd full upgrade to octopus
2020-02-06 16:25:54 -07:00
Travis Nielsen dbfcef8c19 ceph: set min size to 0 on pool replication
The replication and erasure code settings are mutually exclusive
so must both be treated as optional by the schema validation.
The minimum must be set to 0 to treat them as optional.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-02-06 13:48:52 -07:00
Travis Nielsen c46aeffc4f Merge pull request #4584 from jmolmo/issue_4565
ceph: Remove ineffectual assignments
2020-02-06 11:26:34 -07:00
Sébastien Han 8b8b07956f Merge pull request #4829 from leseb/followup-4679
ceph: nits from https://github.com/rook/rook/pull/4679
2020-02-06 19:01:40 +01:00
Sébastien Han 25d6d27a8a ceph: allow osd full upgrade to octopus
Once osds will run on octopus we will activate the necessary features
for these OSDs.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-02-06 18:40:04 +01:00
Sébastien Han e906b02ead ceph: add more ceph version checks
We need to be able to know which version we are running on.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-02-06 17:27:11 +01:00
Sébastien Han 2e9ee105ed ceph: nits from https://github.com/rook/rook/pull/4679
- Use %q when possible
- don't use fmt.Errorf
- use the right type when returning errors

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-02-06 16:40:19 +01:00
Sébastien Han 6a5d958236 Merge pull request #4803 from leseb/target_size_ratio
ceph: ability to set target_size_ratio
2020-02-06 10:22:05 +01:00
Sébastien Han cface95317 ceph: ability to set target_size_ratio
target_size_ratio is used the tell the Ceph cluster the excepted
occupancy of a pool in the cluster.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-02-06 09:13:47 +01:00
Travis Nielsen e487480487 Merge pull request #4679 from rohantmp/drainFix
Ceph: Improve detection of drain-canaries and info-log significant nodedrain scheduling events
2020-02-05 23:53:32 -07:00
Travis Nielsen d0c2de9c94 Merge pull request #4820 from travisn/disable-csi-owner-ref
Remove owner references to csi driver
2020-02-05 17:17:29 -07:00
Travis Nielsen dff7cddc87 Merge pull request #4811 from leseb/unclean-pvc
ceph: fail if no devices found
2020-02-05 16:15:59 -07:00
Travis Nielsen b6cf2c7ebf ceph: remove owner references to csi driver
The owner references for the csi driver are causing the csi driver
to disappear when the garbage collector rebuilds its references.
To unblock production clusters we remove the owner references
until we can find the correct fix for the owner references.
Neither the apiVersion of v1 or core/v1 is working.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-02-05 15:21:55 -07:00
Sébastien Han 1c3d449eb7 ceph: fail if no devices found
This will likely happen when re-running an orchestration and
bootstrapping a new cluster with unclean drives.
The prepare pod won't prepare nor list existing disks, thus the code
will later fail on reading disks properties.

Closes: https://github.com/rook/rook/issues/4810
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-02-05 22:16:26 +01:00
Travis Nielsen 46933442a0 Merge pull request #4587 from crombus/master
ceph: Fix md5 crypto to more secure sha256
2020-02-05 13:08:04 -07:00
Travis Nielsen 8f983892bd Merge pull request #4813 from ashishranjan738/preclean
Jenkins: Updates jenkins file to pre clean the k8s cluster
2020-02-05 12:22:20 -07:00
crombus 767f8d9c4c ceph: Fix md5 crypto to more secure sha256
This commit fixes md5 crypto to more efficent crypto
sha256 and fix test according sha256.

Closes: https://github.com/rook/rook/issues/4572
Signed-off-by: crombus <pkundra@redhat.com>
2020-02-05 22:31:47 +05:30
Rohan CJ eaab7b161d Ceph: Info log significant events in the nodedrain controller.
Info log events where a drain canary is either scheduled on a new node
or removed from a node.

Signed-off-by: Rohan CJ <rohantmp@gmail.com>
2020-02-05 16:24:56 +05:30
Rohan CJ 9d1419864e Ceph: Improve detection of stale canaries.
In the case where the node disappears abrubtly,
there was nothing to trigger the nodedrain reconciler to clean up
the stale canary.

Signed-off-by: Rohan CJ <rohantmp@gmail.com>
2020-02-05 16:21:22 +05:30
Ashish Ranjan 2238ccbfa6 Jenkins: Updates jenkins file to pre clean the k8s cluster
This commit updates the jenkins file to pre clean the k8s cluster before the running the integeration tests.

Signed-off-by: Ashish Ranjan <aranjan@redhat.com>
2020-02-05 12:20:58 +05:30
Travis Nielsen 44a391d55a Merge pull request #4808 from travisn/reenable-upgrade-test
Reenable the upgrade integration test in master
2020-02-04 14:13:59 -07:00
Travis Nielsen 9855db09bd ceph: describe file-test pod upon failure to terminate
The file-test consumer pod intermittently fails to stop during the
integration tests. When this happens, print the pod description
to see if there are events indicating the issue.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-02-04 12:17:27 -07:00
Travis Nielsen 8659cdbb3d ceph: refactor upgrade integration test checks for daemon versions
The upgrade test had duplicated code for checking that daemons
were upgraded after the Rook upgrade vs the Ceph upgrade.
This is now refactored for consistent checks after upgrade.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-02-04 12:17:27 -07:00
Travis Nielsen babd65d131 ceph: simplify most integration tests to single mds
The integration tests were always running two MDS daemons active,
with two standby. This is now parameterized so the test can request
how many MDS daemons to run. The smoke suite will run two active
and the rest will just run a single active MDS.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-02-04 12:17:27 -07:00
Travis Nielsen 97c4cf1631 ceph: reenable the upgrade integration test
The integration test was disabled due to removing support of pre-ceph-volume
OSDs as well as OSDs on directories. Now we re-enable the tests, with the
following approach:
- The base install in Rook v1.1 with the latest mimic release that
had c-v support
- The upgrade goes from v1.1 to Rook v1.2 then Rook master
- The final upgrade step is from mimic to nautilus

For efficiency the skipUpgradeChecks flag is added.
Logs are also collected between each upgrade step to improve
troubleshooting.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-02-04 12:17:24 -07:00
Travis Nielsen b1e93fa7eb Merge pull request #4151 from ashishranjan738/integrationtest
Add integration test for OSDs over PVCs
2020-02-04 12:15:37 -07:00
Ashish Ranjan 37b442a308 localPV: update localPath PV with size of 10G
This commit updates the localPath PV to use size of 10G and use /dev/xvdc as mountpoint for disks.

Signed-off-by: Ashish Ranjan <aranjan@redhat.com>
2020-02-04 22:28:20 +05:30
Ashish Ranjan 94d9de27d9 ceph: Adds integration tests for OSDs over PVC
This commit enables testing OSDs over PVCs by modifying the
multi-cluster test to use PVC for provisioning OSDs when `manual`
storageClass is present in the cluster.

Signed-off-by: Ashish Ranjan <aranjan@redhat.com>
2020-02-04 19:09:49 +05:30
Ashish Ranjan 4eff5e0730 ceph: updated jenkins file for executing localPathPV.sh
This commit updates jenkins file for executing localPathPV.sh during
bootstrapping of k8s cluster. The localPathPV.sh script is responsible
for creating localPathPVs over disks in the nodes.

Signed-off-by: Ashish Ranjan <ashishranjan738@gmail.com>
2020-02-04 16:06:06 +05:30
Ashish Ranjan 2495198409 ceph: Adds shell script for provisioning localPath PVs
This commit adds a shell script to provision localPath PVs over the
disks in the nodes for OSDs and random host directoris for mons.

Note: currently it is hardcoded to select disk of `/dev/xvdb`.

Signed-off-by: Ashish Ranjan <ashishranjan738@gmail.com>
2020-02-04 16:05:52 +05:30
Sébastien Han 6fe945c347 Merge pull request #4802 from cybozu-go/ceph-add-high-cpu-load-and-hang_task-problem-in-common-issues
Ceph: Add an rbd hang up problem in the common issues
2020-02-04 10:03:08 +01:00
Satoru Takeuchi bca6d1f4b1 Ceph: Add an rbd hang up problem in the common issues
Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2020-02-04 00:40:09 +00:00
Alexander Trost 3772cb0cca docs: Sort flexvolume docs, update for kubespray (#4747)
docs: Sort flexvolume docs, update for kubespray
2020-02-03 20:37:44 +01:00
Travis Nielsen 3c0dd7bf91 Merge pull request #4764 from umangachapagain/openshift-common-issues
Ceph: adds openshift common issues documentation
2020-02-03 12:17:50 -07:00
Alexander Trost 3a3394ae32 cassandra: JMX prometheus exporter (#3228)
cassandra: JMX prometheus exporter
2020-02-03 12:11:45 +01:00
Maksim Nabokikh 7dc9ec1191 cassandra: JMX prometheus exporter
Export prometheus metrics for cassandra in sidecar container

Signed-off-by: Maksim Nabokikh <maksim.nabokikh@flant.com>
2020-02-03 11:40:38 +04:00
Travis Nielsen 57fb7cda2e Merge pull request #4714 from Madhu-1/log-level
CSI: Add LogLevel for csi templates
2020-01-31 11:54:32 -07:00
Travis Nielsen 28140cf0ff Merge pull request #4787 from travisn/annotations-merge
Allow for empty "all" annotations
2020-01-31 10:35:41 -07:00
Travis Nielsen bf28fb5f3b Merge pull request #4784 from leseb/enable-balancer
ceph: ability to enable the balancer module
2020-01-31 08:54:04 -07:00
Sébastien Han 4aab01b311 Merge pull request #4788 from travisn/csi-disappearing
ceph: fix garbage collection for csi driver
2020-01-31 16:37:13 +01:00
Travis Nielsen 16b2058432 ceph: allow for empty all annotations
When the annotations are generated for a ceph daemon,
the all annotations are merged with the component annotations.
If there are no all annotations, the component annotation
calculation was crashing. Now we check for the case where
the all annotations are not defined.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-01-31 08:09:44 -07:00
Travis Nielsen 48499115f8 ceph: fix garbage collection for csi driver
The CSI driver was disappearing in some clusters after certain events such
as restarting the operator or master nodes being restarted. This is due to
an incorrect owner reference on the csi driver back to the configmap. The
owner reference must specify core/v1 instead of v1 for the APIVersion
of the configmap. This issue is only hit when the k8s garbage collector
rebuilds its cache, which would happen at indeterminate times from
Rook's perspective.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-01-31 07:21:59 -07:00
Sébastien Han 720c06cfec Merge pull request #4791 from galexrt/pickup_3689
doc: fix CephFS CSI StorageClass name
2020-01-31 14:18:13 +01:00