Commit Graph
13292 Commits
Author SHA1 Message Date
Sébastien Han 7afa0e125c Merge pull request #6362 from travisn/stretch-cluster-design
ceph: Design doc for stretch clusters
2020-10-13 16:51:34 +02:00
Sébastien Han b70b098405 ceph: add support for stretched cluster crush rule
The pool spec has now a new property called "replicasPerFailureDomain"
which essentially represents the number of replicas to store in each
failure domain.
Assuming the failure domain is a datacenter (if the cluster is
stretched) then you will have 2 replicas per datacenter where each
replica ends up on a different host. This gives you a total of 4
replicas and for this, the "size" must be set to 4.

Closes: https://github.com/rook/rook/issues/5591
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-10-13 16:33:34 +02:00
Sébastien Han bf9eb38f2a ci: add integration test for external python script
The CI runs a github action that builds and deploys a Rook cluster and
then execute various tests on the create-external-cluster-resources.py
script.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-10-13 16:31:59 +02:00
Sébastien Han 6c73493f8a Merge pull request #6420 from travisn/disallow-two-mons
ceph: Require an odd number of mons and sufficient nodes for mons
2020-10-13 16:10:19 +02:00
Travis Nielsen fe602e0902 Merge pull request #6426 from leseb/add-cv-log-to-non-pvc
ceph: add ceph-volume log to non-pvc scenario
2020-10-13 07:48:47 -06:00
Travis Nielsen 23e4b755b4 ceph: design doc for stretch clusters
Design document to support stretch clusters with an arbiter mon
based on the new design for stretch clusters in Ceph.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-10-12 15:33:33 -06:00
Travis Nielsen a4b1ca3faa docs: clarify cluster-on-pvc scenario for ceph
A frequently asked question is how to configure the cluster in dynamic
environments, or basically to use the cluster-on-pvc configuration.
This adds more details to the examples in the docs.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-10-12 15:21:28 -06:00
Travis Nielsen c7e0338d5e ceph: require an odd number of mons and sufficient nodes
The ceph mons should never be started with an even number in quorum.
The desired state should always be an odd number of mons to ensure
a healthy majority quorum. The operator now rejects a request for
an even number of mons.

If there are not a sufficient number of nodes for mons to be on a
unique host, the operator also returns an early error instead of
getting stuck waiting for a pending mon. This is not foolproof since
there might be fewer available nodes for the mons, but at least it
is a quick check for the common case.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-10-12 15:21:27 -06:00
Travis Nielsen ede7808960 Merge pull request #6421 from cybozu-go/ci-update-k8s-version-for-stability
ci: update K8s version for stability
2020-10-12 08:03:59 -06:00
Sébastien Han 8da0a146c9 Merge pull request #6427 from toabctl/ceph-watcher-debug-message-improvements
ceph: Improve watcher debug message when node is not tolerable
2020-10-12 15:52:54 +02:00
Thomas Bechtold ede4b9cb1a ceph: improve watcher debug message when node is not tolerable
When a node is not tolerable, also output the node name so it's clear
which not it is which is not tolerable.

Signed-off-by: Thomas Bechtold <tbechtold@suse.com>
2020-10-12 14:19:17 +02:00
Sébastien Han b623133fb6 ceph: add ceph-volume log to non-pvc scenario
When deploying on non-PVC, we still need to gather c-v logs on failures.
Now if the bootstrap fails, the c-v log will be printed.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-10-12 14:10:17 +02:00
Sébastien Han 010a2804f6 Merge pull request #6392 from aruniiird/add-upgrade-option-to-external-script
ceph: adding '--upgrade' option to external script
2020-10-12 09:55:15 +02:00
Sébastien Han 0b253ef7f9 Merge pull request #6416 from cybozu-go/ci-ceph-fix-readme
ci: ceph fix tests/README.md
2020-10-12 09:13:38 +02:00
Satoru Takeuchi d8211135ea ci: update K8s version for stability
K8s v1.16.13 is used in CI. In this version, there is a serious bug
which causes a continuous restart of both kube-scheduler
and kube-controller-manager. It results in the instability of CI.

