Commit Graph
8080 Commits
Author SHA1 Message Date
Sébastien Han dd67b866dc core: run discover daemonset as root uid
So that the tool inside the container has the permission to run
correctly, e.g: sgdisk.

Clsoes: https://github.com/rook/rook/issues/9493
Signed-off-by: Sébastien Han <seb@redhat.com>
2022-01-03 12:36:23 +01:00
Satoru Takeuchi 376ca62f8a Merge pull request #9491 from rspier/patch-1
Update ceph-monitoring.md
2021-12-28 16:35:49 +09:00
Robert Spier a60b154c76 docs: fix indentation
Fix indentation for `monitoring:` block example.  It belongs inside the
`spec:`.

Signed-off-by: Robert Spier <rspier@pobox.com>
2021-12-26 21:23:52 -08:00
Satoru Takeuchi 32e7084e88 Merge pull request #9489 from cybozu-go/add-helm-to-build-requirements
build: add missing helm
2021-12-27 12:39:45 +09:00
Satoru Takeuchi a7b5f06622 build: add missing helm
If helm is not install, `make` fails with the following log.

```console
./build/rbac/get-helm-rbac.sh: line 25: helm: command not found
```

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2021-12-27 02:13:32 +00:00
Blaine Gardner bb0d0d39f6 Merge pull request #9384 from leseb/fix-7036
subvolumegroup: add new crd
2021-12-21 10:24:23 -07:00
Blaine Gardner cb1b063e13 Merge pull request #9365 from thotz/bucketnotificationadditionimprovement
object: fix handling for notifications for OBC
2021-12-21 10:23:32 -07:00
Sébastien Han 6e9eb33782 subvolumegroup: add new crd
This introduces a new CRD to add the ability to create subvolumegroup
for a given ceph filesystem volume. Typically the name of the volume is
the name of the filesystem created by rook.

Closes: https://github.com/rook/rook/issues/7036
Signed-off-by: Sébastien Han <seb@redhat.com>
2021-12-21 16:28:38 +01:00
Sébastien Han 77b18f0553 Merge pull request #9434 from leseb/bz-2032656
osd: handle removal of encrypted osd deployment
2021-12-21 16:14:34 +01:00
Sébastien Han 05775b068d osd: handle removal of encrypted osd deployment
This is handling a tricky scenario where the OSD deployment is manually
removed and the OSD never reconvers. This is unlikely to happen, but
still OSD should be able to run after that action. Essentially after a
manual deletion, we need to run the prepare job again to re-hydrate the
OSD information so that the OSD deployment can be deployed.
On encryption, it is a little bit tricky since ceph-volume list again
the main block won't return anything, so we need to target the encrypted
block to list.
There is another case this PR does not handle, which is the removal of
the OSD deployment and then the node is restarted. This means that the
encrypted container is not opened anymore. However, opening it requires
more work like writing the key on the filesystem (if not coming from the
Kubernete secret, eg,. KMS vault) and then run luksOpen. This is an
extreme corner case probably not worth worrying about for now.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-12-21 10:51:09 +01:00
Sébastien Han fffb862956 Merge pull request #9457 from leseb/fix-9452
core: disallow multiple clusters in the same namespace
2021-12-20 17:18:10 +01:00
Blaine Gardner 9dc41f5796 Merge pull request #9427 from BlaineEXE/always-report-reconcile-events
operator: always report events
2021-12-20 08:42:08 -07:00
Sébastien Han 74de03230f Merge pull request #9473 from vshinde727/patch-1
docs: fixed typo on rbd mirroring documentation
2021-12-20 14:19:04 +01:00
vshinde727 6a0690383a docs: fixed typo on rbd mirroring documentation
Signed-off-by: Vivek Shinde <vshinde@parallelwireless.com>
2021-12-20 15:53:21 +05:30
Satoru Takeuchi 1f9dc0bbfa Merge pull request #9464 from travisn/osd-purge-label
osd: Add label to osd purge job
2021-12-20 16:57:05 +09:00
Satoru Takeuchi d6d2b4ba4e Merge pull request #9465 from travisn/primary-affinity-doc
docs: Recommend primary affinity over hybrid pools
2021-12-20 16:56:01 +09:00
Travis Nielsen 277252a46d docs: recommend primary affinity over hybrid pools
Hybrid pools suffer from lower availability when a node goes down,
so we recommend primary affinity instead of hybrid pools.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-12-17 15:09:21 -07:00
Travis Nielsen 54d3c09dc4 osd: add label to osd purge job
The label was on the job, but not on the pod template,
so querying for the pod logs was not working as simply
as if we added the label.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-12-17 15:00:45 -07:00
Travis Nielsen 4c45856edb Merge pull request #9441 from crd1985/master
ceph: fix blockOwnerDeletion error
2021-12-17 09:21:48 -07:00
Sébastien Han 24d022eebb Merge pull request #9453 from BlaineEXE/jumbo-frames-note-in-common-issues
docs: add jumbo frames note to common issues
2021-12-17 14:33:05 +01:00
Jiffin Tony Thottan 9d9acc2db1 object: fix handling for notifications for OBC
Current approach is to delete all the existing notifcations from bucket
and re-add the notification from the labels.

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2021-12-17 16:29:27 +05:30
Sébastien Han da76a772f8 core: disallow multiple clusters in the same namespace
Rook does not support running multiple clusters in the same namespace,
so the operator should not reconcile if a new cluster is added.
The scenario where a cluster is added while the operator is down is also
handled. CR updates are also handled.
When the operator detects more than one cluster it will refuse to
reconcile the CephCluster, and child CRDs will block too until the
operator is ready.
The user must remove one of the clusters before can continue to perform
any reconcile.

