Commit Graph
5820 Commits
Author SHA1 Message Date
Sébastien Han bf7203ab65 Merge pull request #6473 from aruniiird/monitoring_endpoint_checks
ceph: added additional checks on accepting monitoring endpoint
2020-11-03 15:58:33 +01:00
Arun Kumar Mohan 20e7c4fbb9 ceph: changes to run unittests for external script
Signed-off-by: Arun Kumar Mohan <amohan@redhat.com>
2020-11-03 19:24:10 +05:30
Arun Kumar Mohan b0b8c8222b ceph: fixed monitoring port issue
Fixed an issue where monitoring port, even when set by user, being
overridden by the default value.

Signed-off-by: Arun Kumar Mohan <amohan@redhat.com>
2020-11-03 08:55:13 +05:30
Arun Kumar Mohan bb753caf52 ceph: need to shift 'DummyRados' class to top
As 'DummyRados' object is being used in other parts of the code, had to
shift this to top.

Signed-off-by: Arun Kumar Mohan <amohan@redhat.com>
2020-11-03 08:55:13 +05:30
Arun Kumar Mohan 72a8a6071b ceph: new tests for monitoring endpoints and upgrade user changes added
Signed-off-by: Arun Kumar Mohan <amohan@redhat.com>
2020-11-03 08:55:13 +05:30
Arun Kumar Mohan 7b8da65c81 ceph: fixed existing test cases
Modified / Fixed all the existing tests according to the latest changes.

Signed-off-by: Arun Kumar Mohan <amohan@redhat.com>
2020-11-03 08:55:13 +05:30
Arun Kumar Mohan c1a4ef6455 ceph: added additional checks on accepting monitoring endpoint
Changes related to Monitoring endpoint
a. for any monitoring endpoint and port (either user given through arguments
or internally found), added code to make sure we convert the endpoint
host_name to a proper IP address.
b. checks added to make sure we have a valid and reachable endpoint

Signed-off-by: Arun Kumar Mohan <amohan@redhat.com>
2020-11-03 08:55:13 +05:30
Jared Watts 8d445c919d Merge pull request #6202 from prksu/nfs-quota
nfs: implement disk quota
2020-11-02 08:34:54 -08:00
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