Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: Explain about region in storage class for OBC #9556

Closed
wants to merge 1 commit into from

Conversation

thotz
Copy link
Contributor

@thotz thotz commented Jan 11, 2022

Description of your changes:
The default value for region in RGW is us-east-1, if users want to use
other regions then they need to create zone/zonegroup accordingly before
defining it in storage class.

Signed-off-by: Jiffin Tony Thottan thottanjiffin@gmail.com

Which issue is resolved by this Pull Request:
Resolves #9486

Checklist:

  • Commit Message Formatting: Commit titles and messages follow guidelines in the developer guide.
  • Skip Tests for Docs: Add the flag for skipping the build if this is only a documentation change. See here for the flag.
  • Skip Unrelated Tests: Add a flag to run tests for a specific storage provider. See test options.
  • Reviewed the developer guide on Submitting a Pull Request
  • Documentation has been updated, if necessary.
  • Unit tests have been added, if necessary.
  • Integration tests have been added, if necessary.
  • Pending release notes updated with breaking and/or notable changes, if necessary.
  • Upgrade from previous release is tested and upgrade user guide is updated, if necessary.
  • Code generation (make codegen) has been run to update object specifications, if necessary.

```
1. `label`(optional) here associates this `StorageClass` to a specific provisioner.
1. `provisioner` responsible for handling `OBCs` referencing this `StorageClass`.
1. **all** `parameter` required.
1. `region` needs to create required zone/zonegroup in RGW before defining it here. Please refer [ceph documentation](https://docs.ceph.com/en/latest/radosgw/multisite/#multi-site) for more details.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where in the doc? The current description is not really clear to me.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is mention in the doc zonegroup is initially known as region(no reference to aws here). I have checked with team and in the ceph doc we need to make it explicit as well. For the time being, I will point to zonegroup link

```
1. `label`(optional) here associates this `StorageClass` to a specific provisioner.
1. `provisioner` responsible for handling `OBCs` referencing this `StorageClass`.
1. **all** `parameter` required.
1. `region` needs to create required zone/zonegroup in RGW before defining it here. Please refer [ceph documentation](https://docs.ceph.com/en/latest/radosgw/multisite/#multi-site) for more details.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm really glad that we are providing better user documentation here. I am still struggling to understand how this is intended to be used, and I think users will likely be much more confused than I.

A good description should give a quick overview of what region is and explain how to fill in the field in relation to other Rook resources? How is "region" related to zone/zonegroup? The statement "needs to create required zone/zonegroup in RGW before defining it here" doesn't use Rook terminology for what needs to be created and so might be confusing for users. Also, what if users aren't using CephObjectZone or CephObjectZoneGroup?

Based on what I "think" the usage pattern intended to be, I would suggest something like below, but I may be misunderstanding some details.

Suggested change
1. `region` needs to create required zone/zonegroup in RGW before defining it here. Please refer [ceph documentation](https://docs.ceph.com/en/latest/radosgw/multisite/#multi-site) for more details.
1. `region` defines the region in which the bucket should be created. For Rook, this is CephObjectZoneGroup (if applicable) of the related CephObjectStore; or the name of the CephObjectStore if no CephObjectZoneGroup is defined. Please refer to [Ceph's documentation](https://docs.ceph.com/en/latest/radosgw/multisite/#multi-site) for more details.

The default value for region in RGW is us-east-1, if users want to use
other regions then they need to create zone/zonegroup accordingly before
defining it in storage class.

Fixes: rook#9486
Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
```
1. `label`(optional) here associates this `StorageClass` to a specific provisioner.
1. `provisioner` responsible for handling `OBCs` referencing this `StorageClass`.
1. **all** `parameter` required.
1. `region` defines the region in which the bucket should be created. For Rook, this is CephObjectZoneGroup (if applicable) of the related CephObjectStore; So if you need to define region other than `us-east-1` create `CephObjectZoneGroup` accordingly. Please refer to [Ceph's documentation](https://docs.ceph.com/en/latest/radosgw/multisite/#zone-groups) for more details.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the name of the CephObjectZoneGroup CR the name of the region? If so, how do we get us-east-1 by default since the default zone group name is the same as the object store? Maybe an example yaml would help show how to create a region named us-west-1 to match the region in the storage class.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@travisn us-east-1 is the default hard corded value inside rgw code base, most likely default zone group set by rook may also work(aka the name of object store). But people tend to use the region as us-east-1 for was clients. Hence I mentioned about us-east-1 other than the zone group value set by the rook. Or in other words, if the us-east-1 it may pick up the default zone group value or else they try to find out the corresponding zonegroup

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm still not clear... So if they want to have the region: us-west-1 as in this example, how would the object store, zone group, etc need to be created? Perhaps we could modify the object-multisite.yaml example to use the us-west-1 region to match this example?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@travisn : What about having proper documentation in ceph docs then only this PR need to be merged, instead of modifying the object-mutlisite.yaml. If object-mutlisite.yaml is modified then that may create unnecessary confusion for users who only intended to use mutlisite.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good to include a yaml snippet here in the docs that shows how to create the object store with a non-default region.

@github-actions
Copy link

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed in two weeks if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale Labeled by the stale bot label Feb 18, 2022
@thotz
Copy link
Contributor Author

thotz commented Feb 22, 2022

closing this PR in favour of #9754

@thotz thotz closed this Feb 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs skip-ci stale Labeled by the stale bot
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Object Bucket Claim stuck on pending
4 participants