Commit Graph
287 Commits
Author SHA1 Message Date
Blaine Gardner 5f98d2ea3e Merge pull request #13807 from jklippel/feature/swift-and-keystone
rgw: implement support for authentication using keystone for s3 and swift
2024-08-08 09:55:34 -06:00
ee8bcad49d rgw: add support for keystone auth + swift/s3
For the specification see:
<https://github.com/rook/rook/blob/master/design/ceph/object/swift-and-keystone-integration.md>

* extend the API object specs for swift and keystone integration

* adapt rgw to the new go-ceph version

  - The parameter lists of the API call have changes, as parameters
    ignored by the RGW Admin Ops API are no longer serialized, therefore
    the mock has to be adapted.

  - There is now validation for the user keys that are passed to the
    User get API, therefore things failed when we had empty keys in our
    User proxy object.

* expand the reconcile loop for the swift and keystone integration

* fix minor mistakes in design document

* add env var to pass extra args to minikube

  Minikube decides CPU cores and memory automatically based on the
  available resources on the machine which may be insufficient to
  run rook. This commit adds an environment variable to add arbitrary
  arguments to the minikube command, so both can be specified if
  desired.

* integration tests for swift and keystone

  The new integration of swift or s3 and keystone support by rook
  does not have any integration tests yet.

  This commit introduces integration tests for swift and keystone. The
  tests are done against a minimal keystone setup (keystone container
  image from Yaook-project (https://yaook.cloud), sqlite as database
  backend, cert-manager and trust-manager for test certificate setup).

  To prevent hardcoded credentials, passwords are generated
  by the tests. The integration tests use the openstack client
  (keystone- and swift-functionality) (https://docs.openstack.org/
  python-openstackclient/ latest/). This was a concious design decision
  to use client tooling as close as possible to the end user instead of
  using other go-libraries (such as gophercloud).

* add documentation on swift and keystone

  Currently there is no documentation on the use of Swift to access
  an object store as well as the use of OpenStack keystone for
  authentication.

  This commit adds documentation on the use of Swift and OpenStack
  keystone, as well as CRD-related documentation and an example setup.

* add integration tests for S3 via keystone

  This commit introduces integration tests for s3 and keystone. The
  tests are run against the same minimal keystone setup that the tests
  for swift and keystone use.

  The integration tests use the aws s3 client to use client tooling as
  close as possible to the end user instead of using other go-libraries.

Co-authored-by: Jan Klippel <jan.klippel@uhurutec.com>
Co-authored-by: Silvio Ankermann <silvio.ankermann@cloudandheat.com>
Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
Signed-off-by: Jan Klippel <jan.klippel@uhurutec.com>
Signed-off-by: Silvio Ankermann <silvio.ankermann@cloudandheat.com>
2024-08-08 14:26:21 +02:00
Travis Nielsen 400f4edd01 Merge pull request #14455 from cobaltcore-dev/target-placement
target placement design doc
2024-08-06 11:17:11 -06:00
Blaine Gardner b4a2285aa6 object: use advertise endpoint for admin ops
RGW can only serve a single certificate. This limitation means that the
prior behavior of using the default service for admin ops when TLS is
enabled may mean it requires additional complex certificate management
to make sure the object store uses a certificate valid for Rook internal
admin ops and user connections.

This is needlessly complex for users. Instead, change Rook's behavior
and documentation to clarify that it will use the same endpoint intended
for S3 client applications. This means that users have a more
straightforward path to enabling both Rook and consuming applications.

More info: https://github.com/rook/rook/issues/14530

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
2024-08-05 14:32:59 -06:00
Artem Torubarov e16b683257 docs: target placement storage class
Signed-off-by: Artem Torubarov <artem.torubarov@clyso.com>
2024-08-01 13:12:22 +02:00
Artem Torubarov edcedd3124 docs: pool placement design doc
Signed-off-by: Artem Torubarov <artem.torubarov@clyso.com>
2024-07-30 11:24:57 +02:00
Travis Nielsen e26920a483 manifest: update the ceph recommended version to v18.2.4
Since Reef v18.2.4 is released, set it to the default
ceph version that is deployed with Rook.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-07-24 11:06:09 -06:00
Blaine Gardner b287aa9254 Merge pull request #14460 from BlaineEXE/design-vhost-updates
doc: update vhost-style S3 bucket design
2024-07-17 11:17:39 -06:00
subhamkrai 73ea725c99 docs: design for csi operator integration with rook
this commits adds desgin doc for integrating the new csi operator
with rook.

Signed-off-by: subhamkrai <srai@redhat.com>
2024-07-17 12:41:54 +05:30
Blaine Gardner 00f20b1212 doc: update vhost-style S3 bucket design
Update the vhost-style S3 bucket access design doc to reflect recent
user feedback and configuration issues. The primary goal is to add a
field to disambiguate for users and Rook which endpoint should be used
for CephObjectStoreUsers, OBCs, and COSI buckets.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
2024-07-16 16:50:50 -06:00
Liang Zheng e76dd03f54 ci: add misspell linter
add misspell linter to check all source codes

Signed-off-by: Liang Zheng <zhengliang0901@gmail.com>
2024-04-08 18:51:04 +08:00
Travis Nielsen a67d742195 Merge pull request #13913 from travisn/reef-18.2.2
core: Set default ceph version to v18.2.2
2024-03-12 10:07:45 -06:00
Travis Nielsen fdacfd51c5 object: create an object store based on shared pools
Until now, an object store would create all the necessary
metadata pools and the data pool that were exclusively
for its own object store. When isolation between object
stores is necessary, this would cause many pools and
PGs to be created in the cluster, which was not
manageable.

Now one set of pools can be created to be shared
by any number of object stores. The metadata and data
between each object store is isolated by
RADOS namespaces, which by design will keep the
data safe for multi-tenancy.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-03-11 11:20:57 -06:00
Travis Nielsen 026d745f8a core: set default ceph version to v18.2.2
With the release of Reef v18.2.2 we update the default
recommended version of Ceph to fix the prometheus issues
seen with v18.2.1

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-03-11 11:06:59 -06:00
travisn 27265ff279 helm: remove cpu limits from all pods
When CPU requests and limits are assigned to a pod,
the pod will be guaranteed the requests, up to the limits.
Even if there are spare CPU cycles, the pod cannot use
them. Thus, pods can be unnecessarily denied compute
when they need to burst if the limits are set.

Therefore, it is not recommended to set CPU limits
since the CPU requests are already guaranteeing that
no pod will be starved at least for its requests.

Signed-off-by: travisn <tnielsen@redhat.com>
2024-02-07 17:36:59 -07:00
Travis Nielsen 7b94ce6160 Merge pull request #13499 from travisn/ceph-18.2.1-docs
helm: Update cluster chart and all examples to ceph v18.2.1
2024-01-04 09:09:38 -07:00
Travis Nielsen 88d67d0b80 Merge pull request #13022 from thotz/design-doc-s3-domanin-style-bucket
doc: design specification for virtual host style for RGW buckets
2024-01-04 07:53:02 -07:00
Jiffin Tony Thottan edc0debb7a doc: design specification for DNS subdomain style for RGW buckets
Support DNS subdomain style for RGW buckets.

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2024-01-04 10:17:17 +05:30
travisn 56a3370d83 docs: update all examples to ceph v18.2.1
Since v18.2.1 is the default recommendation for the ceph version,
update all the docs and examples to that version.

Signed-off-by: travisn <tnielsen@redhat.com>
2024-01-03 14:37:11 -07:00
Blaine Gardner 18f514e8ea Merge pull request #12140 from thotz/design-doc-object-store-isolated-pools
docs: Design doc for isolated namespaces for different rgw
2023-12-08 11:01:29 -07:00
Jiffin Tony Thottan efb759c105 docs: design doc for isolated namespaces for different rgw
Using same set of pools creating isolated ceph object store for users.

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2023-12-07 22:01:23 +05:30
Alexander Trost 3097455d78 Merge pull request #13246 from koor-tech/ceph_config_via_cluster_crd_impl
operator: allow setting ceph config options via ceph cluster crd
2023-12-02 11:27:20 +01:00
Alexander Trost 4ed35d6bd6 operator: allow setting ceph config options via ceph cluster crd
This implements the "Ceph Config via Ceph Cluster CRD" design document
as a `cephConfig:` structure on the CRD.
This also fixes the `yq` commands used to manipulate the
`cluster-test.yaml` that caused CI issues for this PR and potentially
unknowingly others.

Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2023-12-02 00:05:48 +01:00
subhamkrai 28cc1ebc55 core: remove webhook & controller-runtime from apis
This commits removes controller-runtime dependencies
from the apis dir and to achieve that we are removing
webhook.

Signed-off-by: subhamkrai <srai@redhat.com>
2023-12-01 14:15:40 +05:30
Alexander Trost d7311c8e87 docs: add design doc for setting ceph config via cluster crd
Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2023-11-16 16:47:00 +01:00
subhamkrai 47c0038136 docs: krew is wrong word use kubectl instead
krew is itself a plugin and it is wrong wording
to use krew plugin intead it should be kubectl
pluging.

Signed-off-by: subhamkrai <srai@redhat.com>
2023-09-27 20:26:14 +05:30
Anthony D'Atri ebb8d4f043 doc: cleanup of the OSD migration design document
Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
2023-08-30 00:37:58 -04:00
sp98 3f79fe8548 docs: osd migration design
A design doc to migrate osd incase of change in the OSD backend

Signed-off-by: sp98 <sapillai@redhat.com>
2023-08-09 07:35:38 +05:30
Travis Nielsen 773b7e7ebe Merge pull request #12253 from subhamkrai/nodeLoss-desgin-doc
docs: design doc for node loss
2023-06-15 08:33:29 -06:00
subhamkrai 682d639532 docs: design doc for node loss
adding desgin doc for faster rbd rwo recovery
in case of node loss.

Signed-off-by: subhamkrai <srai@redhat.com>
2023-06-15 12:32:39 +05:30
Jiffin Tony Thottan 48259686be docs: add design doc for Ceph COSI driver
The first draft for the design doc for ceph cosi driver with Rook

Resolves #7843

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2023-06-14 17:51:03 +05:30
travisn 92a0ab37e3 monitoring: configurable option to disable prometheus metrics
The prometheus mgr module and ceph exporter can now be optionally
disabled by the monitoring.metricsDisabled setting in the
CephCluster CR. These will not be disabled by default, rather
than the mgr module being disabled by default from v1.11.4.

Signed-off-by: travisn <tnielsen@redhat.com>
2023-05-05 16:04:51 -06:00
Blaine Gardner 5a1d1f2175 Merge pull request #12069 from BlaineEXE/multus-golang-tester
test: add multus validation test routine to rook binary
2023-05-02 19:37:29 +02:00
Blaine Gardner 0f6e7ee921 test: add multus validation test routine to rook binary
Add a more involved multus validation test to the Rook binary. Because
this is intended to be end-user runnable, make sure operator-only
commands are hidden.

Build this into the rook binary instead of creating a separate binary
for ease, and because any binary built with the kube api becomes 40+
megabytes. We save quite a bit of space by including this in the Rook
binary, which is good for keeping container layers as small as possible.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2023-05-02 10:23:00 -06:00
travisn 609ac91cb1 core: update default image to ceph v17.2.6
With the release of ceph v17.2.6, the examples and the base
image for the operator are updated to pick up the latest
and greatest.

Signed-off-by: travisn <tnielsen@redhat.com>
2023-04-11 14:07:11 -06:00
Blaine Gardner f1b51ff246 Merge pull request #11320 from thotz/ldap-design-doc
docs: design doc for LDAP intergration with RGW
2023-03-22 14:52:01 -06:00
Jiffin Tony Thottan 6515cee132 docs: design doc for LDAP intergration with RGW
The PR #11091 add support for LDAP integration with RGW, this contains
breif overview of design specific details.

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2023-03-21 17:42:52 +05:30
Rakshith R 7c16aa9cf7 docs: add key rotation design docs
This commits adds design document for
Key Encryption Key(KEK) Rotation for OSDs.

Signed-off-by: Rakshith R <rar@redhat.com>
2023-03-01 21:58:44 +05:30
Travis Nielsen 2291d00a1c Merge pull request #11318 from sp98/submariner-globalnet-design
docs: design document for multi-cluster service support
2023-01-24 09:05:53 -07:00
Santosh Pillai f0a02c2a3f docs: design document for globalnet support
Signed-off-by: Santosh Pillai <sapillai@redhat.com>
Signed-off-by: sp98 <sapillai@redhat.com>
2023-01-24 18:04:08 +05:30
Shelming.Song c6853c92c8 docs: modify the incorrect CRD name in the doc
Signed-off-by: Shelming.Song <Shelming.Song@gmail.com>
2023-01-13 17:40:42 +08:00
Travis Nielsen 174be85f28 Merge pull request #11407 from ideepika/wip-mon-storage-class-support
docs: add a design doc proposal for mon zonal availability support
2023-01-05 07:58:02 -07:00
Deepika Upadhyay 22715aafed docs: add a design doc proposal for mon zonal availability support
see more: https://github.com/rook/rook/issues/10470

Signed-off-by: Deepika Upadhyay <deepika@koor.tech>
2023-01-04 15:13:54 +05:30
Travis Nielsen 25ac236b5c core: remove support for machine disruption budgets
The machine disruption budgets for handling openshift
machines and machinesets are now removed since they
have been unused and unmaintained since implemented.
This feature is expected to be handled with the more
common Pod Disruption Budgets. A workaround is for the
cluster admin to set up their machine sets so they
match the zone topology. See the original design
doc from the feature here:
https://github.com/rook/rook/blob/master/design/ceph/ceph-openshift-fencing-mitigation.md

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2022-12-16 11:15:12 -07:00
Avan Thakkar fbee491fe1 docs: add ceph-exporter design doc
Add a design doc for introducing ceph-exporter daemon in Rook.

Signed-off-by: Avan Thakkar <athakkar@redhat.com>
2022-12-05 12:50:04 +05:30
Anthony D'Atri 10b398cc02 docs: add additional RBD image features to docs and YAML files
Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
2022-10-27 10:57:50 -06:00
subhamkrai 270b565f18 core: upgrade ceph to latest release v17.2.5
Signed-off-by: subhamkrai <srai@redhat.com>
2022-10-26 19:59:53 +05:30
Yashasvi Chaurasia 05e7ddc4cb docs: updated note syntax in markdown files
The Note label is updated in several places in the docs for improved rendering.
Multiple markdown files have been updated.

Closes: #10458

Signed-off-by: Yashasvi Chaurasia <yashasvi12977@gmail.com>
2022-10-20 20:04:01 +05:30
Niels de Vos 79adad7dc0 nfs: allow users to include additional files in the SSSD sidecar
The sssd.conf may refer to additional files, like a CA bundle or TLS
certificates. These files need to be made available in the SSSD sidecar.
With the new `sssdGenericFiles` reference to a VolumeSource and a
`MountPath`, a provided `sssd.conf` can use the additional files.

Signed-off-by: Niels de Vos <ndevos@redhat.com>
Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2022-09-26 16:50:50 -06:00
Blaine Gardner 697f34fcee Merge pull request #10950 from BlaineEXE/nfs-kerberos-implementation
nfs: add kerberos client security support
2022-09-13 10:05:14 -06:00