Commit Graph
45 Commits
Author SHA1 Message Date
Sébastien Han c6ca35eea1 Merge pull request #9534 from yati1998/csi-addon
csi: implement csi-addons sidecar
2022-01-18 17:55:07 +01:00
Sébastien Han 46ef24b5c9 Merge pull request #9571 from parth-gr/external-cluster-osd-blocklist
csi: Add osd blocklist capabilities to the external cephcluster
2022-01-18 17:42:14 +01:00
yati1998 2b92dc812c csi: implement csi-addons sidecar
This commit implements the csi-addons sidecar.

Signed-off-by: yati1998 <ypadia@redhat.com>
2022-01-18 21:52:01 +05:30
Jiffin Tony Thottan e90c36f255 docs: update scaledobject.yaml for applicable with keda v2.5
Even though mention about keda 2.x version, the scaledObject.yaml or
rgw-keda.yaml referring to older keda CRs

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2022-01-18 18:57:28 +05:30
parth-gr 7e851f15c6 csi: add osd blocklist capabilities to the external cephcluster
The CSI users created by the external script(both for rbd and cephfs)
need the blocklist capability so the CSI pods can execute the
`osd blocklist` commands for metro DR
update the mon caps of csi users with `profile simple-rados-client-with-blocklist`
so they have privileges to run osd blocklist cmds

Closes: https://issues.redhat.com/browse/RHSTOR-2451

Signed-off-by: parth-gr <paarora@redhat.com>
2022-01-18 18:01:01 +05:30
Humble Chirammal b7584f3007 csi: update sidecar to the latest releases
Below sidecars are updated to the latest releases with this commit.

csi-provisioner      : 3.1.0
csi-attacher         : 3.4.0
node-driver-registrar: 2.4.0

Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
2022-01-17 23:32:48 +05:30
Humble Chirammal e8d9884f05 csi: update ceph csi images to release 3.5.0
Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
2022-01-17 23:32:45 +05:30
Blaine Gardner 3b415ea15a Merge pull request #9482 from yuvalif/ceph-cloudevent-topic
rgw: add HTTP CloudEvent endpoints to CephBucketNotification CR
2022-01-13 08:40:07 -07:00
Yuval Lifshitz c99e2a37fd rgw: add HTTP CloudEvent endpoints to CephBucketNotification CR
this add a configuration parameter that allows an RGW, from
Ceph Quincy (v17) and on, to send bucket notifications to an HTTP CloudEvents
endpoint.
Header format:
https://github.com/cloudevents/spec/blob/main/cloudevents/adapters/aws-s3.md

Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
2022-01-13 12:08:40 +02:00
Sébastien Han 511c250336 Merge pull request #9411 from parth-gr/external-cluster-permission-security
security: update auth permissions for external cluster
2022-01-10 16:12:42 +01:00
parth-gr 4a3088c580 security: make cephfs_filesystem_name flag optional
cephfs_filesystem_name flag isn't mandatory if restricted_auth_permission
is on.

Signed-off-by: parth-gr <paarora@redhat.com>
2022-01-07 20:27:05 +05:30
Blaine Gardner 684fe30126 core: limit use of wildcards in cluster-scoped rbac
Rook needs to be able to watch all `ceph.rook.io` resources to reconcile
them; however, it does not need blanket verb privileges. Reduce the
privileges as much as possible.

Ideally, Rook would only have update permissions to status and
finalizers of resources; however, finalizers are not a full-fledged
subresource at this time, and "update" permissions must be maintained
for `ceph.rook.io` resources.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2022-01-05 17:10:14 -07:00
parth-gr 6ed7423bac security: update auth permissions for external cluster
Added a clusterName, poolName , filesystemName, radosNamespace
as a suffix on ceph auth principals for external cluster so
every csi authentication would be unique if
restricted_auth_permission flag is specified.

Closes: https://github.com/rook/rook/issues/9192
Signed-off-by: parth-gr <paarora@redhat.com>
2022-01-05 13:51:41 +05:30
Blaine Gardner 5b9ac16670 Merge pull request #9468 from BlaineEXE/startup-probes
core: rgw: allow specifying daemon startup probes
2022-01-04 11:03:12 -07:00
Blaine Gardner c07d89d9ea core: rgw: allow specifying daemon startup probes
Allow specifying daemon startup probes where we also allow configuring
liveness probes. Startup probes allow Rook to tolerate when Ceph daemons
occasionally take a long time to start up while not also making
Kubernetes liveness probes slower to detect runtime failures of daemons.

Startup probes are beta in Kubernetes 1.18, so we should not enable
probes by default for earlier Kubernetes versions.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-12-21 15:12:41 -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
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 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
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 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 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
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
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
Lennart Hagemann 7507790375 security: use correct osd tags for restricted caps
The create-external-cluster-resources.py with
--create-external-cluster-resources set to true
sets a wrong osd application tag. It should use
the fs name and not the fs pools.