Closes: https://github.com/rook/rook/issues/9452
Signed-off-by: Sébastien Han <seb@redhat.com>
2021-12-17 10:56:15 +01:00
Sébastien Han 52ededd151 core: do not log create event as info
Let's use debug not to clutter logs.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-12-17 10:55:31 +01:00
Sébastien Han 97978b5d24 Merge pull request #9189 from subhamkrai/readonly-external-script
security: add dry run mode for external cluster script
2021-12-17 09:45:41 +01:00
Blaine Gardner 6c90d66875 docs: add jumbo frames note to common issues
Resolves #9320

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-12-16 16:13:43 -07:00
Travis Nielsen 517aff4245 Merge pull request #9439 from y1r/add-cap-mknod-to-psp
osd: add CAP_MKNOD to PSP
2021-12-16 10:57:14 -07:00
Travis Nielsen b7a145eac6 Merge pull request #9418 from travisn/mds-skip-sanity
mds: Skip sanity check during upgrades to 16.2.7
2021-12-16 09:53:51 -07:00
Travis Nielsen 0c19f62df2 mds: skip sanity check during upgrades to 16.2.7
The mons need to be configured to skip the mds sanity check
during upgrade to 16.2.7 or the mons may crash during that
upgrade.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-12-16 08:07:02 -07:00
Daniel Ruiz Capilla 66cc46220f rgw: fix blockOwnerDeletion error
This restores the missing permissions to allow the object controller to
update the finalizers section in the spec. See https://sdk.operatorframework.io/docs/faqs/

Signed-off-by: Daniel Ruiz Capilla <crd1985@gmail.com>
2021-12-16 09:36:21 +01:00
subhamkrai c891ddb57d security: add dry run mode for external cluster script
Adding dry run mode for external cluster script.
This will add cli argument `--dry-run`. By default
`dry-run` option will be `False`
which means it will only print something like below.

```
Execute: 'ceph fs ls'
Execute: 'ceph fsid'
Execute: 'ceph quorum_status'
Execute: 'ceph auth get-or-create client.healthchecker mon allow r, allow command quorum_status,
	allow command version mgr allow command config osd allow rwx pool=default.rgw.meta, allow r pool=
	.rgw.root, allow rw pool=default.rgw.control, allow rx pool=default.rgw.log, allow x
	pool=default.rgw.buckets.index'
Execute: 'ceph mgr services'
Execute: 'ceph auth get-or-create client.csi-rbd-node mon profile rbd osd profile rbd'
Execute: 'ceph auth get-or-create client.csi-rbd-provisioner mon profile rbd mgr allow rw osd
	profile rbd'
Execute: 'ceph status'

```

Signed-off-by: subhamkrai <srai@redhat.com>
2021-12-16 13:05:39 +05:30
Yuichiro Ueno bae6351a39 osd: add CAP_MKNOD to PSP
This commit adds CAP_MKNOD to PodSecurityPolicy to allow OSD-prepare job
creating pods under PSP-enabled Kubernetes cluster.

Signed-off-by: Yuichiro Ueno <ueno@preferred.jp>
2021-12-16 12:36:27 +09:00
Travis Nielsen 07f101e157 Merge pull request #9363 from travisn/configure-built-in-pool
pool: Allow configuration of built-in pools with non-k8s names
2021-12-15 16:03:54 -07:00
Travis Nielsen 60cc67fed4 test: only create replicated pools in ci
Creating an EC pool is causing the CI to hang when the EC
pool is initialized since there aren't enough OSDs to
satisfy the EC parameters.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-12-15 15:32:03 -07:00
Travis Nielsen 7ee9cc9d56 pool: allow configuration of built-in pools with non-k8s names
The built-in pools device_health_metrics and .nfs created by ceph
need to be configured for replicas, failure domain, etc.
To support this, we allow the pool to be created as a CR.
Since K8s does not support underscores in the resource names
the operator must translate this special pool name into
the name expected by ceph.

