Commit Graph

395 Commits

Author SHA1 Message Date
Alex f5a7bc3736
Add 12 lattice diagrams to explain CRDTs and quorums
continuous-integration/drone/push Build is passing Details
2023-01-12 17:17:13 +01:00
Alex fe850f62c9
Talk 2023-01-18: some WIP talking about consensus
continuous-integration/drone/push Build is passing Details
2023-01-12 16:27:02 +01:00
Alex 7416ba97ef
Talk 2023-01-18 WIP
continuous-integration/drone/push Build is passing Details
2023-01-12 13:25:09 +01:00
Alex 12a4e1f303
Merge branch 'optimal-layout' into next
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is passing Details
2023-01-11 17:50:42 +01:00
Alex dac254a6e7
Merge branch 'main' into k2v-watch-range-2
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-01-11 17:09:37 +01:00
Alex 399f137fd0
add precision in pollrange doc
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-01-11 15:19:51 +01:00
Alex ba384e61c0
PollRange: return immediately if no seen marker is provided
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-01-11 12:03:17 +01:00
Alex 57eabe7879
Add proposal spec for PollRange API endpoint
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build was killed Details
2023-01-10 15:22:11 +01:00
Mendes 597d64b31a change in gitignore
continuous-integration/drone/push Build is passing Details
2023-01-09 16:06:47 +01:00
Mendes e3cc7a89b0 First draft of t a preprint describing the layout computation algorithm
continuous-integration/drone/push Build is passing Details
2023-01-09 16:05:20 +01:00
Felix Scheinost f2106c2733 Implement `rpc_secret_file`
continuous-integration/drone/pr Build is passing Details
2023-01-04 18:35:10 +01:00
Alex 80e4abb98d Merge pull request 'Changed all instances of 'key new' to 'key create' to make it the same as the bucket commands.' (#459) from jpds/garage:key-create-standardize into next
continuous-integration/drone/push Build is passing Details
Reviewed-on: #459
2023-01-04 10:35:49 +00:00
Alex 570e5e5bbb
Merge branch 'main' into next
continuous-integration/drone/push Build is passing Details
2023-01-04 11:34:43 +01:00
Jonathan Davies 8be862aa19 Changed all instances of 'key new' to 'key create' to make it consistent as bucket commands issued normally around the same time.
continuous-integration/drone/pr Build is passing Details
2023-01-03 11:11:12 +00:00
Alex 1649002e2b Merge pull request 'Add a note about Peertube 5.0 private videos' (#456) from kaiyou/garage:docs-apps into main
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build is passing Details
Reviewed-on: #456
2023-01-02 12:49:14 +00:00
kaiyou fd10200bec Add a note about Peertube 5.0 private videos
continuous-integration/drone/pr Build is passing Details
2022-12-25 14:20:01 +01:00
kaiyou 0c7ed0b0af Add some docs about using Python Minio SDK
continuous-integration/drone/pr Build is passing Details
2022-12-25 13:55:12 +01:00
kaiyou e852c91d18 Fix documentation based on new deployment values
continuous-integration/drone/pr Build was killed Details
2022-12-25 13:30:14 +01:00
Alex 2c2e65ad8b
Merge commit 'ec12d6c' into next
continuous-integration/drone/push Build is passing Details
2022-12-11 18:41:15 +01:00
Alex defd7d9e63 Merge pull request 'Implement /health admin API endpoint to check node health' (#440) from admin-health-api into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #440
2022-12-11 17:25:28 +00:00
Alex 5ea5fd2130
Always return 200 OK on /v0/health, reinstate admin api doc as draft and complete it
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-12-11 18:11:28 +01:00
felix.scheinost d5a2502b09 Fix typo in documentation
continuous-integration/drone/pr Build is passing Details
2022-12-07 12:43:49 +00:00
tompearson a3afc761b6 Update 'doc/book/design/goals.md'
continuous-integration/drone/pr Build is passing Details
2022-12-04 16:27:46 +00:00
vincent 4d7b4d9d20 Add talk to the Capitole du Libre 2022
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is passing Details
2022-11-27 11:36:01 +01:00
Alex 379b2049f5
Fix #432: documentation issue
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-11-24 15:33:33 +01:00
Alex 555a54ec40
doc precisions and fixes
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-11-16 13:40:49 +01:00
Alex fc8f795bba
Rename subsections and add docker compose file
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-11-16 13:33:33 +01:00
Alex a7af0c8af9
Add best practices and doc of monitoring (fix #419)
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-11-16 13:27:24 +01:00
Alex bcc9772470 Merge pull request 'OpenAPI spec for admin API' (#379) from ecosystem/openapi into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #379
2022-11-16 10:51:04 +00:00
Alex 05547f2ba6
Move testing strategy to a dedicated doc section (fix #114)
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-11-14 13:34:00 +01:00
Quentin cf23aee183
Add a "build" section, doc for SDK
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-11-13 16:48:52 +01:00
Quentin 74ea449f4b
Add missing parameter
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-11-12 23:04:37 +01:00
Quentin eabb37b53f
openapi validate fix
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-11-12 22:37:42 +01:00
Quentin e7824faa17
Finalize the specification of the admin API
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-11-12 18:08:41 +01:00
Baptiste Jonglez 8dfc909759 Improve Nginx reverse proxy example
continuous-integration/drone/pr Build is passing Details
By default, Nginx does proxy buffering and it may store big replies to a
temporary file up to 1 GB.  It also means that Nginx will read data as
fast as possible from Garage, even if the client downloads slowly.  Both
behaviours are often not wanted, so disable this temporary file in the example.

Ref: https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffering

Also add an example of upstream with a "backup" server, which may be
useful to only use remote servers as fallback.
2022-11-11 21:50:08 +01:00
Quentin 485109ea60
Bucket CRUD is defined
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-11-11 18:32:35 +01:00
Quentin ebe8a41f2d
Bucket skeleton
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-11-11 17:10:41 +01:00
Quentin a976c9190c
Use awscli in the getting started guide
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-11-11 12:48:52 +01:00
Quentin 72a0f90070
Make capacity nullable to allow gateway config
continuous-integration/drone/pr Build was killed Details
continuous-integration/drone/push Build was killed Details
2022-11-11 09:22:37 +01:00
Quentin d814deb806
Error is nullable on AddNode 2022-11-11 09:22:37 +01:00
Quentin 6a09f16da7
Set required fields in the spec 2022-11-11 09:22:36 +01:00
Quentin 23207d18a0
Fix case of garage version 2022-11-11 09:22:36 +01:00
Quentin 3024405a65
Add operationId to entrypoints 2022-11-11 09:22:36 +01:00
Quentin 5f0928f89c
Declare Authorization scheme in OpenAPI 2022-11-11 09:22:36 +01:00
Quentin 0a01b34e81
Partial OpenAPI spec for admin API with a viewer 2022-11-11 09:22:36 +01:00
Alex 28d7a49f63
Merge branch 'main' into optimal-layout
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2022-11-07 12:20:59 +01:00
Baptiste Jonglez 26b3295aaa Add documentation to run Mastodon on Garage
continuous-integration/drone/pr Build was killed Details
2022-11-06 14:07:31 +01:00
Alex 8bc5caf7aa
Fix issue with 'http(s)://' prefix
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build is passing Details
2022-10-18 21:17:11 +02:00
Alex 002b9fc50c
Add TLS support for Consul discovery + refactoring
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-10-18 18:38:20 +02:00
Tobias Krischer f1c96d108c
update k2v docs for status 204 changes
continuous-integration/drone/pr Build is passing Details
2022-10-18 13:50:56 +02:00
borgified 8e442001b9 Update 'doc/book/reference-manual/features.md'
continuous-integration/drone/pr Build is passing Details
typo
2022-10-16 07:13:21 +00:00
Mendes 829f815a89 Merge remote-tracking branch 'origin/main' into optimal-layout
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2022-10-04 18:14:49 +02:00
chemicstry d2c937a931 Fix typo 2022-09-30 18:46:57 +02:00
chemicstry 744c3b4d94 Update docs 2022-09-30 18:46:57 +02:00
chemicstry 37a73d7d37 Move documentation to book 2022-09-30 18:46:57 +02:00
Alex 0ab0d3cc29
Document db_engine
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-27 16:52:36 +02:00
Alex 7291747a28 Merge pull request 'Documentation changes for v0.8' (#394) from doc-0.8 into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #394
2022-09-27 11:37:12 +02:00
Alex 194e8be1bb
Update docker image links
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-26 18:01:17 +02:00
Alex 69bcc813de
Add garage v0.8 migration guide
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-26 17:46:38 +02:00
Mendes 7f3249a237 New version of the algorithm that calculate the layout.
It takes as paramters the replication factor and the zone redundancy, computes the
largest partition size reachable with these constraints, and among the possible
assignation with this partition size, it computes the one that moves the least number
of partitions compared to the previous assignation.
This computation uses graph algorithms defined in graph_algo.rs
2022-09-21 14:39:59 +02:00
Alex a3758dc4c4
Update README
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-21 12:53:02 +02:00
Alex 1d0a610690
Finish writing about Garage features, and fix from-source instructions
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-15 13:23:57 +02:00
Alex f6aebefcc9
Some work on documentation towards v0.8
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-14 19:31:13 +02:00
Mendes c4adbeed51 Added the section with description proofs of the parametric assignment computation in the optimal layout report
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-10 13:51:12 +02:00
Mendes d38fb6c250 ignore log files in commit 2022-09-08 12:43:33 +02:00
Alex bbb970965c
Document available build features
continuous-integration/drone/push Build is pending Details
continuous-integration/drone/pr Build is pending Details
2022-09-06 17:16:45 +02:00
Mendes 81083dd415 Added a first draft version of the algorithm and analysis for the non-strict mode.
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-08-19 21:21:41 +02:00
Quentin 532eca7ff9
Add some documentation for Caddy
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone Build is passing Details
continuous-integration/drone/push Build is pending Details
2022-08-12 10:33:41 +02:00
Mendes 03e3a1bd15 Added the latex report on the optimal layout algorithm 2022-07-18 22:35:29 +02:00
Alex b74b533b7b Fix typo
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-06-29 11:50:51 +02:00
Alex 996f2a6d58 Slides for talk at IMT Atlantique / STACK on 2022-06-23 (#333)
continuous-integration/drone/push Build is passing Details
Co-authored-by: Alex Auvolat <alex@adnab.me>
Reviewed-on: #333
Co-authored-by: Alex <alex@adnab.me>
Co-committed-by: Alex <alex@adnab.me>
2022-06-23 14:28:40 +02:00
Alex 77e3fd6db2 improve internal item counter mechanisms and implement bucket quotas (#326)
continuous-integration/drone/push Build is passing Details
- [x] Refactoring of internal counting API
- [x] Repair procedure for counters (it's an offline procedure!!!)
- [x] New counter for objects in buckets
- [x] Add quotas to buckets struct
- [x] Add CLI to manage bucket quotas
- [x] Add admin API to manage bucket quotas
- [x] Apply quotas by adding checks on put operations
- [x] Proof-read

Co-authored-by: Alex Auvolat <alex@adnab.me>
Reviewed-on: #326
Co-authored-by: Alex <alex@adnab.me>
Co-committed-by: Alex <alex@adnab.me>
2022-06-15 20:20:28 +02:00
Simon C 7eed3ceda9 docs: Add Trafik reverse proxy documentation
continuous-integration/drone/push Build is passing Details
2022-06-07 16:16:52 +02:00
Simon C 4b8f48f3c5 docs: Fix title level
continuous-integration/drone/push Build is passing Details
2022-06-07 13:32:52 +02:00
Simon C 7d3b5585f1 docs: Add link to facilitate navigation in the documentation
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-06-07 09:38:59 +02:00
Quentin a1abed0378
Remove useless MC_REGION env variable
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build was killed Details
2022-06-02 12:50:11 +02:00
Alex 93eab8eaa3 Fixes to S3 compatibility page (#314)
continuous-integration/drone/push Build is passing Details
Mention PostObject is implemented, fix english mistakes

Co-authored-by: Alex Auvolat <alex@adnab.me>
Reviewed-on: #314
Co-authored-by: Alex <alex@adnab.me>
Co-committed-by: Alex <alex@adnab.me>
2022-05-25 16:54:44 +02:00
Quentin 43ddc933f9
Update Ceph S3 endpoints compatibility
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-05-25 15:20:08 +02:00
Alex 9f303f6308
Shorter page title
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-05-24 15:47:42 +02:00
Alex 3be43f3372
Add lost content for Restic with Garage
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
Suggested-by: Quentin <quentin@deuxfleurs.fr>
2022-05-24 15:32:42 +02:00
Alex 2da448b43f
Add documentation for new Admin API and a few infos on K2V
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-05-24 15:28:37 +02:00
Alex 382e74c798 First version of admin API (#298)
continuous-integration/drone/push Build is passing Details
**Spec:**

- [x] Start writing
- [x] Specify all layout endpoints
- [x] Specify all endpoints for operations on keys
- [x] Specify all endpoints for operations on key/bucket permissions
- [x] Specify all endpoints for operations on buckets
- [x] Specify all endpoints for operations on bucket aliases

View rendered spec at <https://git.deuxfleurs.fr/Deuxfleurs/garage/src/branch/admin-api/doc/drafts/admin-api.md>

**Code:**

- [x] Refactor code for admin api to use common api code that was created for K2V

**General endpoints:**

- [x] Metrics
- [x] GetClusterStatus
- [x] ConnectClusterNodes
- [x] GetClusterLayout
- [x] UpdateClusterLayout
- [x] ApplyClusterLayout
- [x] RevertClusterLayout

**Key-related endpoints:**

- [x] ListKeys
- [x] CreateKey
- [x] ImportKey
- [x] GetKeyInfo
- [x] UpdateKey
- [x] DeleteKey

**Bucket-related endpoints:**

- [x] ListBuckets
- [x] CreateBucket
- [x] GetBucketInfo
- [x] DeleteBucket
- [x] PutBucketWebsite
- [x] DeleteBucketWebsite

**Operations on key/bucket permissions:**

- [x] BucketAllowKey
- [x] BucketDenyKey

**Operations on bucket aliases:**

- [x] GlobalAliasBucket
- [x] GlobalUnaliasBucket
- [x] LocalAliasBucket
- [x] LocalUnaliasBucket

**And also:**

- [x] Separate error type for the admin API (this PR includes a quite big refactoring of error handling)
- [x] Add management of website access
- [ ] Check that nothing is missing wrt what can be done using the CLI
- [ ] Improve formatting of the spec
- [x] Make sure everyone is cool with the API design

Fix #231
Fix #295

Co-authored-by: Alex Auvolat <alex@adnab.me>
Reviewed-on: #298
Co-authored-by: Alex <alex@adnab.me>
Co-committed-by: Alex <alex@adnab.me>
2022-05-24 12:16:39 +02:00
Alex 176715c5b2
Fix ReadIndex spec and add JSON5 remark to doc
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-05-16 11:54:37 +02:00
Alex 5768bf3622 First implementation of K2V (#293)
continuous-integration/drone/push Build is passing Details
**Specification:**

View spec at [this URL](https://git.deuxfleurs.fr/Deuxfleurs/garage/src/branch/k2v/doc/drafts/k2v-spec.md)

- [x] Specify the structure of K2V triples
- [x] Specify the DVVS format used for causality detection
- [x] Specify the K2V index (just a counter of number of values per partition key)
- [x] Specify single-item endpoints: ReadItem, InsertItem, DeleteItem
- [x] Specify index endpoint: ReadIndex
- [x] Specify multi-item endpoints: InsertBatch, ReadBatch, DeleteBatch
- [x] Move to JSON objects instead of tuples
- [x] Specify endpoints for polling for updates on single values (PollItem)

**Implementation:**

- [x] Table for K2V items, causal contexts
- [x] Indexing mechanism and table for K2V index
- [x] Make API handlers a bit more generic
- [x] K2V API endpoint
- [x] K2V API router
- [x] ReadItem
- [x] InsertItem
- [x] DeleteItem
- [x] PollItem
- [x] ReadIndex
- [x] InsertBatch
- [x] ReadBatch
- [x] DeleteBatch

**Testing:**

- [x] Just a simple Python script that does some requests to check visually that things are going right (does not contain parsing of results or assertions on returned values)
- [x] Actual tests:
  - [x] Adapt testing framework
  - [x] Simple test with InsertItem + ReadItem
  - [x] Test with several Insert/Read/DeleteItem + ReadIndex
  - [x] Test all combinations of return formats for ReadItem
  - [x] Test with ReadBatch, InsertBatch, DeleteBatch
  - [x] Test with PollItem
  - [x] Test error codes
- [ ] Fix most broken stuff
  - [x] test PollItem broken randomly
  - [x] when invalid causality tokens are given, errors should be 4xx not 5xx

**Improvements:**

- [x] Descending range queries
  - [x] Specify
  - [x] Implement
  - [x] Add test
- [x] Batch updates to index counter
- [x] Put K2V behind `k2v` feature flag

Co-authored-by: Alex Auvolat <alex@adnab.me>
Reviewed-on: #293
Co-authored-by: Alex <alex@adnab.me>
Co-committed-by: Alex <alex@adnab.me>
2022-05-10 13:16:57 +02:00
Baptiste Jonglez 47e57518ec Add documentation on running Kopia with Garage
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-04-10 13:04:07 +02:00
Quentin 8e3ee82c3e Be clearer on what upgrades are (not) supported
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-04-06 21:45:59 +02:00
Quentin a122a8cb46 Add an "upgrading" section, add a guide for 0.7
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-04-05 10:08:31 +02:00
Quentin 9fd8ec1dee Add documentation for winscp+sftpgo
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-03-31 10:25:56 +02:00
Alex 0091002ef2
New replication modes and their documentation
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-03-28 16:26:04 +02:00
Alex dca2ffdf91
document administrative options
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-03-28 12:26:08 +02:00
Alex 822128e3c8 Talk a bit about capacity balancing between regions
continuous-integration/drone/push Build is passing Details
2022-03-22 12:07:13 +01:00
Rune Henriksen aea8b41728 document request routing logic
continuous-integration/drone/push Build is passing Details
2022-03-21 12:03:57 +01:00
Rune Henriksen 71e6645e09 add short tutorial for duplicati usage with garage
continuous-integration/drone/push Build is passing Details
2022-03-21 11:58:19 +01:00
Steam 15da2156f6 Change position of the node-id argument
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-03-19 18:03:23 +01:00
Max Audron 9d44127245
add support for kubernetes service discovery
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
This commit adds support to discover garage instances running in
kubernetes.

Once enabled by setting `kubernetes_namespace` and
`kubernetes_service_name` garage will create a Custom Resources
`garagenodes.deuxfleurs.fr` with nodes public key as the resource name.
and IP and Port information as spec in the namespace configured by
`kubernetes_namespace`.

For discovering nodes the resources are filtered with the optionally set
`kubernetes_service_name` which sets a label
`garage.deuxfleurs.fr/service` on the resources.

This allows to separate multiple garage deployments in a single
namespace.

the `kubernetes_skip_crd` variable allows to disable the creation of the
CRD by garage itself. The user must deploy this manually.
2022-03-12 13:05:52 +01:00
Alex e312ba977e
Add FOSDEM talk and move all .pdf files to Git LFS
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-02-16 20:01:36 +01:00
Alex 2465163e39
documentation: add mention to install build-essential
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-02-16 12:18:24 +01:00
Alex 4ae03aa774 Small documentation updates (#237)
continuous-integration/drone/push Build is passing Details
Fixes #234, among other things

Co-authored-by: Alex Auvolat <alex@adnab.me>
Reviewed-on: #237
Co-authored-by: Alex <alex@adnab.me>
Co-committed-by: Alex <alex@adnab.me>
2022-02-10 15:58:09 +01:00
Quentin 3e1373fafc Add a new S3 comparison Matrix to documentation (#220)
continuous-integration/drone/push Build is passing Details
Co-authored-by: Quentin Dufour <quentin@deuxfleurs.fr>
Reviewed-on: #220
Co-authored-by: Quentin <quentin@dufour.io>
Co-committed-by: Quentin <quentin@dufour.io>
2022-02-07 16:04:52 +01:00
Alex 7d68b7060e
Fix anchors in links
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-02-07 16:01:48 +01:00
Quentin 99ed67503c
Update quickstart to set endpoints ending in localhost 2022-02-07 16:01:48 +01:00
Quentin 5a1fb7cce7
Improve integration part of the doc 2022-02-07 16:01:45 +01:00
Alex 1c0ba930b8 Reorganize documentation for new website (#213)
continuous-integration/drone/push Build is passing Details
This PR should be merged after the new website is deployed.

- [x] Rename files
- [x] Add front matter section to all `.md` files in the book (necessary for Zola)
- [x] Change all internal links to use Zola's linking system that checks broken links
- [x] Some updates to documentation contents and organization

Co-authored-by: Alex Auvolat <alex@adnab.me>
Reviewed-on: #213
Co-authored-by: Alex <alex@adnab.me>
Co-committed-by: Alex <alex@adnab.me>
2022-02-07 11:51:12 +01:00
Alex 2760f1cb17
Add advice about --fast-list
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build encountered an error Details
2022-01-31 16:51:39 +01:00
Alex 26849ed066
Add step to 0.6.0 migration guide
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-01-27 14:31:25 +01:00
Alex ea7fb901eb
Implement {Put,Get,Delete}BucketCors and CORS in general
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
- OPTIONS request against API endpoint
- Returning corresponding CORS headers on API calls
- Returning corresponding CORS headers on website GET's
2022-01-24 11:58:00 +01:00
Quentin 94f0e7c135 Test ListParts endpoint with awscli
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-01-21 10:42:35 +01:00
Alex 60c0033c8b
Update documentation
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build encountered an error Details
2022-01-13 14:25:22 +01:00
Alex 6617a72220
Implement UploadPartCopy 2022-01-13 13:58:47 +01:00
Quentin b4592a00fe Implement ListMultipartUploads (#171)
continuous-integration/drone/push Build is passing Details
Implement ListMultipartUploads, also refactor ListObjects and ListObjectsV2.

It took me some times as I wanted to propose the following things:
  - Using an iterator instead of the loop+goto pattern. I find it easier to read and it should enable some optimizations. For example, when consuming keys of a common prefix, we do many [redundant checks](https://git.deuxfleurs.fr/Deuxfleurs/garage/src/branch/main/src/api/s3_list.rs#L125-L156) while the only thing to do is to [check if the following key is still part of the common prefix](https://git.deuxfleurs.fr/Deuxfleurs/garage/src/branch/feature/s3-multipart-compat/src/api/s3_list.rs#L476).
  - Try to name things (see ExtractionResult and RangeBegin enums) and to separate concerns (see ListQuery and Accumulator)
  - An IO closure to make unit tests possibles.
  - Unit tests, to track regressions and document how to interact with the code
  - Integration tests with `s3api`. In the future, I would like to move them in Rust with the aws rust SDK.

Merging of the logic of ListMultipartUploads and ListObjects was not a goal but a consequence of the previous modifications.

Some points that we might want to discuss:
  - ListObjectsV1, when using pagination and delimiters, has a weird behavior (it lists multiple times the same prefix) with `aws s3api` due to the fact that it can not use our optimization to skip the whole prefix. It is independant from my refactor and can be tested with the commented `s3api` tests in `test-smoke.sh`. It probably has the same weird behavior on the official AWS S3 implementation.
  - Considering ListMultipartUploads, I had to "abuse" upload id marker to support prefix skipping. I send an `upload-id-marker` with the hardcoded value `include` to emulate your "including" token.
  - Some ways to test ListMultipartUploads with existing software (my tests are limited to s3api for now).

Co-authored-by: Quentin Dufour <quentin@deuxfleurs.fr>
Reviewed-on: #171
Co-authored-by: Quentin <quentin@dufour.io>
Co-committed-by: Quentin <quentin@dufour.io>
2022-01-12 19:04:55 +01:00
Alex 9cb2e9e57c
Add documentation to migrate to 0.6
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build is passing Details
2022-01-10 14:42:58 +01:00
Alex 8f39360f22
Update documentation
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-01-07 17:14:37 +01:00
trinity-1686a 945b75dbf1 update s3 compatibility list (#177)
continuous-integration/drone/push Build is passing Details
Co-authored-by: Trinity Pointard <trinity.pointard@gmail.com>
Reviewed-on: #177
Co-authored-by: trinity-1686a <trinity.pointard@gmail.com>
Co-committed-by: trinity-1686a <trinity.pointard@gmail.com>
2021-12-15 15:05:54 +01:00
trinity-1686a 1eb972b1ac Add compression using zstd (#173)
continuous-integration/drone/push Build is passing Details
fix #27

Co-authored-by: Trinity Pointard <trinity.pointard@gmail.com>
Reviewed-on: #173
Co-authored-by: trinity-1686a <trinity.pointard@gmail.com>
Co-committed-by: trinity-1686a <trinity.pointard@gmail.com>
2021-12-15 11:26:43 +01:00
Quentin 3b3a1f275f
Add a second plot
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2021-12-13 11:58:03 +01:00
Quentin dba9af2968
Update benchmark
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2021-12-09 18:42:45 +01:00
Quentin e9358054ac
Typos and dead links
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2021-12-08 14:40:14 +01:00
Quentin f9e5520ffb
Add a benchmark page with a first benchmark
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2021-12-08 11:30:07 +01:00
Alex 4b369347c0
S3 compatibility target
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/tag Build is passing Details
continuous-integration/drone Build encountered an error Details
2021-12-06 17:18:45 +01:00
Alex 224c89ad6e
Reorganize and improve documentation
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2021-12-06 16:33:01 +01:00
Quentin 7c2037ba87
WIP front page garage 2021-12-06 15:33:43 +01:00
Alex c94406f428
Improve how node roles are assigned in Garage
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/tag Build is passing Details
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build is passing Details
- change the terminology: the network configuration becomes the role
  table, the configuration of a nodes becomes a node's role
- the modification of the role table takes place in two steps: first,
  changes are staged in a CRDT data structure. Then, once the user is
  happy with the changes, they can commit them all at once (or revert
  them).
- update documentation
- fix tests
- implement smarter partition assignation algorithm

This patch breaks the format of the network configuration: when
migrating, the cluster will be in a state where no roles are assigned.
All roles must be re-assigned and commited at once. This migration
should not pose an issue.
2021-11-16 16:05:53 +01:00
Trinity Pointard 53888995bd update doc and comments
continuous-integration/drone/push Build is passing Details
2021-11-16 15:41:41 +01:00
Trinity Pointard 57df9c6e2d add s3_api.root_domain to doc book 2021-11-16 15:41:41 +01:00
adrien cdeb5b4dbb added link to RFID Garage talk (#155)
continuous-integration/drone/push Build is passing Details
Co-authored-by: ADRN <adrien@luxeylab.net>
Reviewed-on: #155
Co-authored-by: adrien <adrien@luxeylab.net>
Co-committed-by: adrien <adrien@luxeylab.net>
2021-11-16 15:39:08 +01:00
Quentin 100aad8bf4
Add rclone mount doc
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build is passing Details
2021-11-10 18:38:17 +01:00
Quentin 80a87929b0
Improve CLI documentation
continuous-integration/drone/push Build is passing Details
2021-11-10 18:18:34 +01:00
Quentin 76d21be1b9
Add skeleton for backups, fuse and code sections
continuous-integration/drone/push Build is passing Details
2021-11-10 18:05:07 +01:00
Quentin 1928f59d54
Add documentation for Gitea.
continuous-integration/drone/push Build is passing Details
2021-11-10 12:41:09 +01:00
Quentin 323514be15
Documentation for Nix binary cache 2021-11-10 10:02:22 +01:00
Quentin ad8d5139cf
hugo deploy does not build website, fix doc 2021-11-10 10:02:22 +01:00
Alex 08b1e8a7ea
Move design draft to separate file; write about GC in internals
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
continuous-integration/drone Build is passing Details
2021-11-09 12:25:33 +01:00
Quentin 8e25a37f0e
Add documentation for nginx
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2021-11-08 12:20:40 +01:00
Quentin e342db19aa
Add documentation about Gateways 2021-11-08 12:20:40 +01:00
Quentin f3405b6378
Doc about exposing your website 2021-11-08 12:20:40 +01:00
Quentin 860ccf2811
Harden Garage's systemd service 2021-11-08 12:20:40 +01:00
Quentin 9df7559446
Documentation for hugo, jekyll and publii 2021-11-08 12:20:40 +01:00
Quentin a97467075d
Add documentation for synapse-s3-storage-provider 2021-11-08 12:20:40 +01:00
Trinity Pointard da6efb4b23 fix missing bootstrap_peers in doc
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2021-11-05 11:21:50 +01:00
Quentin e93d7fb228
Add Peertube + improve CLI instructions
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2021-11-03 14:39:14 +01:00
Quentin eaf54efb25
Add doc for Nextcloud 2021-11-03 14:07:55 +01:00
Quentin 93f8d59e4c
Extract toolchain build from the CI
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2021-10-29 11:34:01 +02:00
ADRN 4e8af1d956 Modified the 'Funding' sentence to remove 'promise' since we actually got the first instalment
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2021-10-26 13:34:28 +02:00
Alex 3e7f766d95
CLI: default rpc_host
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
continuous-integration/drone Build is passing Details
2021-10-26 11:36:30 +02:00
Alex b2c51844a1
Add download link on homepage
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2021-10-25 15:55:30 +02:00
Alex de4276202a
Improve CLI, adapt tests, update documentation 2021-10-25 14:21:48 +02:00
Quentin dc017a0cab
Build Garage with Nix
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone Build is passing Details
continuous-integration/drone/push Build is passing Details
2021-10-19 16:56:07 +02:00
Alex 1aed317818
Small changes on NGI kickoff talk
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build is passing Details
2021-10-07 11:12:34 +02:00
Quentin c5574c8409 Add links and put logos in a flexbox
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2021-09-28 10:21:10 +02:00
mricher de0228ca2a
Doc: add funding disclaimer for NGI/EU grant
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
PNG logs optimized, render to be checked by @quentin. Fix #106.
2021-09-25 17:21:07 +02:00
Alex df345e37db
Add sticker and NGI kickoff talk
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2021-09-12 13:37:33 +02:00
Alex 42f692b1e0
Documentation fixes (typo and small reorganization)
continuous-integration/drone/push Build is running Details
continuous-integration/drone/pr Build was killed Details
2021-05-31 23:55:51 +02:00
Alex 14fd3df654
Write about S3 client configuration
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2021-05-31 17:41:21 +02:00
Alex 56ac9fd460
Updates to documentation
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2021-05-31 17:23:35 +02:00
Alex d76a8576f4
Reorganize documentation
continuous-integration/drone/push Build is passing Details
2021-05-31 17:13:36 +02:00
Trinity Pointard 289521886b make most changes suggested during install-party
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2021-05-29 21:37:49 +02:00
Alex ebd21b325e
Write documentation on configuration file and other improvements
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2021-05-28 18:00:59 +02:00
Alex 339c611789
Add links to git/matrix/drone on top of documentation
continuous-integration/drone/push Build is passing Details
2021-05-03 10:45:45 +02:00
Alex a981244f11
Replace talk links with permalinks
continuous-integration/drone/push Build is passing Details
2021-04-30 15:51:32 +02:00
LUXEY Adrien be3b1d8f91 created doc/talks subfolder and added my talk and the previous one done at the wide team
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2021-04-30 15:37:43 +02:00
Alex bf36f1f16a
Update documentation 2021-04-27 16:37:10 +02:00
Alex 9589d10165
fix command for adding node 2021-04-27 16:37:08 +02:00
Alex f9d77b6cd9
Section on recovering from failures 2021-04-27 16:37:08 +02:00
LUXEY Adrien ee00ac59b7
[doc] Added mention that GarageHQ is hosted with Garage 2021-04-27 16:37:08 +02:00
Alex c9943aab1f
fix typos 2021-04-27 16:37:07 +02:00
LUXEY Adrien d0692b75b0
intro.md: fix some typos, errors & dead links, plus some stylistic stuff
modifié :         doc/book/src/intro.md
2021-04-27 16:37:07 +02:00
Quentin 4a6ed223dc
Fix garage_util description 2021-04-27 16:37:07 +02:00
Quentin c409ee89f6
Fix some typos 2021-04-27 16:37:07 +02:00
Quentin c1d64333c5
Fix a table in the doc 2021-04-27 16:37:04 +02:00
Alex c5e24de159 Center logo in book, add book CI 2021-03-19 14:25:57 +01:00
Alex 4348bde180 Merge branch 'dev-0.2'
continuous-integration/drone/push Build is passing Details
2021-03-18 19:27:02 +01:00
Quentin ea21c54434 Add handle files section to the doc
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build was killed Details
2021-03-17 22:44:35 +01:00
Quentin 1a5af9d1fc WIP getting started
continuous-integration/drone/push Build is passing Details
2021-03-17 22:06:37 +01:00
Quentin b82a61fba2 Simplify our README
continuous-integration/drone/push Build is passing Details
2021-03-17 20:58:30 +01:00
Quentin 44d0815ff9 Wrote daemon
continuous-integration/drone/push Build is failing Details
2021-03-17 20:04:27 +01:00
Quentin 468e45ed7f WIP doc
continuous-integration/drone/push Build is passing Details
2021-03-17 18:01:06 +01:00
Quentin 60f994a118 Working on the getting started guide
continuous-integration/drone/push Build is passing Details
2021-03-17 17:24:11 +01:00
Quentin 002538f92c Refactor file organization
continuous-integration/drone/push Build is passing Details
2021-03-17 16:15:18 +01:00
Quentin c50113acf3 Work on structure + Getting started is reworked
continuous-integration/drone/push Build is passing Details
2021-03-17 15:44:29 +01:00
Quentin 0afc701a69 Doc skeleton + intro
continuous-integration/drone/push Build is passing Details
2021-03-17 14:44:14 +01:00
Alex 797cda1c33 Add logo in repo
continuous-integration/drone/push Build is passing Details
2021-03-17 10:26:50 +01:00
Alex 46c7226fe4 New logo!!
continuous-integration/drone/push Build is passing Details
2021-03-17 08:41:07 +01:00
Alex d7e148d302 Description of MultiDC MagLev
continuous-integration/drone/push Build is passing Details
2021-02-25 11:37:42 +01:00
Alex 0522983aec precisions
continuous-integration/drone/push Build was killed Details
2021-02-25 11:27:13 +01:00
Alex fdf908e845 Add precisions
continuous-integration/drone/push Build was killed Details
2021-02-25 11:23:22 +01:00
Alex 2b4b69938f Add write-up about load-balancing
continuous-integration/drone/push Build was killed Details
2021-02-25 11:18:44 +01:00
Alex 0ddfee92c5 add precision
continuous-integration/drone/push Build is passing Details
2021-02-19 19:11:55 +01:00
Alex 5d1fa591d9 Add compatibility list
continuous-integration/drone/push Build is passing Details
2021-02-19 19:10:23 +01:00
Alex f26c795c99 Add warning 2021-01-23 19:15:57 +01:00
Alex 6f6bf23bec Move doc files here from Deuxfleur's site repo 2021-01-23 19:12:10 +01:00
Alex f844d4ee9b Add slide on consistency 2020-12-01 17:42:13 +01:00
Alex 7642229d54 Two new slides 2020-12-01 14:31:13 +01:00
Alex ad432eb154 Add some first technical slides 2020-12-01 13:46:23 +01:00
Quentin 9a57a0319a Talk 2020-11-30 17:32:37 +01:00
Alex 9b3aabfcbf Add talk template 2020-11-30 15:54:31 +01:00