From d3010abfb379bd59f43e210e653da48bab04ae09 Mon Sep 17 00:00:00 2001 From: Joao Eduardo Luis Date: Wed, 6 Apr 2022 22:32:21 +0100 Subject: [PATCH] s3gw: expand README Signed-off-by: Joao Eduardo Luis --- README.md | 109 ++++++++++++++++++++++++++++++++- assets/images/s3gw-roadmap.jpg | Bin 0 -> 48324 bytes 2 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 assets/images/s3gw-roadmap.jpg diff --git a/README.md b/README.md index a97bb4e..9ecd144 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# S3GW CORE +# s3gw core S3-compatible Gateway based on Ceph RGW, using a non-RADOS backend for standalone usage. @@ -8,7 +8,112 @@ able to run on a kubernetes cluster, providing S3-compatible endpoints to applications. -## LICENSE +## Roadmap + +We are currently focusing on delivering a proof-of-concept, demonstrating the +feasibility of the project. We call this deliverable the Minimum Viable Product. + +The image below represents what we believe to be our current roadmap. We are on +the MVP phase right now. Once we achieve this deliverable, and depending on user +feedback being positive, amongst other factors that may yet be determined, we +shall proceed to the next phase of development. + +![S3GW Roadmap](/assets/images/s3gw-roadmap.jpg) + +We also keep track of our items in an Aquarist Labs organization dedicated +[project](https://github.com/orgs/aquarist-labs/projects/5/views/1). + +## How To + +### Introduction + +Given we are still setting up the project, figuring out requirements, and +specific details about direction, we are dedicating most of our efforts to +testing Ceph's RGW as a standalone daemon using a non-RADOS storage backend. + +The backend in question is called `dbstore`, backed by a SQLite database, and +is currently provided by RGW. + +In order to ensure we all test from the same point in time, we have a forked +version of the latest development version of Ceph, which can be found +[here](https://github.com/aquarist-labs/ceph.git). We are working using the +[`s3gw` branch](https://github.com/aquarist-labs/ceph/tree/s3gw) as our base of +reference. + +Keep in mind that this development branch will likely closely follow Ceph's +upstream main development branch, and is bound to change over time. We intend +to contribute whatever patches we come up with to the original project, thus +we need to keep up with its ever evolving state. + +### Requirements + +We are relying on built Ceph sources to test RGW. We don't have a particular +preference on how one achieves this. Some of us rely on containers to build +these sources, while others rely on whatever OS they have on their local +machines to do so. Eventually we intend to standardize how we obtain the +RGW binary, but that's not in our immediate plans. + +If one is new to Ceph development, the best way to find out how to build +these sources is to refer to the +[original documentation](https://docs.ceph.com/en/pacific/install/build-ceph/#id1). + + +### Running + +One should be able to get a standalone RGW running following these steps: + +``` +$ cd build/ +$ mkdir -p dev/rgw.foo +$ cd dev/rgw.foo/ +$ ../bin/radosgw -i foo -d --no-mon-config --debug-rgw 15 \ + --rgw-backend-store dbstore \ + --rgw-data $(pwd) \ + --run-dir $(pwd) +``` + +Once the daemon is running, and outputting its logs to the terminal, one can +start issuing commands to the daemon. We rely on `s3cmd`, which can be found +on [github](https://github.com/s3tools/s3cmd) or obtained through `pip`. + +`s3cmd` will require to be configured to talk to RGW. This can be achieved by +first running `s3cmd -c $(pwd)/s3cfg --configure`. By default the configuration +file would be put under the user's home directory, but for our testing purposes +it might be better to place it somewhere less intrusive. + +During the interactive configuration a few things will be asked, and we +recommend using these answers unless one's deployment is different, in which +case these will need to be properly adapted. + +``` + Access Key: 0555b35654ad1656d804 + Secret Key: h7GhxuBLTrlhVUyxSPUKUV8r/2EI4ngqJxD7iBdBYLhwluN30JaT3Q== + Default Region: US + S3 Endpoint: 127.0.0.1:7480 + DNS-style bucket+hostname:port template for accessing a bucket: 127.0.0.1:7480/%(bucket) + Encryption password: **** + Path to GPG program: /usr/bin/gpg + Use HTTPS protocol: False + HTTP Proxy server name: + HTTP Proxy server port: 0 +``` + +Please note that both the `Access Key` and the `Secret Key` need to be copied +verbatim. Unfortunately, at this time, the `dbstore` backend statically creates +an initial user using these values. + +Should the configuration be correct, one will then be able to issue commands +against the running RGW. E.g., `s3cmd mb s3://foo`, to create a new bucket. + + +### When things don't work + +If one finds a problem, as one is bound to at this point in time, we encourage +everyone to check out our [issues list](https://github.com/aquarist-labs/s3gw-core/issues) +and either file a new issue if the observed behavior has not been reported +yet, or to contribute with further details to an existing issue. + +## License Licensed under the Apache License, Version 2.0 (the "License"); you may not use licensed files except in compliance with the License. diff --git a/assets/images/s3gw-roadmap.jpg b/assets/images/s3gw-roadmap.jpg new file mode 100644 index 0000000000000000000000000000000000000000..712b2dae5834c85b6366485b2b25282dc70b364e GIT binary patch literal 48324 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

t?eD&Q??S9BXyDv0b)^cO!(Of9V{o+bVBx-eyzl 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 literal 0 HcmV?d00001