Commit Graph
5802 Commits
Author SHA1 Message Date
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 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
Sébastien Han f223ae79bb Merge pull request #6444 from cybozu-go/ci-clarify-the-supported-vm-driver-of-minikube
ci: clarify the supported vm-driver of minikube scripts
2020-10-19 10:00:53 +02:00
Sébastien Han df9b560941 Merge pull request #6458 from umangachapagain/kube-dep-fix
fixing "requires" for kube-controller-manager
2020-10-19 09:25:33 +02:00
subhamkrai cb0ca66a6b ci: enable gosec linter in golangci-lint
golangci-lint linter gosec showing more errors
than gosec gh. This commit resolve
new errors. And, removing
nosec comments from autogenerated files.

Signed-off-by: subhamkrai <srai@redhat.com>
2020-10-19 11:50:06 +05:30
Umanga Chapagain 6bb76189ad build: fixes "requires" for kube-controller-manager
using v0.0.0 is causing issues with unknown version even
though the replace block uses correct version. So updating
requires block to match replaces block version.

Signed-off-by: Umanga Chapagain <chapagainumanga@gmail.com>
2020-10-19 11:24:41 +05:30
Alexander Trost 268329709e Merge pull request #6440 from prksu/update-rook-nfs-doc
nfs: update documentation and example
2020-10-18 01:33:28 +02:00
Travis Nielsen ff23835bd8 Merge pull request #6445 from cybozu-go/add-a-maintainer
ceph: add a maintainer
2020-10-16 09:14:11 -06:00
MG 1063c387f9 docs: ceph disaster recovery
updated by removing the paranthesis around the arguments  to pass the value
Eg: ROOK_CEPH_MON_INITIAL_MEMBERS

Signed-off-by: MG <gmadhavi@gmail.com>
2020-10-16 23:03:11 +08:00
Satoru Takeuchi 625f3ca4b4 ceph: add a maintainer
Add a new Ceph maintainer.

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2020-10-15 22:59:01 +00:00
Satoru Takeuchi a188a80289 ci: clarify the supported vm-driver of minikube scripts
We can't use vm-drivers other than "docker" or "none" in minikube
scripts. It's because there is no device for OSD.

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2020-10-15 20:11:31 +00:00