Our problem only appeared to be present in bucket creation.  Listing,
putting, etc objects in a bucket work just fine regardless of the
bucket_location setting.  I ran this test on a few different realms to see
what would happen and only 1 of them had a problem.  There isn't an obvious
thing that steps out about it.  The 2 local realms do not have multi-site,
the internal realm has multi-site and the operations were performed on the
primary zone for the zonegroup.

Worked with non 'US' bucket_location for s3cmd to create bucket:
realm=internal
zonegroup=internal-ga
zone=internal-atl

Failed with non 'US' bucket_location for s3cmd to create bucket:
realm=local-atl
zonegroup=local-atl
zone=local-atl

Worked with non 'US' bucket_location for s3cmd to create bucket:
realm=local
zonegroup=local
zone=local

I was thinking it might have to do with all of the parts being named the
same, but I made sure to do the last test to confirm.  Interestingly it's
only bucket creation that has a problem and it's fine as long as I put 'US'
as the bucket_location.

On Mon, Feb 19, 2018 at 6:48 PM F21 <f21.gro...@gmail.com> wrote:

> I am using the official ceph/daemon docker image. It starts RGW and
> creates a zonegroup and zone with their names set to an empty string:
>
> https://github.com/ceph/ceph-container/blob/master/ceph-releases/luminous/ubuntu/16.04/daemon/start_rgw.sh#L36:54
>
> $RGW_ZONEGROUP and $RGW_ZONE are both empty strings by default:
>
> https://github.com/ceph/ceph-container/blob/master/ceph-releases/luminous/ubuntu/16.04/daemon/variables_entrypoint.sh#L46
>
> Here's what I get when I query RGW:
>
> $ radosgw-admin zonegroup list
> {
>      "default_info": "",
>      "zonegroups": [
>          "default"
>      ]
> }
>
> $ radosgw-admin zone list
> {
>      "default_info": "",
>      "zones": [
>          "default"
>      ]
> }
>
> On 20/02/2018 10:33 AM, Yehuda Sadeh-Weinraub wrote:
> > What is the name of your zonegroup?
> >
> > On Mon, Feb 19, 2018 at 3:29 PM, F21 <f21.gro...@gmail.com> wrote:
> >> I've done some debugging and the LocationConstraint is not being set by
> the
> >> SDK by default.
> >>
> >> I do, however, need to set the region on the client to us-east-1 for it
> to
> >> work. Anything else will return an InvalidLocationConstraint error.
> >>
> >> Francis
> >>
> >>
> >> On 20/02/2018 8:40 AM, Yehuda Sadeh-Weinraub wrote:
> >>> Sounds like the go sdk adds a location constraint to requests that
> >>> don't go to us-east-1. RGW itself is definitely isn't tied to
> >>> us-east-1, and does not know anything about it (unless you happen to
> >>> have a zonegroup named us-east-1). Maybe there's a way to configure
> >>> the sdk to avoid doing that?
> >>>
> >>> Yehuda
> >>>
> >>> On Sun, Feb 18, 2018 at 1:54 PM, F21 <f21.gro...@gmail.com> wrote:
> >>>> I am using the AWS Go SDK v2 (https://github.com/aws/aws-sdk-go-v2)
> to
> >>>> talk
> >>>> to my RGW instance using the s3 interface. I am running ceph in docker
> >>>> using
> >>>> the ceph/daemon docker images in demo mode. The RGW is started with a
> >>>> zonegroup and zone with their names set to an empty string by the
> scripts
> >>>> in
> >>>> the image.
> >>>>
> >>>> I have ForcePathStyle for the client set to true, because I want to
> >>>> access
> >>>> all my buckets using the path: myrgw.instance:8080/somebucket.
> >>>>
> >>>> I noticed that if I set the region for the client to anything other
> than
> >>>> us-east-1, I get this error when creating a bucket:
> >>>> InvalidLocationConstraint: The specified location-constraint is not
> >>>> valid.
> >>>>
> >>>> If I set the region in the client to something made up, such as "ceph"
> >>>> and
> >>>> the LocationConstraint to "ceph", I still get the same error.
> >>>>
> >>>> The only way to get my buckets to create successfully is to set the
> >>>> client's
> >>>> region to us-east-1. I have grepped the ceph code base and cannot find
> >>>> any
> >>>> references to us-east-1. In addition, I looked at the AWS docs for
> >>>> calculating v4 signatures and us-east-1 is the default region but I
> can
> >>>> see
> >>>> that the region string is used in the calculation (i.e. the region is
> not
> >>>> ignored when calculating the signature if it is set to us-east-1).
> >>>>
> >>>> Why do my buckets create successfully if I set the region in my s3
> client
> >>>> to
> >>>> us-east-1, but not otherwise? If I do not want to use us-east-1 as my
> >>>> default region, for example, if I want us-west-1 as my default region,
> >>>> what
> >>>> should I be configuring in ceph?
> >>>>
> >>>> Thanks,
> >>>>
> >>>> Francis
> >>>>
> >>>> _______________________________________________
> >>>> ceph-users mailing list
> >>>> ceph-users@lists.ceph.com
> >>>> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
> >>
> >>
>
> _______________________________________________
> ceph-users mailing list
> ceph-users@lists.ceph.com
> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
>
_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to