This bug is fixed in v1.16.14 or later by the following PR.
https://github.com/kubernetes/kubernetes/pull/93208

Both 6415 and 6390, which only happen in v1.16.13, would be
caused by this issue.

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2020-10-11 02:46:56 +00:00
Satoru Takeuchi 90c03c814a ci: fix tests/README to use proper test command
In local environment, We should use `go test` than the test binary
under "_output/".

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2020-10-09 22:20:09 +00:00
Travis Nielsen e229a4f12e Merge pull request #6418 from travisn/doc-clarifications
docs: Clarifications for the readme and other documentation
2020-10-09 14:11:29 -06:00
Travis Nielsen 2f86051b1c docs: remove obsolete reference to v1alpha2 in design doc
The storageClassDeviceSets unnecessarily references the obsolete v1alpha2
version.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-10-09 12:53:45 -06:00
Travis Nielsen c1d553c318 docs: move ceph common issues subtopics under ceph tools
The ceph tools were split across different areas of the table of contents
that was confusing. Now the Ceph tools and troubleshooting guides are all
found under the Ceph tools.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-10-09 12:40:50 -06:00
Travis Nielsen 13da75a1db docs: clarify that the flex driver is disabled by default
The ceph flex driver has been disabled by default for some time.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-10-09 12:24:20 -06:00
Travis Nielsen 193def940d docs: remove unused documentation for test clusters
Rook should not be maintaining documentation for starting a K8s cluster
such as minikube or kubeadm. For simplicity, we just link to their documentation
to help them get started. Also removed is a section in the dev guide that
nobody has used for debugging operators locally.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-10-09 12:23:20 -06:00
Travis Nielsen efed0eff08 docs: update main readme for graduation
There are several small updates to the readme, including changing
a reference of incubation status to graduation, removing the
framework as an independently listed status since the operator
versioning is the critical point that depends on the framework,
moving the security reporting under bug reports, and reordering
cassandra to be alphabetically before cockroach.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-10-09 12:21:32 -06:00
Satoru Takeuchi a198c44a47 ci: export findRookRoot
Export findRookRoot() because it's useful to run any scripts
besides deploy_admission_controller_test.sh. In addition,
remove the unnecessary argument of findRookRoot().

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2020-10-09 15:49:00 +00:00
Arun Kumar Mohan fbb8af12e1 ceph: adding '--upgrade' option to external script
An '--upgrade' option is added to the option list, which upgrades the user
permissions (caps) to match newer version. Will try to detect
'rgw-pool-prefix' or user can provide it through the argument.

Segregated the command line arguments into three groups, common, output and
upgrade

Signed-off-by: Arun Kumar Mohan <amohan@redhat.com>
2020-10-09 18:59:25 +05:30
Sébastien Han 7bdbc0a4fc Merge pull request #6397 from leseb/fix-6134
ceph: tune osd tcmalloc thread cache bytes
2020-10-08 18:56:04 +02:00
Sébastien Han fe6b321bc6 Merge pull request #6395 from leseb/log-err-exec-file
ceph: log stderr in error when exec with output file
2020-10-08 17:56:00 +02:00
Sébastien Han eba561f13e Merge pull request #6408 from leseb/fix-bz-1885971
ceph: reduce s3 max retry
2020-10-08 17:30:27 +02:00
Travis Nielsen fd5c1982d1 Merge pull request #6407 from varshar16/update-nfs-ganesha-rados-url
ceph: update nfs ganesha rados config object
2020-10-08 08:56:23 -06:00
Sébastien Han d01a35cadd ceph: reduce s3 max retry
When rgw is not responding the aws-sdk retries using exponential
backoff. Having 20 retries means we would wait for a while (hours) to
eventually fail. This is a problem as we cannot reflect the status of
the bucket properly.
Now we use 5 max retries which means around 8 seconds.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-10-08 16:20:00 +02:00
Varsha Rao 7fd114612b docs: update ceph-nfs-crd about config object
Instead of creating config object per daemon. Now all daemons in a cluster
share a single config object.

