Commit Graph
5811 Commits
Author SHA1 Message Date
Sébastien Han 341e2d7116 Merge pull request #6529 from leseb/rework-tests
ceph: rework unit test
2020-11-02 15:01:04 +01:00
Sébastien Han b7e0e206d3 ceph: rework unit test
Golang maps order is not always guaranteed to be identical, which makes
the table driven test to fail. Because of the nature of the maps, it is
hard to predict the exact position of an element in the map. This
makes the table driven test flappy.
Reworked the unit test using a contains statement which achieves the
same validation.

Closes: https://github.com/rook/rook/issues/6522
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-11-02 12:14:09 +01:00
Travis Nielsen 44bf443dca Merge pull request #6495 from LalitMaganti/preserve-fs
ceph: add option to preserve filesystem on CRD deletion
2020-10-30 16:56:38 -06:00
Lalit Maganti c6aec79c4f ceph: add option to preserve filesystem on CRD deletion
Due to #6492, preservePoolsOnDelete is not useful at all for CephFS;
after the filesystem is deleted, the leftover pools cannot be
reassocaited with a newly created filesystem without wiping all
metadata. The only way we can actually preserve data is keeping around
the entire filesystem.

This commit implements a `preserveFilesystemOnDelete` option which work
similar to the existing pool preservation option but instead keeps the
whole CephFS while taking it down and removing all MDSes.

This commit also changes all documentation to refer to this new option
with the intent of essentially deprecating `preservePoolsOnDelete`. IMO,
keeping around `preservePoolsOnDelete` is actively harmful because it
lulls users into thinking their data will be safe but, in reality,
recovering from this situation is highly complex and has large potential
for data loss.

Signed-off-by: Lalit Maganti <lalitm@google.com>
2020-10-30 17:04:18 +00:00
Sébastien Han a60351a8c5 Merge pull request #6474 from leseb/osd-encryption-vault
ceph: add vault kms support for osd encryption
2020-10-30 17:11:40 +01:00
Sébastien Han 34079a558d ceph: add missing block crd field
Resync the crd schema for upgrades.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-10-30 16:17:15 +01:00
Sébastien Han 032e6b5d77 ceph: remove osd pvc when the cluster is gone
Just like we do for the monitors, we set an ownerref to the OSD PVC so
when the cluster is deleted we remove the PVC too.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-10-30 16:17:15 +01:00
Sébastien Han 3403776c3e ci: add more osd on pvc scenario
Add the following scenario:

* simple osd on pvc
* osd on pvc with db device
* osd on pvc with wal device
* encrypted simple osd on pvc
* encrypted osd on pvc with db device
* encrypted osd on pvc with wal device

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-10-30 16:17:10 +01:00
Sébastien Han ea1d71cbfb ceph: add vault kms support for osd encryption
When the Ceph cluster runs on PVC and the OSDs are encrypted we can
store LUKS's Key Encryption Key inside a Key Management System. Today,
Rook only supports HashiCorp Vault: https://www.vaultproject.io/

The CephCluster has now a new "security" field which will plug onto the
KMS. Here is an example:

security:
  kms:
    tokenSecretName: <name of the secret containing a Vault token, used
    to authenticate>
    connectionDetails: < a map of strings containing connection
    information>

Refer to the ceph-cluster-crd documentation to lear more.

Closes: https://github.com/rook/rook/issues/6105
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-10-30 16:16:33 +01:00
Travis Nielsen 024d1a81a6 Merge pull request #6515 from yuseinishiyama/label-mon-pods
ceph: Label mon pods
2020-10-30 08:22:05 -06:00
Yusei Nishiyama beaddb9c22 ceph: propagte labels to mon pods
To align it with how the other components are implemented in #6084

Signed-off-by: Yusei Nishiyama <yusei.nishiyama@soundcloud.com>
2020-10-30 13:43:18 +01:00
Yusei Nishiyama 2967bceca8 test: improve TestLabelsApply
To clarify the spec of ApplyToObjectMeta This also fixes the misleading
comments on the method.

Signed-off-by: Yusei Nishiyama <yusei.nishiyama@soundcloud.com>
2020-10-30 13:40:42 +01:00
Travis Nielsen 1c562512e1 Merge pull request #6501 from xiaods/issue-6480-fix
Remove provisioner from nfs docs
2020-10-29 10:24:58 -06:00
Travis Nielsen 22a1630249 Merge pull request #5483 from cloudandheat/feature/configurable-crush-root
ceph: make root= CRUSH label value configurable
2020-10-29 10:21:02 -06:00
Deshi Xiao 512544b849 docs: tuning docs for nfs setup
1. remove missing provisioner.yaml
2. modified statement description

