Commit Graph
55 Commits
Author SHA1 Message Date
Santosh bfbd2c5d38 doc: rgw user account design
Design doc for implementing the Ceph RGW User accounts.

Signed-off-by: Santosh <sapillai@redhat.com>
2026-02-04 10:13:40 +05:30
Blaine Gardner d3b9b74165 doc: design ceph config passthru for object store
Add a design for CephObjectStore to allow users to pass through Ceph
configs (e.g., `rgw_enable_apis`, `debug_rgw`) to the object store. This
design will help users set configs that they want for their environments
that aren't covered under Rook's umbrella of managed configs. This will
benefit users by allowing them to make use of rare RGW features that
Rook devs don't have ability to prioritize, as well as newly-released
RGW features that Rook devs haven't had time to plan API interfaces for.
This frees up Rook developers to focus effort on implementing APIs that
have integration benefits with Kubernetes or other resources and less
effort on simple configs.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
2024-12-12 11:44:23 -07:00
Travis Nielsen b665d7a7b7 core: remove support for ceph quincy
Given that Ceph Quincy (v17) is past end of life,
remove Quincy from the supported Ceph versions,
examples, and documentation.

Supported versions now include only Reef and Squid.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-10-03 11:12:55 -06:00
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
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
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
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 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
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
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
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
Jiffin Tony Thottan c98628eb0f rgw: delete zone/pools for multisite configuation
Allow option to delete the zone/pools created by ceph object zone CR.

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2022-09-12 21:44:55 +05:30
Jiffin Tony Thottan 8003e764f9 rgw: add custom endpoint list option for zone
User can define his desired endpoint list in Zone CR so that it will
overwrite the default service name for rgw.

Resolves #6432

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com>
2022-08-17 10:03:12 +05:30
Josh Soref 6e7b8767f3 core: fix spelling
* another
* are
* availability
* available
* bootstrap
* boundaries
* ceph
* certificate
* class
* codifies
* consuming
* corrupted
* createor
* csi
* deployments
* exceeded
* execute
* filesystem
* healthiness
* heuristics
* immediately
* insecure
* installed
* isolated
* maintained
* maximum
* minute
* monitor
* new
* nginx
* nonexistent
* not
* occurs
* omitempty
* operator
* orchestration
* persistentvolumes
* placement
* preexisting
* prometheus
* protecting
* provisioner
* purposes
* reconcile
* regex
* related
* requests
* returns
* rubbish
* running
* schedulable
* schedule
* serviceaccount
* simulating
* snapshots
* statement
* static
* tenants
* the
* unavailable
* volumeattachment
* waiting
* with
* wrapper
* zonegroup

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-07-07 18:10:47 -04:00
Jiffin Tony Thottan 2f63f8c337 docs: design doc for supporting aws sse:s3 in RGW
The design doc for adding support in RGW for handling s3 requests with
sse:s3.

Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com>
2022-06-30 11:34:04 +05:30
subhamkrai 49a35a9311 docs: update doc path according to new doc change
we need to update the referred doc path
according to our latest doc change.

Signed-off-by: subhamkrai <srai@redhat.com>
2022-06-01 20:17:44 +05:30
Sebastian Riese 38d37011c2 rgw: swift design document: add the endpoint to the swift user secret
This makes the secret a self-contained description how to access the
Swift API.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2022-01-13 11:10:11 +01:00
Sebastian Riese 880ee65866 rgw: swift design document: make the annotations markers numerical
This is for consistency with the other design documents.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2022-01-10 13:08:37 +01:00
Sebastian Riese c01788bec0 rgw: swift design document: change subuser secret name
The colon character is not allowed in secret names, therfore the secret
with the subuser credentials must use another character to join the
user and the subuser name.

This in turn makes the mapping non-injective (which has security
implications).

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2022-01-10 13:06:07 +01:00
Sebastian Riese 130af9c837 rgw: swift design document: specify subuser list changes
Make explicity how the operator acts when the subuser list in the
CephObjectStoreUser CR is changed.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2022-01-10 13:04:26 +01:00
Sebastian Riese f4aabdd802 rgw: swift design document: remove keystone:apiVersion
Since only OpenStack Identity API version 3 is supported the
API version need not be configurable in the resource.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2022-01-10 13:03:00 +01:00
Sebastian Riese 1e2cf1665f rgw: swift design document: add s3 credentials generation via keystone
This was missing to complete the integration with keystone.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2022-01-07 15:10:18 +01:00
Sebastian Riese 96fb61dd26 rgw: swift design document: set the target version
As proposed in the review the natural target version for this feature is
1.9 which is to be released around March 2022.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2022-01-06 15:43:42 +01:00
Sebastian Riese ad693d555a rgw: swift design document: improve spelling and wording
Miscellaneous wording and fix spelling fixes.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2022-01-06 15:41:05 +01:00
Sebastian Riese b14222c813 rgw: swift design document: remove the Open Questions
The open questions have been resolved in the discussion and the chosen
solution has been added to the main text. So the Open Questions section
is obsolete now.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2022-01-06 15:38:45 +01:00
Sebastian Riese f9b2e39eca rgw: swift design document: sharpen the goals/non-goals
The goals/non-goals were mixed up to a degree. This
cleanly separates them to their respective sections.