Signed-off-by: Varsha Rao <varao@redhat.com>
2020-10-08 14:42:25 +05:30
Varsha Rao f5d125f8c9 ceph: update ganesha config object name
In cephadm and volume/nfs module, all ganesha daemons within a cluster watch
single config object. Each ganesha daemon in rook watches it's own config
object. This patch updates the ganesha config object name to maintain
uniformity.

Signed-off-by: Varsha Rao <varao@redhat.com>
2020-10-08 14:42:25 +05:30
Sébastien Han 6423e3838e Merge pull request #6405 from Madhu-1/update-mirror-doc
ceph: fix example rbdMirrorBootstrapPeerSecretName in mirror doc
2020-10-08 10:46:28 +02:00
Sébastien Han 35d524c7ed Merge pull request #6322 from alimaredia/object-zone-unit-tests
ceph: add unit tests for object/zone
2020-10-08 10:24:05 +02:00
Madhu Rajanna 0faa076859 ceph: fix example rbdMirrorBootstrapPeerSecretName in mirror doc
The rbdMirrorBootstrapPeerSecretName always starts with
pool-peer-token- when we pool is created with mirroring
enabled.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-10-08 13:51:38 +05:30
Sébastien Han 7c8de8fc7c Merge pull request #6402 from travisn/graduated-status
docs: Add a badge for graduation status
2020-10-08 09:18:32 +02:00
Travis Nielsen 3bbd14efb6 docs: add a badge for graduation status
To more quickly show the graduation status on the main readme,
we add a badge that shows rook is graduated.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-10-07 17:08:58 -06:00
Ali Maredia b62a50309f ceph: add unit tests for object/zone
Add unit tests for CephObjectZone controller.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
2020-10-07 18:52:44 -04:00
Sébastien Han b49b6393bc ceph: tune osd tcmalloc thread cache bytes
We can now tune the value of TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES by
setting an annotation on the CephCluster CRD like so:

```
annotation:
  osd:
    TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES: "134217728"
```

Alternatively, if nothing is specified Rook will read the value of the
file `/etc/sysconfig/ceph`.

Closes: https://github.com/rook/rook/issues/6134
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-10-07 18:49:18 +02:00
Sébastien Han 9b980d136f ceph: log stderr in error when exec with output file
In order to properly debug errors, we need to merge stderr inside the
`err` reported so that we don't only see the stdout.
We were doing this when executing without file output, doing the same
for the output file.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-10-07 14:47:09 +02:00
Sébastien Han c95eaea1e0 Merge pull request #6388 from cybozu-go/ci-ceph-fix-intermittent-failure-of-flexsuite
ci: fix an intermittent failure of ceph flex suite
2020-10-07 13:45:28 +02:00
Satoru Takeuchi 9cd42a17a4 ci: fix an intermittent failure of ceph flex suite
Sometimes CephFlexSuite fails with the following backtrace.

```
--- FAIL: TestCephFlexSuite (584.14s)
    --- PASS: TestCephFlexSuite/TestBlockStorageMountUnMountForDifferentAccessModes (163.66s)
    --- PASS: TestCephFlexSuite/TestBlockStorageMountUnMountForStatefulSets (83.21s)
    --- FAIL: TestCephFlexSuite/TestFileSystem (119.51s)
        ceph_base_file_test.go:487:
                Error Trace:    ceph_base_file_test.go:487
                                                        ceph_base_file_test.go:265
                                                        ceph_flex_test.go:113
                Error:          Expected nil, but got: &errors.errorString{s:"kubectl exec command bash failed on pod rook-ceph-tools in namespace flex-ns. Failed to run: kubectl [exec -n flex-ns rook-ceph-tools -- bash -c mount -t ceph -o mds_namespace=smoke-test-fs,name=admin,secret=$(grep key /etc/ceph/keyring | awk '{print $3}') $(grep mon_host /etc/ceph/ceph.conf | awk '{print $3}'):/ /tmp/testrook] : exit status 32"}
                Test:           TestCephFlexSuite/TestFileSystem
```