This also sets the basis for allowing filesystem data
pools to specify the desired pool name instead of requiring
a generated name.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-12-15 15:32:02 -07:00
Blaine Gardner da61ac1ae8 operator: always report events
The original PR which added event reporting unnecessarily "optimized" to
prevent spamming the API controller[1].

It is sometimes important to get events as they happen and not hide new
events behind preexisting older events. For example, in integration
tests, we may often want to wait for a controller to finish processing
an update, and the best way to do that is to wait for the
"ReconcileSucceeded" event. In order for this to be useful, the events
must be reported each time.

If we begin having problems with events being reported too often, then
we should fix the underlying issue of reconciles happening too often
instead of relying on a time-based "optimization" that hides recent
event reports that may be useful.

[1]: https://github.com/rook/rook/pull/7222

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-12-15 15:24:17 -07:00
Travis Nielsen 7a6a62f43b Merge pull request #9386 from leseb/mgr-active-side-car-permissions
mgr: run the watch side car config on /etc/ceph
2021-12-15 12:20:28 -07:00
Blaine Gardner 016ae962c7 Merge pull request #9388 from BlaineEXE/helm-add-monitoring-option
helm: add optional monitoring RBAC to operator chart
2021-12-14 15:35:49 -07:00
Blaine GardnerandMathieu Parent e3be7a30ba helm: add optional monitoring RBAC to operator chart
An older version of the Helm chart always installed RBAC permissions for
enabling monitoring. In an effort to reduce the privileges Rook uses by
default, they were removed. We need to still include the monitoring RBAC
optionally since the change could break some users.

Co-authored-by: Mathieu Parent <mathieu.parent@insee.fr>
Co-authored-by: Blaine Gardner <blaine.gardner@redhat.com>

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-12-14 15:32:54 -07:00
Blaine Gardner 24a77d4fa1 Merge pull request #9296 from degorenko/cephfs-datapools
file: allow to create CephFS dataPools with predefined names
2021-12-14 11:04:49 -07:00
Travis Nielsen 8c4a239e4c Merge pull request #9423 from parth-gr/direct-mount-toolbox
build: updating tini init command in direct mount toolbox
2021-12-14 10:53:59 -07:00
parth-gr bc355c695e build: update the securityContext of direct mount container
update securityContext to runAsUser: 0
so container can run as a root user

Signed-off-by: parth-gr <paarora@redhat.com>
2021-12-14 19:37:27 +05:30
parth-gr bd3e558c24 build: updating tini init command in direct mount toolbox
the tini have been removed but was still present at direct mount
used the bin/bash shell in place of tini

Closes: https://github.com/rook/rook/issues/9382
Signed-off-by: parth-gr <paarora@redhat.com>
2021-12-14 18:40:25 +05:30
Denis Egorenko 3ff681e81d file: allow to create CephFS data pools with predefined names
Add an ability to create data pools for CephFS with predefined
names.

Related-Issue: rook#9295
Signed-off-by: Denis Egorenko <degorenko@mirantis.com>
2021-12-14 12:52:19 +04:00
Sébastien Han ca7d7dd14f Merge pull request #9276 from subhamkrai/external-rbd-ec
pool: add rbd ec pool support in external cluster
2021-12-14 09:51:02 +01:00
Sébastien Han 8a9c4e5706 Merge pull request #9415 from travisn/k8s-1.23-test
build: Add K8s 1.23 to the CI tests
2021-12-14 09:29:19 +01:00
Sébastien Han af30b0a5b8 Merge pull request #9417 from BlaineEXE/fix-health-checker-when-force-deleted
pool: file: object: clean up health checkers for force deletion
2021-12-14 09:16:04 +01:00
subhamkrai fc88e4ff8e pool: update the failure domain of pool-ec file to host
Updating the failure domain of pool-ec file from
osd to host.

Signed-off-by: subhamkrai <srai@redhat.com>
2021-12-14 12:13:27 +05:30
subhamkrai 22865815cf pool: add rbd ec pool support in external cluster
Adding cli agrument `--rbd-metadata-ec-pool-name` to read
rbd ec pool name to support ec pool in external cluster
and also updating the json blob.

Signed-off-by: subhamkrai <srai@redhat.com>
2021-12-14 12:13:22 +05:30
Travis Nielsen ec7039e7f8 build: add k8s 1.23 to the ci tests
With the release of k8s 1.23 we update the CI to run PRs
against K8s 1.16 and K8s 1.23, the oldest and latest
releases that are supported. The master branch will
run against the latest v1.16, 1.18, 1.21, and 1.23.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-12-13 23:33:49 -07:00
Blaine Gardner 0c76be8c38 pool: file: object: clean up health checkers for force deletion
When CephBlockPool, CephFilesystem, or CephObjectStore resources are
deleted after removing their finalizer, the code path to stop monitoring
was not stopping monitoring since a non-present resource does not have a
name and namespace attached. When the object is deleted, ensure the
internal representation used to stop monitoring has a name and namespace
to fix the issue.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-12-13 16:07:01 -07:00