In the course of that the term "Keystone API" was replaced by the more
correct "OpenStack Identity API" and the documentation of the API was
linked.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2022-01-06 15:35:38 +01:00
Sebastian Riese ed01435f0e rgw: swift design document: remove unnecessary metadata
As noted in the review this metadata is not required in design
documents.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2022-01-06 15:33:29 +01:00
Sebastian Riese 283d31e0db rgw: swift design document: configure swift in a new section
Instead of mixing configuration for different protocols in the gateway
section, depending on the type option, introduce a new section protocols for
API specific configuration.

This allows configuring s3 and swift in one RGW and at the same time
simplifies validation of the CRD and allows for a clean separation of
concerns.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2022-01-03 13:46:38 +01:00
Sebastian Riese 90a37ddd22 rgw: swift design document: clarify specification
* add annotations to the examples of new CR fields

* add links to external documentation

* clarify language issues raised in review

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2022-01-03 13:46:33 +01:00
Sebastian Riese b9a32d0ba0 rgw: swift design document: clarify the section on the openrc secret
The prior formulation which openrc variables take effect was
ambiguous/contradictory.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2021-12-17 16:34:40 +01:00
Sebastian Riese bd7fe77c2f rgw: swift design document: subuser management
Access to the Swift API is granted via subusers. The configuration
of the subusers is added to the cephobjectstoreuser CR.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2021-12-17 16:32:03 +01:00
Sebastian Riese 127c40626a rgw: swift design document: document which CAs are used for accessing keystone
The integration of Keystone includes HTTPS API calls to Keystone. We
document why the CA bundle used to verify those connections,
can't be explicitly configured and how it can be indirectly configured.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2021-12-17 16:29:09 +01:00
Sebastian Riese dc08052c3b rgw: swift-design document: make OBC interaction out-of-scope
It is not clear at this moment whether anyone has a use case for this.
As a workaround you can explicitly generate a user and subuser that
can access the bucket created via OBC.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2021-12-17 16:28:58 +01:00
Sebastian Riese 47c71ce7dd rgw: draft a design document for the Keystone and Swift integration
Ceph RGW supports integrating with OpenStack clouds by providing
the Swift object store API and using Keystone for authentication.
The design document describes how the required configuration shall
be mapped to the Object Store CRD.

Signed-off-by: Sebastian Riese <sebastian.riese@cloudandheat.com>
2021-12-16 10:55:35 +01: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
Yuval Lifshitz 71ed45b69b rgw: implement bucket notifications for object storage
following the design from here:
https://github.com/rook/rook/blob/master/design/ceph/object/ceph-bucket-notification-crd.md

Closes: https://github.com/rook/rook/issues/5313
Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
2021-11-04 11:20:40 +02:00
Sébastien Han 86c9a8f3de rgw: read tls secret hint for insecure tls
If the admin wants to use insecure TLS to validate connections to rgw
internally, the TLS secret can have another entry "insecureSkipVerify"
and set it to "true".

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-10-28 11:27:00 +02:00
Denis Egorenko fb04908315 ceph: add ability to specify ca bundle for rgw
Specify ca Bundle for RGW spec and mount inside pods.

Related-Issue: https://github.com/rook/rook/issues/8490
Signed-off-by: Denis Egorenko <degorenko@mirantis.com>
2021-08-10 23:18:26 +04:00
Satoru Takeuchi c2adbdd8a8 ceph: remove an missing field in crd
`CephObjectStore->gateway->type` is not used. Rook has only supported s3-like
interface and hasn't had no code which handles `type` field.

In addition, this field was removed from CRD in the following commit.

ceph: auto-gen crds
31db03fece

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2021-05-17 07:51:13 +00:00
subhamkrai 51910d0fed docs: updating according to the markdown convention
this commit update all the docs according to the
markdown convention for the command.

[skip ci]

Signed-off-by: subhamkrai <srai@redhat.com>
2021-03-05 10:45:04 +05:30
Guillaume Moutier b28ce38ca9 ceph: bucket notifications CRD documentation
This documents the Ceph topics and buckets notification management by rook through CRs.

Signed-off-by: Guillaume Moutier <guillaume.moutier@gmail.com>
Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2021-01-22 10:08:38 +05:30
Sébastien Han 3da9f2212f bot: fix codespell issue
Make the bot happy.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-11-24 11:41:09 +01:00
Mateusz Gozdek 8ba3762fa4 docs: fix bunch of typos
Found by running the following command:

codespell -S .git,*.png,*.jpg -L \
aks,keyserver,atleast,dne,ser,ist,files\',ba,dum,iam,te -f -H

Signed-off-by: Mateusz Gozdek <mgozdekof@gmail.com>
2020-11-06 10:01:04 +01:00
Jiffin Tony Thottan b91d1aedee docs: design doc for bucket policy feature
Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2020-07-23 18:09:26 +05:30