Closes: https://github.com/rook/rook/issues/9227
Signed-off-by: Lennart Hagemann <lennart.hagemann@continum.net>
2021-12-13 15:03:02 +01:00
Blaine Gardner 0bbab6dfc9 nfs: make rados.namespace optional
Fix the CephNFS spec.rados API specifiation to be clear that spec.rados
is optional for all Ceph v16 versions, including that
spec.rados.namespace is optional.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-12-08 16:27:51 -07:00
Blaine Gardner aaecc93315 nfs: remove poolConfig
Remove the poolConfig in CephNFS to prevent different CephNFS CRs from
contending to change the replication spec of the default NFS pool.

Resolves #9355

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-12-08 13:56:28 -07:00
Sébastien Han 2bba4f18b8 Merge pull request #9343 from leseb/bump-to-16.2.7
core: bump to ceph 16.2.7
2021-12-08 18:03:41 +01:00
Blaine Gardner d20692aa6a Merge pull request #9281 from BlaineEXE/nfs-docs
docs: update NFS docs
2021-12-08 10:00:46 -07:00
Sébastien Han 0a918814ea core: bump to ceph 16.2.7
ceph 16.2.7 is out so let's use it in our manifests.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-12-08 17:24:56 +01:00
Blaine Gardner e98959cce0 docs: update NFS docs
NFS docs need to be updated to reflect changes between Octopus and
Pacific, how users are affected, how NFS is configured differently
between the Ceph versions, and how to upgrade from one Ceph version to
the other.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-12-08 09:14:53 -07:00
Travis Nielsen 3d69e10ac4 Merge pull request #8452 from subhamkrai/ec-file-layout
mds: create EC pool as secondary pool
2021-12-07 15:47:01 -07:00
Blaine Gardner bcc7d3e541 build: generate common.yaml from helm charts
Generate deploy/examples/common.yaml from Helm charts. There were still
a few differences between common.yaml and the Helm charts. Where there
were differences we assume common.yaml was the most up-to-date.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-12-07 13:54:27 -07:00
parth-gr 0a86d26b2e core: create rook resources with k8s recommended labels
Adding Recommended Labels on the resources created by rook
    and using Recommended Labels in the helm chart,
    for better visuals and management of k8s object

Closes: https://github.com/rook/rook/issues/8400
Signed-off-by: parth-gr <paarora@redhat.com>
2021-12-07 18:16:44 +05:30
subhamkrai 5bb29f1a21 mds: create EC pool as secondary pool
When creating EC fs, create replicated pool as primary
pool and ec pool as secondary pool, creating ec pool
as primary is not encouraged and it will lead to failure.

Also, changing the pool name in storageclass-ec file.

Closes: https://github.com/rook/rook/issues/8210
Signed-off-by: subhamkrai <srai@redhat.com>
2021-12-07 07:44:54 +05:30
Blaine Gardner aba199fc4c docs: sort common.yaml example
In anticipation of generating common.yaml from the Helm charts, sort
common.yaml using the same script used to sort the output from Helm
charts.

This was done using the flow here:
```
cat build/rbac/common.yaml.header > new-common.yaml
cat deploy/examples/common.yaml | build/rbac/keep-rbac-yaml.sh >> new-common.yaml
mv new-common.yaml deploy/examples/common.yaml
```

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-12-02 14:24:14 -07:00
Blaine Gardner 67e6220e85 Merge pull request #9200 from BlaineEXE/generate-csv-without-comments
build: generate CSV from helm charts
2021-12-02 10:42:50 -07:00
Humble Chirammal e5f5d9be9f csi: mount host's /etc/selinux in node plugins
This commit introduces a new configuration option for
ceph csi driver to enable hostpath mounting of /etc/selinux
directory from the cluster node where csi plugin pods are
running, which inturn help the csi driver to specify
selinux-related mount options like context.

Ref# https://github.com/ceph/ceph-csi/issues/2295

The default value for this configuration is true and if cluster
nodes are running without selinux enabled, an admin can deploy
csi pods by specifying this option to `false` which skip the
host path mounting for the csi pods.

Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
2021-12-01 11:13:26 +05:30
Blaine Gardner 2c4b66957c build: generate CSV from helm charts
In order to generate common.yaml from Helm charts, we have to have a
different way of generating CSV than from meta-comments in common.yaml.
This implementation changes what appears in the CSV's RBAC somewhat, but
these changes could be considered bugs fixed by using the new Helm
generation method.
- a few PSP related resources are removed from CSV
- resources related to 'rook-ceph-purge-osd' Job are added to CSV
- ClusterRoleBinding 'rook-ceph-object-bucket' is added to CSV

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-11-30 08:35:54 -07:00
Sébastien Han c890710b63 core: change directory layout
As per discussion, proposing a new layout for the charts/yaml/olm files.

./deploy
├── charts
│   ├── rook-ceph
│   │   └── templates
│   └── rook-ceph-cluster
│       └── templates
├── examples
│   ├── csi
│   │   ├── cephfs
│   │   └── rbd
│   ├── flex
│   ├── monitoring
│   ├── pre-k8s-1.16
└── olm
    └── assemble

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-11-30 09:12:53 +01:00