Commit graph

1017 commits

Author SHA1 Message Date
d1d1940252
Health info message now advertises API v1
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-11-22 09:28:50 +01:00
92fd899fb6 Allow 0 as a part number marker
All checks were successful
continuous-integration/drone/pr Build is passing
2023-11-21 17:39:51 -06:00
f83fa02193 Add allow_world_readable_secrets option to config file
All checks were successful
continuous-integration/drone/pr Build is passing
Sometimes, the secret files permissions checks gets in the way. It's
by no mean complete, it doesn't take the Posix ACLs into account among
other things. Correctly checking the ACLs would be too involving (see
#658 (comment))
and would likely still fail in some weird chmod settings.

We're adding a new configuration file key allowing the user to disable
this permission check altogether.

The (already existing) env variable counterpart always take precedence
to this config file option. That's useful in cases where the
configuration file is static and cannot be easily altered.

Fixes #658

Co-authored-by: Florian Klink <flokli@flokli.de>
2023-10-26 18:25:13 +02:00
a0fa50dfcd Merge pull request 's3 api: refactoring and bug fix in ListObjects' (#655) from fix-list-objects into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #655
2023-10-26 09:22:47 +00:00
c82d91c6bc DeleteObject: always insert a deletion marker with a bigger timestamp than everything before
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
continuous-integration/drone Build is passing
2023-10-20 13:56:35 +02:00
8686cfd0b1 s3 api: also ensure increasing timestamps for create_multipart_upload
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-10-20 13:37:37 +02:00
c6cde1f143 remove now-unused key parameter in check_quotas 2023-10-20 13:20:47 +02:00
ac04934dae s3 api: add missing CORS headers to PostObject responses (fix #609)
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
2023-10-20 10:37:48 +02:00
58b0ee1b1a list objects: prettyness and add asserts
Some checks failed
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
continuous-integration/drone Build is failing
2023-10-19 15:26:17 +02:00
158dc17a06 listobjects: fix panic if continuation token is an empty string 2023-10-19 15:08:47 +02:00
0215b11402 Merge pull request 'Add support for specifying rpc_secret_file, metrics_token_file and admin_token_file using environment variables' (#643) from networkException/garage:token-file-env into main-0.8.x
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #643
2023-10-19 09:33:12 +00:00
8599051c49
garage: support specifying token / secret as environment variables
All checks were successful
continuous-integration/drone/pr Build is passing
this patch adds support for specifying the `rpc_secret_file`,
`metrics_token_file` and `admin_token_file` as environment variables.
2023-10-19 03:39:02 +02:00
4a19ee94bb
garage: fix admin-token description 2023-10-19 03:31:50 +02:00
c99cb58d71
util: move reading secret file into seperate helper
this patch moves the logic to read a secret file (and check for correct
permissions) from `secret_from_file` into a new `read_secret_file`
helper.
2023-10-19 03:29:48 +02:00
d146cdd5b6 cargo fmt
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
continuous-integration/drone Build is passing
2023-10-18 16:38:26 +02:00
3d6ed63824 check_quotas: avoid re-fetching object from object table
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2023-10-18 16:36:48 +02:00
45b0453d0f Ensure increasing version timestamps in PutObject 2023-10-18 16:31:50 +02:00
c7f5dcd953 fix compilation on macos
All checks were successful
continuous-integration/drone/pr Build is passing
fsblkcnt_t is ony 32b there, so we have to do an additional cast
2023-10-15 17:57:27 +02:00
952c9570c4 bump version to v0.9.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
2023-10-10 14:08:11 +02:00
3d7892477d convert_db: fix build 2023-10-10 14:06:25 +02:00
d4932c31ea Merge branch 'main' into next
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-10-10 13:57:21 +02:00
2d5d7a7031 Move convert_db command into main garage binary
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-10-10 12:13:15 +02:00
0c431b0c03 admin api: increased compatibility for v0/ endpoints
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
continuous-integration/drone/tag Build is passing
continuous-integration/drone Build is passing
2023-10-05 16:56:13 +02:00
1c13135f25 admin api: remove broken GET /v0/key router rule
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-10-05 16:27:29 +02:00
920dec393a cli: more precise doc comment
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-10-04 10:44:42 +02:00
2e656b541b Merge branch 'main' into next
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
continuous-integration/drone Build is passing
2023-10-03 18:40:37 +02:00
7907a09acc
api: allow custom unix bind mode and use 0o220 for admin server 2023-10-03 17:31:40 +02:00
8ec6a53b35
everywhere: support unix sockets when binding in various places
All checks were successful
continuous-integration/drone/pr Build is passing
this patch implements binding to paths as a unix socket for generic
server and web server.
2023-09-29 18:57:44 +02:00
7353038a64
config: allow using paths for unix domain sockets in various places
this patch updates the config format to also allow paths in bind
addresses for unix domain sockets.

this has been added to all apis except rpc.
2023-09-29 18:38:30 +02:00
10195f1567
util: add helper sum type for unix and tcp socket addresses
this patch introduces a new sum type that can represent either a
tcp socket address or a unix domain socket path.
2023-09-29 18:37:36 +02:00
6086a3fa07
cargo: add hyperlocal as a dependency 2023-09-29 18:37:12 +02:00
897cbf2c27 actually update rmp-serde to 1.1.2 for both garage and netapp dependency (fix #629)
Some checks reported errors
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
continuous-integration/drone/tag Build is passing
continuous-integration/drone Build was killed
2023-09-27 13:13:00 +02:00
ad82035b98 Merge branch 'main' into next 2023-09-27 13:11:52 +02:00
aa7eadc799 Merge pull request 'New layout: fixes and UX improvements' (#634) from new-layout-ux into next
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
continuous-integration/drone/tag Build is passing
continuous-integration/drone Build is passing
Reviewed-on: #634
2023-09-27 09:04:32 +00:00
0635250b2b garage_table/queue_insert: delay worker notification to after transaction commit (fix #583)
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-09-21 15:37:28 +02:00
f97168f805 garage_db: refactor transactions and add on_commit mechanism 2023-09-21 15:35:31 +02:00
3ecc17f8c5 new layout: use deterministic randomness for reproducible results
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-09-21 11:21:35 +02:00
0088599f52 new layout: fix clippy lints
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2023-09-18 12:17:07 +02:00
749b4865d0 new layout: improve display and fix comments
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-09-18 12:07:45 +02:00
015ccb39aa new layout: make zone_redundancy optionnal (if not set, is maximum)
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2023-09-18 11:59:08 +02:00
2e229d4430 new layout: improve output display
Some checks reported errors
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build was killed
2023-09-12 17:24:51 +02:00
91e764a2bf fix hang on shutdown
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-09-12 14:35:48 +02:00
aa79810596 Fix error when none of S3/K2V/WEB/ADMIN server is started (fix #613) 2023-09-12 14:35:19 +02:00
fd7d8fec59 Merge branch 'main' into next
Some checks reported errors
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
continuous-integration/drone Build was killed
2023-09-11 23:09:20 +02:00
9cfe55ab60 fix 32-bit build
Some checks reported errors
continuous-integration/drone/pr Build was killed
continuous-integration/drone/push Build was killed
continuous-integration/drone Build is passing
2023-09-11 20:01:29 +02:00
51abbb02d8 Merge branch 'main' into next
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-09-11 20:00:02 +02:00
d5bb50d738 use statvfs instead of mount list to determine free data/meta space (fix #611)
Some checks reported errors
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
continuous-integration/drone Build was killed
2023-09-11 19:08:24 +02:00
f8b3883611 config: make block_size and sled_cache_capacity expressable as strings
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-09-11 18:34:59 +02:00
51b9731a08 make lmdb's map_size configurable (fix #628)
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-09-11 18:03:44 +02:00
ad6b1cc0be Merge branch 'main' into next
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-09-11 13:14:18 +02:00
ba7ac52c19 block repair: simpler/more robust iterator progress calculation
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-09-11 12:31:34 +02:00
9526328d38 scrub: clear saved checkpoint when canceling scrub
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-09-11 12:10:48 +02:00
7f9ba49c71 block manager: remove data_dir field
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-09-11 11:57:36 +02:00
de5d792181 block manager: fix indentation (why not detected by cargo fmt?)
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-09-11 11:52:57 +02:00
be91ef6294 block manager: fix bug where rebalance didn't delete old copies
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-09-07 16:04:03 +02:00
2657b5c1b9 block manager: fix bugs
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-09-07 15:30:56 +02:00
2f112ac682 correct free data space accounting for multiple data dirs on same fs
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-09-07 14:42:20 +02:00
6b008b5bd3 block manager: add rebalance operation to rebalance multi-hdd setups 2023-09-07 13:44:11 +02:00
99ed18350f block manager: refactor and fix monitoring/statistics
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-09-07 12:41:36 +02:00
f38a31b330 block manager: avoid incorrect data_dir configs and avoid losing files
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-09-06 17:49:30 +02:00
e30865984a block manager: scrub checkpointing
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-09-06 16:35:28 +02:00
55c514999e block manager: fixes in layout 2023-09-06 16:35:28 +02:00
a44f486931 block manager: refactoring & increase max worker count to 8 2023-09-06 16:35:28 +02:00
3a74844df0 block manager: fix dir_not_empty 2023-09-06 16:35:28 +02:00
93114a9747 block manager: refactoring 2023-09-06 16:35:28 +02:00
fd00a47ddc table queue: increase batch size 2023-09-06 16:35:28 +02:00
1b8c265c14 block manager: get rid of check_block_status 2023-09-06 16:35:28 +02:00
a09f86729c block manager: move blocks in write_block if necessary 2023-09-06 16:35:28 +02:00
887b3233f4 block manager: use data paths from layout 2023-09-06 16:35:28 +02:00
6c420c0880 block manager: multi-directory layout computation 2023-09-06 16:35:28 +02:00
71c0188055 block manager: skeleton for multi-hdd support 2023-09-06 16:35:28 +02:00
4b4f2000f4 lifecycle: fix SkipBucket bug
Some checks reported errors
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build was killed
2023-09-06 16:34:07 +02:00
51eac97260 update version to 0.8.4
Some checks failed
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is failing
2023-09-05 23:28:12 +02:00
e78566591b Revert netapp update, hold to version 0.5.2 that uses rmp-serde 0.15
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-05 23:23:23 +02:00
8e0c020bb9 lifecycle worker: correct small clippy lints
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-09-04 11:33:44 +02:00
1cdc321e28 lifecycle worker: don't get stuck on non-existent bucket
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-08-31 11:36:30 +02:00
f579d6d9b4 lifecycle worker: fix potential inifinite loop
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-08-31 11:29:54 +02:00
a00a52633f lifecycle worker: add log message when starting
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-08-31 11:25:14 +02:00
adbf5925de lifecycle worker: use queue_insert and process objects in batches
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-08-31 11:19:26 +02:00
1cfcc61de8 lifecycle worker: mitigate potential bugs + refactoring
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-08-31 00:28:37 +02:00
be03a4610f s3api: remove redundant serde rename attribute
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-08-31 00:00:26 +02:00
b2f679675e lifecycle worker: take into account disabled rules
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-08-30 23:52:09 +02:00
01c327a07a lifecycle worker: avoid building chrono's serde feature
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-08-30 23:46:15 +02:00
f0a395e2e5 s3 bucket apis: remove redundant call
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-08-30 23:39:28 +02:00
a1d57283c0 bucket_table: bucketparams::new doesn't need to be pub
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-08-30 20:07:14 +02:00
d2e94e36d6 lifecycle config: add missing line in merge() and remove tracing
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-08-30 20:05:53 +02:00
75ccc5a95c lifecycle config: store date as given, try to debug
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-08-30 20:02:07 +02:00
7200954318 lifecycle worker: add logging
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-08-30 14:54:52 +02:00
0f1849e1ac lifecycle worker: launch with the rest of Garage
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-08-30 14:51:08 +02:00
da8b224e24 lifecycle worker: skip entire bucket when no lifecycle config is set 2023-08-30 14:38:19 +02:00
2996dc875f lifecycle worker: implement main functionality
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-08-30 14:29:03 +02:00
a2e0e34db5 lifecycle: skeleton for lifecycle worker
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-08-30 12:41:11 +02:00
f7b409f114 use a NaiveDate in data model, it serializes to string (iso 8601 format)
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-08-30 11:24:01 +02:00
abf011c290 lifecycle: implement validation into garage's internal data structure
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-08-29 18:22:03 +02:00
8041d9a827 s3: add xml structures to serialize/deserialize lifecycle configs
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-08-29 17:44:17 +02:00
0b83e0558e bucket_table: data model for lifecycle configuration
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-08-29 17:00:41 +02:00
2e90e1c124 Merge branch 'main' into next
Some checks reported errors
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build was killed
continuous-integration/drone Build is passing
2023-08-29 11:32:42 +02:00
06369c8f4a add garage_db dependency in garage_rpc
Some checks reported errors
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
continuous-integration/drone Build was killed
2023-08-28 17:08:21 +02:00
cece1be1bb bump version to 0.8.3
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
2023-08-28 13:17:26 +02:00
769b6fe054 fix test_website_check_domain
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-08-28 12:40:28 +02:00