Signed-off-by: Deshi Xiao <xiaods@gmail.com>
2020-10-29 21:22:09 +08:00
Sébastien Han 9dd53cce9d Merge pull request #6494 from LalitMaganti/master
ceph: ignore MDS_ALL_DOWN during reconciliation
2020-10-29 11:30:09 +01:00
Sébastien Han 2e3e4c4916 Merge pull request #6424 from subhamkrai/apiextensions.k8s.io-v1
ceph: update deprecated CRD apiextensions.k8s.io/v1beta1 to v1
2020-10-29 09:31:33 +01:00
Jonas Schäfer 7ace6ac255 ceph: make root= CRUSH label value configurable
The CRUSH map does not allow duplicate values (nor keys) for the
labels. That means that if the currently hardcoded label value
`default` occurs anywhere else in the tree (for example, because
some of the topology labels provided by the cloud provider use it),
the cluster cannot sucessfully spawn.

By giving the user control over the label value used for the root
CRUSH map label, it is possible to adapt the cluster to this
situation.

To be able to actually use the `default` value, the root=default
node which is created by default by ceph itself has to be removed;
since that node is accompanied by a replicated crush rule, we have
to remove that rule, too.

The integration tests are modified to sometimes use the custom
crushRoot (based on an arbitrary criterium) to get coverage across
the various suites. Separate tests could be added, but were not
deemed necessary at this point.

Fixes #4993.

Signed-off-by: Jonas Schäfer <jonas.schaefer@cloudandheat.com>
2020-10-29 09:22:41 +01:00
Lalit Maganti 88f16e4980 ceph: ignore MDS_ALL_DOWN during reconciliation
This allows the catch-22 situation where the filesystem cannot be
reconciled because there is no MDS but there is no MDS because the
operator has not reconciled the filesystem and brought up the MDS pods.

Closes #5967, #5846

Signed-off-by: Lalit Maganti <lalitm@google.com>
2020-10-29 01:11:36 +00:00
subhamkraiandtravisn 1b2c15041f ceph: update deprecated CRD apiextensions.k8s.io/v1beta1 to v1
the apiextensions.k8s.io/v1beta1 version of CustomResourceDefinition
is deprecated in Kubernetes v1.16 and will no longer be supported from
v1.19. For now, we changing only for ceph and it's related documented.

Signed-off-by: subhamkrai <srai@redhat.com>
Co-authored-by: travisn <tnielsen@redhat.com>
Signed-off-by: subhamkrai <srai@redhat.com>
2020-10-29 06:26:10 +05:30
Travis Nielsen 0134a3c453 Merge pull request #6503 from leseb/do-not-assume-error-type
ceph: assert error type before using it
2020-10-28 13:21:37 -06:00
Travis Nielsen 1462c462c8 Merge pull request #6510 from subhamkrai/remove-allnodes
ceph: remove allNode option for rgw
2020-10-28 12:03:03 -06:00
subhamkrai cfdc5e7c50 ceph: remove allNode option for rgw
this commit removes unnecessary allNodes option
from rgw.

Signed-off-by: subhamkrai <srai@redhat.com>
2020-10-28 22:38:11 +05:30
Sébastien Han 1168dbc6ca ceph: assert error type before using it
We don't always get an error of the type "*exec.ExitError" so we must
validate the type before printing it otherwise the interface conversion
will fail.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-10-28 17:08:38 +01:00
Travis Nielsen 3dccee9a42 Merge pull request #6452 from tareqhs/patch-1
disaster recovery guide for PVCs
2020-10-27 11:33:25 -06:00
Sébastien Han 294f762d6b Merge pull request #6499 from subhamkrai/update-pendingreleaseNotes
docs: update PendingReleaseNotes.md
2020-10-27 15:41:44 +01:00
subhamkrai 62f8d641c5 docs: update PendingReleaseNotes.md
this commit update PendingReleaseNotes.md with
PR 6475 i.e export the storage capacity of
the ceph cluster.

Signed-off-by: subhamkrai <srai@redhat.com>
2020-10-27 19:54:41 +05:30
Travis Nielsen 725e978a79 Merge pull request #6493 from travisn/check-orphan-mon-pvcs
ceph: Check for orphaned mon resources with every reconcile
2020-10-27 07:44:10 -06:00
Sébastien Han 16d3895fbc Merge pull request #6475 from subhamkrai/cluster-storage
ceph: export the storage capacity of the ceph cluster
2020-10-27 14:34:00 +01:00
subhamkrai dd7a1a895a ceph: export the storage capacity of the ceph cluster
adding fields `TotalBytes`, `UsedBytes`, `AvailableBytes`
`LastUpdated` to the ceph cluster CR's status section to
report the storage details of ceph cluster.

`TotalBytes`: Total storage capacity in bytes
`UsedBytes`: Total storage used in bytes
`AvailableBytes`: Total storage used in bytes(Total - Used)
`LastUpdated`: Last update time

for example(I have added 10GB disk):

`kubectl get cephclusters.ceph.rook.io -o yaml`

```
status:
    ceph:
      capacity:
        bytesAvailable: 9657188352
        bytesTotal: 10733223936
        bytesUsed: 1076035584
        lastUpdated: "2020-10-23T12:57:48Z"
```

