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

Reply via email to