It's due to insufficient retry of mount.

There is only one difference between CI logs of both "PASS" cases and "FAIL" cases.

The log of PASS cases:
```
2020-09-30 21:47:03.369019 D | exec: Running command: kubectl exec -n flex-ns rook-ceph-tools -- bash -c mount -t ceph -o mds_namespace=smoke-test-fs,name=admin,secret=$(grep key /etc/ceph/keyring | awk '{print $3}') $(grep mon_host /etc/ceph/ceph.conf | awk '{print $3}'):/ /tmp/testrook
2020-09-30 21:47:03.679359 D | exec: Running command: kubectl exec -n flex-ns rook-ceph-tools -- mkdir -p /tmp/testrook/foo
```

The log of FAIL cases:
```
2020-09-30 21:49:21.591702 D | exec: Running command: kubectl exec -n flex-ns rook-ceph-tools -- bash -c mount -t ceph -o mds_namespace=smoke-test-fs,name=admin,secret=$(grep key /etc/ceph/keyring | awk '{print $3}') $(grep mon_host /etc/ceph/ceph.conf | awk '{print $3}'):/ /tmp/testrook
2020-09-30 21:49:36.592161 I | exec: timeout waiting for process kubectl to return. Sending interrupt signal to the process
2020-09-30 21:49:40.355420 E | utils: Failed to execute: kubectl [exec -n flex-ns rook-ceph-tools -- bash -c mount -t ceph -o mds_namespace=smoke-test-fs,name=admin,secret=$(grep key /etc/ceph/keyring | awk '{print $3}') $(grep mon_host /etc/ceph/ceph.conf | awk '{print $3}'):/ /tmp/testrook] : timeout waiting for the command kubectl to return.
```

Everything looks fine before showing the above-mentioned error in FAIL cases.
In addition, this problem hasn't happened in high-spec local machine
over 10 times.

Related issue: 6358

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2020-10-07 09:36:44 +00:00
Travis Nielsen 697b03146b Merge pull request #6383 from subhamkrai/update-tunefast
ceph: remove suffix _sdd for tuneFastDeviceClass
2020-10-06 16:13:43 -06:00
Travis Nielsen 5a267ad381 Merge pull request #6386 from cloudical-io/readme_badges
docs: updated badge url
2020-10-06 13:20:07 -06:00
Alexander Trost 41a2f7b6ad docs: updated badge url
This updates the badge image url and removes one differently styled
badge design param.

Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2020-10-06 20:57:53 +02:00
Travis Nielsen 5b1a263282 Merge pull request #6377 from thotz/obcdocupdate
docs: update obc documentation
2020-10-06 11:14:53 -06:00
Travis Nielsen bf68278b9f Merge pull request #6382 from sabbot/final-edgefs-commit
edgefs: EdgeFS deprecation documentation fix
2020-10-06 11:01:53 -06:00
subhamkrai 364df7793f ceph: remove suffix _sdd for tuneFastDeviceClass
this commit remove _ssd  suffix from
tuneFastDeviceClass setting as with _ssd
won't affect disk.

Signed-off-by: subhamkrai <srai@redhat.com>
2020-10-06 20:54:52 +05:30
Travis Nielsen 69049828ee Merge pull request #6191 from Obleskar/patch-3
edgefs: docs: note nfs service name restrictions
2020-10-06 09:19:18 -06:00
Anton Skriptsov d9ba495425 edgefs: edgefs deprecation documentation fix
Update EdgeFS status to 'Deprecated'

Signed-off-by: Anton Skriptsov <anton.skriptsov@gmail.com>
2020-10-06 17:38:47 +03:00
Travis Nielsen 3eddcf5477 Merge pull request #6283 from sp98/rook-IPv6-support
ceph: support IPv6 single-stack
2020-10-06 07:46:25 -06:00