Signed-off-by: subhamkrai <srai@redhat.com>
2020-10-27 17:35:02 +05:30
Travis Nielsen efb1cc9f72 ceph: check for orphaned mon resources with every reconcile
The mon resources may be orphaned if there is a mon failover
that was cancelled, for example a mon pvc may remain if the
original mon comes up and the operator was restarted before
the mon failover completed. The cleaning up of mon resources
was only happening was each successful mon failover, now we
perform the check with every reconcile since the resources
were not being cleaned up predictably enough.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-10-26 14:06:17 -06:00
Tareq Sharafy d2a6518a5c docs: disaster recovery guide for PVCs
Signed-off-by: Tareq Sharafy <tareq.sha@gmail.com>
2020-10-24 23:07:18 +03:00
Sébastien Han 1a5d296e8e Merge pull request #6481 from cloudical-io/issue_6430
docs: update ceph monitoring examples
2020-10-23 12:07:26 +02:00
Alexander Trost 30fc31fb31 docs: update ceph monitoring examples
This updates the Ceph docs regarding the Grafana dashboards new version
requirement.

Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2020-10-23 10:33:48 +02:00
Sébastien Han 41f97c5c05 Merge pull request #6478 from alimaredia/object-store-multisite-unit-tests
ceph: Add unit tests for object store controller with multisite
2020-10-23 09:14:26 +02:00
Ali Maredia 8964941d44 ceph: add unit tests for object store controller with multisite
Add unit tests for when the "Zone" is configured
in an object store so that the object store joins
the CephObjectZone and the zone's corresponding
multisite configuration.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
2020-10-22 11:36:06 -04:00
Travis Nielsen 58ed572294 Merge pull request #6476 from subhamkrai/timeout-golangci
ci: increase golangci linter timeout
2020-10-21 15:55:33 -06:00
Travis Nielsen 6da0609b70 Merge pull request #6469 from sp98/fix-mon-pdb-reconcile
ceph: fix mon pdb reconcile
2020-10-21 15:45:34 -06:00
Satoru Takeuchi e2e4afe26f Merge pull request #6471 from cybozu-go/ceph-the-number-of-admission-controller-pods
ceph: reduce the number of admission controller pods in small cluster
2020-10-22 05:51:07 +09:00
Santosh Pillai 28cd611eb4 ceph: fix mon pdb reconcile
updated mon pdb reconcile to delete mon pdb and create a new one when mon count changes in the cluster spec

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2020-10-21 23:15:29 +05:30
subhamkrai a3cb168020 ci: increase golangci linter timeout
golangci linter sometimes failing due to
the timeout. So, increasing it to 6m from 4m.

Signed-off-by: subhamkrai <srai@redhat.com>
2020-10-21 22:38:03 +05:30
Alexander Trost 1320696c46 Merge pull request #6470 from cybozu-go/make-the-second-scratch-device-configurable
ci: remove an unnecessary code
2020-10-21 17:29:56 +02:00
Satoru Takeuchi 081c7c4dba ceph: reduce the number of admission controller pods in small cluster
The number of admission controller pods is 2. When there is only one
node as the CI environment, one of these becomes Pending state.
Although it's harmless, it's better to reduce this value to 1.

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2020-10-21 11:47:08 +00:00
Satoru Takeuchi 9621671e5e ci: remove an unnecessary code
Remove a workaround code of old-Jenkins-file-is-used-in-CI problem.

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2020-10-21 11:08:58 +00:00
Travis Nielsen 66636f5420 Merge pull request #6447 from MG40/docs
docs: Ceph disaster recovery
2020-10-20 16:33:03 -06:00
Alexander Trost 94eb052f28 Merge pull request #6462 from toabctl/use-get-helm-sh
helm: use get.helm.sh instead of storage.googleapis.com
2020-10-20 15:43:42 +02:00
Thomas Bechtold 7eae8086e4 ceph: use get.helm.sh instead of storage.googleapis.com
To be able to switch to helm v3, helm itself needs to be downloaded from
get.helm.sh. The old location from googleapis.com will only contain
helm v2 binaries. See [1].

[1] https://helm.sh/blog/get-helm-sh/

Signed-off-by: Thomas Bechtold <tbechtold@suse.com>
2020-10-20 14:47:09 +02:00
Sébastien Han dfb37dd0f7 Merge pull request #6461 from ZhenLiu94/liuzhen
build: fix error when building rook in centos7
2020-10-20 14:18:33 +02:00
ZhenLiu94 b83c8e9942 build: fix error when building rook in centos7
if I don't delete arg 'z' in 'tar -zxvf', compile process while return compilation fails in centos7.

Signed-off-by: ZhenLiu94 <zhenliu94@163.com>
2020-10-20 16:31:46 +08:00
Travis Nielsen 9b40f17ec4 Merge pull request #6328 from subhamkrai/test-gosec
ci: enable gosec linter in golangci-lint
2020-10-19 10:00:13 -06:00