Commit graph

1082 commits

Author SHA1 Message Date
97bae7213a
config: additional tests for secret sourcing 2024-01-15 17:30:30 +01:00
7228695ee2
config: refactor secret sourcing 2024-01-15 17:18:46 +01:00
db48dd3d6c
bump crate versions to 0.10.0 2024-01-11 12:05:51 +01:00
8a6ec1d611 Merge pull request 'NLnet task 3' (#667) from nlnet-task3 into next-0.10
Reviewed-on: Deuxfleurs/garage#667
2024-01-11 10:58:08 +00:00
0041b013a4
layout: refactoring and fix in layout helper 2023-12-11 16:09:22 +01:00
adccce1145
layout: refactor/fix bad while loop 2023-12-11 15:45:14 +01:00
85b5a6bcd1
fix some clippy lints 2023-12-11 15:31:47 +01:00
e4f493b481
table: remove redundant tracing in insert_many 2023-12-11 14:57:42 +01:00
f8df90b79b
table: fix insert_many to not send duplicates 2023-12-08 14:54:11 +01:00
4dbf254512
layout: refactoring, merge two files 2023-12-08 14:15:52 +01:00
64a6e557a4
rpc helper: small refactorings 2023-12-08 12:18:12 +01:00
5dd200c015
layout: move block_read_nodes_of to rpc_helper to avoid double-locking
(in theory, this could have caused a deadlock)
2023-12-08 12:02:24 +01:00
063294dd56
layout version: refactor get_node_zone 2023-12-08 11:50:58 +01:00
7f2541101f
cli: improvements to the layout commands when multiple layouts are live 2023-12-08 11:24:23 +01:00
91b874c4ef
rpc: fix system::health 2023-12-08 10:36:37 +01:00
431b28e0cf
fix build with discovery features 2023-12-07 15:15:59 +01:00
9cecea64d4
layout: allow sync update tracker to progress with only quorums 2023-12-07 14:51:20 +01:00
aa59059a91
layout cli: safer skip-dead-nodes command 2023-12-07 11:56:14 +01:00
d90de365b3
table sync: use write quorums to report global success or failure of sync 2023-12-07 11:16:10 +01:00
95eb13eb08
rpc: refactor result tracking for quorum sets 2023-12-07 10:57:21 +01:00
c8356a91d9
layout updates: fix the set of nodes among which minima are calculated 2023-12-07 10:30:26 +01:00
a8b0e01f88 Merge pull request 'OpenAPI specification of admin APIv1' (#672) from api-v1 into main
Reviewed-on: Deuxfleurs/garage#672
2023-11-29 15:42:46 +00:00
c04dd8788a
admin: more info in admin GetClusterStatus 2023-11-28 14:25:04 +01:00
539af6eac4
rpc helper: write comments + small refactoring of tracing 2023-11-28 11:12:39 +01:00
c539077d30
cli: remove historic layout info from status 2023-11-27 16:22:27 +01:00
11e6fef93c
cli: add layout history and layout assume-sync commands 2023-11-27 16:22:25 +01:00
539a920313
cli: show when nodes are draining metadata 2023-11-27 13:18:59 +01:00
78362140f5
rpc: update system::health to take into account write sets for all partitions 2023-11-27 12:10:21 +01:00
d6d239fc79
block manager: read_block using old layout versions if necessary 2023-11-27 11:52:57 +01:00
d1d1940252
Health info message now advertises API v1 2023-11-22 09:28:50 +01:00
92fd899fb6 Allow 0 as a part number marker 2023-11-21 17:39:51 -06:00
3ecd14b9f6
table: implement write sets for insert_many 2023-11-16 16:41:45 +01:00
22f38808e7
rpc_helper: don't use tokio::spawn for individual requests 2023-11-16 16:34:01 +01:00
707442f5de
layout: refactor digests and add "!=" assertions before epidemic bcast 2023-11-16 13:51:40 +01:00
ad5c6f779f
layout: split helper in separate file; more precise difference tracking 2023-11-16 13:26:43 +01:00
d4df03424f
layout: fix test 2023-11-15 15:56:57 +01:00
33c8a489b0
layou: implement ack locking 2023-11-15 15:40:44 +01:00
393c4d4515
layout: add helper for cached/external values to centralize recomputation 2023-11-15 14:20:50 +01:00
65066c7064
layout: wip cache global mins 2023-11-15 13:28:30 +01:00
acd49de9f9
rpc: fix write set quorums 2023-11-15 13:07:42 +01:00
46007bf01d
integration test: print stdout and stderr on subcommand crash 2023-11-15 12:56:52 +01:00
b3e729f4b8
layout history merge: rm invalid versions when valid versions are added 2023-11-15 12:15:58 +01:00
7ef2c23120
layout: fix test 2023-11-14 15:45:01 +01:00
90e1619b1e
table: take into account multiple write sets in inserts 2023-11-14 15:40:46 +01:00
3b361d2959
layout: prepare for write sets 2023-11-14 14:28:16 +01:00
866196750f
system: add todo wrt new layout 2023-11-14 13:36:58 +01:00
83a11374ca
layout: fixes in schema 2023-11-14 13:29:26 +01:00
1aab1f4e68
layout: refactoring of all_nodes 2023-11-14 13:12:32 +01:00
8e292e06b3
layout: some refactoring of nongateway nodes 2023-11-14 12:48:38 +01:00
9a491fa137
layout: fix test 2023-11-11 13:10:59 +01:00
df24bb806d
layout/sync: fix bugs and add tracing 2023-11-11 12:44:27 +01:00
ce89d1ddab
table sync: adapt to new layout history 2023-11-11 12:08:32 +01:00
df36cf3099
layout: add helpers to LayoutHistory and prepare integration with Table 2023-11-09 16:32:31 +01:00
9d95f6f704
layout: fix tracker bugs 2023-11-09 15:52:45 +01:00
bad7cc812e
layout admin: add missing calls to update_hash 2023-11-09 15:42:10 +01:00
03ebf18830
layout: begin managing the update tracker values 2023-11-09 15:31:59 +01:00
94caf9c0c1
layout: separate code path for synchronizing update trackers only 2023-11-09 14:53:34 +01:00
bfb1845fdc
layout: refactor to use a RwLock on LayoutHistory 2023-11-09 14:12:05 +01:00
19ef1ec8e7
layout: more refactoring 2023-11-09 13:34:14 +01:00
8a2b1dd422
wip: split out layout management from System into separate LayoutManager 2023-11-09 12:55:36 +01:00
523d2ecb95
layout: use separate CRDT for staged layout changes 2023-11-09 11:19:43 +01:00
1da0a5676e
bump garage protocol version tag to 0x000A (0.10) 2023-11-08 19:30:58 +01:00
8dccee3ccf
cluster layout: adapt all uses of ClusterLayout to LayoutHistory 2023-11-08 19:28:36 +01:00
fe9af1dcaa
WIP: garage_rpc: store layout version history 2023-11-08 17:49:06 +01:00
4a9c94514f
avoid using layout_watch in System directly 2023-11-08 16:41:00 +01:00
12d1dbfc6b
remove Ring and use ClusterLayout everywhere 2023-11-08 15:41:24 +01:00
0962313ebd
garage_rpc: reorder functions in layout.rs 2023-11-08 13:13:04 +01:00
f83fa02193 Add allow_world_readable_secrets option to config file
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
Deuxfleurs/garage#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 Deuxfleurs/garage#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
Reviewed-on: Deuxfleurs/garage#655
2023-10-26 09:22:47 +00:00
c82d91c6bc DeleteObject: always insert a deletion marker with a bigger timestamp than everything before 2023-10-20 13:56:35 +02:00
8686cfd0b1 s3 api: also ensure increasing timestamps for create_multipart_upload 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) 2023-10-20 10:37:48 +02:00
58b0ee1b1a list objects: prettyness and add asserts 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
Reviewed-on: Deuxfleurs/garage#643
2023-10-19 09:33:12 +00:00
8599051c49
garage: support specifying token / secret as environment variables
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 2023-10-18 16:38:26 +02:00
3d6ed63824 check_quotas: avoid re-fetching object from object table 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
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 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 2023-10-10 13:57:21 +02:00
2d5d7a7031 Move convert_db command into main garage binary 2023-10-10 12:13:15 +02:00
0c431b0c03 admin api: increased compatibility for v0/ endpoints 2023-10-05 16:56:13 +02:00
1c13135f25 admin api: remove broken GET /v0/key router rule 2023-10-05 16:27:29 +02:00
920dec393a cli: more precise doc comment 2023-10-04 10:44:42 +02:00
2e656b541b Merge branch 'main' into next 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
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) 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
Reviewed-on: Deuxfleurs/garage#634
2023-09-27 09:04:32 +00:00
0635250b2b garage_table/queue_insert: delay worker notification to after transaction commit (fix #583) 2023-09-21 15:37:28 +02:00