[ceph][OpenStackSDK][keystone] Warnings about (my) swift endpoint URL by keystoneauth1 discovery

Christian Rohmann christian.rohmann at inovex.de
Fri Aug 4 09:42:36 UTC 2023


Hey Artem,

thanks a bunch for giving into this so quickly ...

On 04/08/2023 09:59, Artem Goncharov wrote:
>
> Solution:
> - either you remove /swift from your path when deploying swift

That's not possible, unfortunately, if you also want to support S3.
See 
https://docs.ceph.com/en/latest/radosgw/config-ref/#confval-rgw_swift_url_prefix

One option might be to use dedicated instances of RGW just for Swift and 
others for S3. But this requires to also use different endpoints / 
hostnames.
But even if only Swift was used, with "/swift" being the default prefix 
on Ceph RGWs, I am highly confident that this prefixed path therefore 
exists for quite a few clouds using Ceph to provide the object storage 
via the Swift protocol.

> - or we need to change the mentioned calculation logic by explicitly 
> stripping last 2 elements of the path of the service catalog entry 
> (what seems logical on one side is not guaranteed to be a proper 
> solution either - I have seen wild examples)

Well statically stripping a certain number of elements does indeed not 
seem "proper.

If you look at 
https://docs.ceph.com/en/latest/radosgw/keystone/#ocata-and-later vs 
https://docs.ceph.com/en/latest/radosgw/keystone/#cross-project-tenant-access 
the existence of "AUTH_$(project_id)s" cannot always be expected.
But maybe a rule / regex can be found to strip optional version and AUTH 
element?

Kinda like ...

   '(.*?)(\/v[0-9](\/AUTH_.+)?)?$'

to get all the path elements until the (optional) "v"ersion and an 
(optional) "AUTH_" at the end.

Honestly I don't know how the swift endpoint URLs looks like when 
deploying OpenStack Swift instead of Ceph RGW.
But I suppose the endpoint has some potential variance in path there as 
well?


Regards


Christian





More information about the openstack-discuss mailing list