Commit Graph

1169 Commits

Author SHA1 Message Date
Alex 125c662860
[import-netapp] move and rename FullMeshPeeringSrategy to PeeringManager
ci/woodpecker/pr/debug Pipeline was successful Details
ci/woodpecker/push/debug Pipeline was successful Details
ci/woodpecker/deployment/debug Pipeline was successful Details
ci/woodpecker/deployment/release/2 Pipeline was successful Details
ci/woodpecker/deployment/release/1 Pipeline was successful Details
ci/woodpecker/deployment/release/3 Pipeline was successful Details
ci/woodpecker/deployment/release/4 Pipeline was successful Details
ci/woodpecker/deployment/publish Pipeline was successful Details
2024-02-15 12:15:35 +01:00
Alex 5766befb24
[import-netapp] fix tests 2024-02-15 12:15:33 +01:00
Alex 5ea24254a9
[import-netapp] import Netapp code into Garage codebase 2024-02-15 12:15:07 +01:00
Alex 1b0f167d2f
[fix-cargo-toml] fix cargo warnings in Cargo.toml files
ci/woodpecker/push/debug Pipeline was successful Details
ci/woodpecker/pr/debug Pipeline was successful Details
ci/woodpecker/deployment/release/2 Pipeline was successful Details
ci/woodpecker/deployment/debug Pipeline was successful Details
ci/woodpecker/deployment/release/3 Pipeline was successful Details
ci/woodpecker/deployment/release/4 Pipeline was successful Details
ci/woodpecker/deployment/release/1 Pipeline was successful Details
ci/woodpecker/deployment/publish Pipeline was successful Details
2024-02-15 10:54:58 +01:00
Alex cf2af186fc
Merge branch 'main' into next-0.10
ci/woodpecker/push/debug Pipeline was successful Details
ci/woodpecker/pr/debug Pipeline was successful Details
2024-02-13 11:36:28 +01:00
Alex bf283c9924
[fix-secrets-695] config: replace String by PathBuf for *_file
ci/woodpecker/pr/debug Pipeline was successful Details
ci/woodpecker/push/debug Pipeline was successful Details
2024-02-12 15:36:43 +01:00
Alex 25e5738568
[fix-secrets-695] take into account rpc secret from file for cli commands (fix #695) 2024-02-12 10:42:17 +01:00
Alex 198188017c Merge pull request 'Implement header overriding in GetObject (fix #650)' (#713) from header-override-650 into main
ci/woodpecker/push/debug Pipeline was successful Details
ci/woodpecker/cron/release/3 Pipeline was successful Details
ci/woodpecker/cron/release/2 Pipeline was successful Details
ci/woodpecker/cron/debug Pipeline was successful Details
ci/woodpecker/cron/release/1 Pipeline was successful Details
ci/woodpecker/cron/release/4 Pipeline was successful Details
ci/woodpecker/cron/publish Pipeline was successful Details
Reviewed-on: #713
2024-02-09 15:40:18 +00:00
Alex 02e98e2d10
[header-override-650] implement header overriding in GetObject (fix #650)
ci/woodpecker/push/debug Pipeline was successful Details
ci/woodpecker/pr/debug Pipeline was successful Details
2024-02-09 15:58:46 +01:00
Alex fe175fa8e2 Merge pull request '`garage block info`: find blocks by prefix (fix #682)' (#712) from block-info-short-682 into main
ci/woodpecker/push/debug Pipeline was successful Details
Reviewed-on: #712
2024-02-09 14:07:29 +00:00
Alex 8da67b3aa2
[block-info-short-682] `garage block info`: find blocks by prefix (fix #682)
ci/woodpecker/push/debug Pipeline was successful Details
ci/woodpecker/pr/debug Pipeline was successful Details
2024-02-09 14:35:53 +01:00
Alex 10bc2ead60
[multi-char-delimiter-692] allow multi-character delimiters in List* (fix #692)
ci/woodpecker/pr/debug Pipeline was successful Details
ci/woodpecker/push/debug Pipeline was successful Details
2024-02-09 14:15:29 +01:00
Alex 5c63193d1d
[dep-upgrade-202402] fix shutdown issue introduced when upgrading hyper
ci/woodpecker/pr/debug Pipeline was successful Details
ci/woodpecker/push/debug Pipeline was successful Details
ci/woodpecker/deployment/debug Pipeline was successful Details
ci/woodpecker/deployment/release/3 Pipeline was successful Details
ci/woodpecker/deployment/release/2 Pipeline was successful Details
ci/woodpecker/deployment/release/4 Pipeline was successful Details
ci/woodpecker/deployment/release/1 Pipeline was successful Details
ci/woodpecker/deployment/publish Pipeline was successful Details
2024-02-08 23:43:59 +01:00
Alex bcbd15da84
[dep-upgrade-202402] cargo clippy fixes
ci/woodpecker/pr/debug Pipeline was successful Details
ci/woodpecker/push/debug Pipeline was successful Details
2024-02-08 23:29:57 +01:00
Alex ad5ce968d2
[dep-upgrade-202402] remove useless mut 2024-02-08 23:29:57 +01:00
Alex e011941964
[dep-upgrade-202402] refactor use of BodyStream
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2024-02-07 15:32:51 +01:00
Alex 53746b59e5
[dep-upgrade-202402] slightly more explicit error management
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2024-02-07 14:53:13 +01:00
Alex a31d1bd496
[dep-upgrade-202402] fix obsolete DateTime::from_utc calls
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2024-02-07 14:48:27 +01:00
Alex e524e7a30d
[dep-upgrade-202402] rename BytesBody into ErrorBody for clarity 2024-02-07 14:45:52 +01:00
Alex fe48d60d2b
[dep-upgrade-202402] refactor http listener code
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2024-02-07 14:34:40 +01:00
Alex 22332e6c35
[dep-upgrade-202402] simplify/refactor GetObject
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2024-02-05 20:26:33 +01:00
Alex 81ccd4586e
[dep-upgrade-202402] upgrade to http/hyper 1.x for tests
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2024-02-05 19:57:35 +01:00
Alex a22bd31920
[dep-upgrade-202402] migration to http/hyper 1.0 for k2v api
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2024-02-05 19:27:12 +01:00
Alex 0bb5b77530
[dep-upgrade-202402] wip: port to http/hyper crates v1
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2024-02-05 18:49:54 +01:00
Alex 6e69a1fffc
[dep-upgrade-202402] prepare migration to http/hyper 1.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2024-02-05 14:44:12 +01:00
Alex 6e4229e29c
[dep-upgrade-202402] update aws-sdk dependencies
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2024-02-05 14:02:45 +01:00
Alex fe1af5d98b
[dep-upgrade-202402] refactor dependencies: move all as workspace deps
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2024-02-05 13:02:02 +01:00
Zdenek Crha 0eef8a69f0 make all garage_db::Engine variants un-conditional
continuous-integration/drone/pr Build is passing Details
Having all Engine enum variants conditional causes compilation errors
when *none* of the DB engine features is enabled. This is not an issue
for full garage build, but affects crates that use garage_db as
dependency.

Change all variants to be present at all times. It solves compilation
errors and also allows us to better differentiate between invalid DB
engine name and engine with support not compiled in current binary.
2024-01-22 21:12:02 +01:00
Zdenek Crha 74e72fc996 convert_db: cleanup naming and comments for open overrides
continuous-integration/drone/pr Build is passing Details
2024-01-22 17:52:39 +01:00
Zdenek Crha 4b54e053df convert_db: prevent conversion between same input/output engine
continuous-integration/drone/pr Build is passing Details
Use optional DB open overrides for both input and output database.

Duplicating the same override flag for input/output would result in too
many, too long flags. It would be too costly for very rare edge-case
where converting between same DB engine, just with different flags.

Because overrides flags for different engines are disjoint and we are
preventing conversion between same input/ouput DB engine, we can have
only one set.

The override flag will be passed either to input or output, based on
engine type it belongs to. It will never be passed to both of them and
cause unwelcome surprise to user.
2024-01-18 17:57:56 +01:00
Zdenek Crha 8527dd87cc convert_db: allow LMDB map size override
continuous-integration/drone/pr Build is passing Details
2024-01-17 21:20:34 +01:00
Alex ee57dd922b
Bump version to 0.9.1
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2024-01-16 16:28:17 +01:00
Alex 82a29bf6e5
help, comments: make clear that full-length node ID = public key
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
Generally, avoid using the "public key" terminology
2024-01-16 14:04:11 +01:00
Alex 4c5be79b80 Garage v0.8.5
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
This minor release includes the following improvements and fixes:
 
 New features:
 
 - Configuration: make LMDB's `map_size` configurable and make `block_size` and `sled_cache_capacity` expressable as strings (such as `10M`) (#628, #630)
 
 - Add support for binding to Unix sockets for the S3, K2V, Admin and Web API servers (#640)
 
 - Move the `convert_db` command into the main Garage binary (#645)
 
 - Add support for specifying RPC secret and admin tokens as environment variables (#643)
 
 - Add `allow_world_readable_secrets` option to config file (#663, #685)
 
 Bug fixes:
 
 - Use `statvfs` instead of mount list to determine free space in metadata/data directories (#611, #631)
 
 - Add missing casts to fix 32-bit build (#632)
 
 - Fix error when none of the HTTP servers (S3/K2V/Admin/Web) is started and fix shutdown hang (#613, #633)
 
 - Add missing CORS headers to PostObject response (#609, #656)
 
 - Monitoring: finer histogram boundaries in Prometheus exported metrics (#531, #686)
 
 Other:
 
 - Documentation improvements (#641)
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEwhSWp0+ubv79TiqUDkltFQljdr4FAmWmWvsACgkQDkltFQlj
 dr59rRAAiMGQpDUK0QqiCgrp1rcUhvtj3DsQEpT7F14Jo3I7bFDmONZolPbO8YAs
 VE4S4CBQogNH0lMQ6EvJYiBCxDWkxdVibKqDWOYJmUw3bZ6Ypn1eZIF0+Uf1TDI+
 C6CxYbyDQtqvm330K2Du2uOoGiIgm83b6jktK/0FtbAE2GWhtYmQwoelprAGH20i
 baaSfkZbBl8toUscakyhPVVSQ86BcVQ2jqL6Ofu4eQknjMRqCeAIQhMB2ikpiwBz
 hbTZ3x0EfJJqiHocfkTE3B3cPnDKuHDzxPRhLMB/olEpzoxaLJ2+tc0ziQdl06/F
 1c8nHM57L1IaDGKAkpcANnj3yVf3jfPqq9SEUNi+xSIWbvln91RvXU4RIB8hiZqa
 rqAHjDuys++3DoAUr/L4X233MWufVAEYT4B+jaPAv6ys35xhQwPAMJrA0OZEr+hE
 HQMPIG9uMDVjZ2QCgFYgC02kEqvxbsRSVnb0wjI7eoNOk0LKo154eJh1cOGd4Ibs
 yBTiIi1+Y7RCXNxcIHKlj5vMUHPBr2D8DVFj21kfZKUtMQ/8yScoiRC14ZR4J2xF
 IYe3aDm80l3tYgnPRVj4fOGiIPsqnZd4iazYKwj2cifB8tzYfyh5/9fv2aio8K5y
 0GAw4AoTtgg1hLMadbc3om7wy64IRaZzXjv59eYPEotZYdreVpM=
 =RVm8
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEwhSWp0+ubv79TiqUDkltFQljdr4FAmWmZKIACgkQDkltFQlj
 dr6wZRAA1XuOBax/7YsIix3ag0kjnwnGAx8wYaA+Jiojw2yv/+ePL6yGHcKA93lI
 SL8l5G06fTDgpbpfdVbgyRzGT2tmjrXvkygRWf2WMDZ9I+8WxUA2q8aWaEMiNmvd
 0cfzYi14TgX+O0wEbKeeqrXG0473/yThk5U1FNbdJd7rkJ4JzaOTthdk0LJLiEUG
 zQ/YIYx3FVFoVI0rdORb3HKzqYHjMAvpzNhEIeqkrpDEzplQ3jKvY+rYWQL3S9zE
 bHbkZPoT62OpJGMr04/1FUkB+ctsvUrM0CskruaSKWyD2M1xTo/Ug4jh5muVIcdJ
 hJis1/k5rV8JDTIkb6eAxKqfVzI+56yDxofT8rVF4JhvlzvXDLOa0uyDVyA8/6un
 ylWRzs2Mlj6/TbscmPjrdH8v2Lb0zjWxvXe2iYnHHfldWUlYuBtI6FZiG3uNjBCs
 7ns3xr4VOw13RM5auVkEQksIO6lru0kvH18GB3h6Msx67w2JUzl+PaNv8PdRtnmV
 0SfLUl1Nh8yT2h9qG6/3cDE9E1G/mjg8SgljoEe6ahs/BUZmLuTHTyBjf+P22ZbO
 DCITM3CwrV+y/aKnRdLvd6LOWFinUqMS8YvVSVqJh9vo9R+dt33LdBMdWjP4IYHF
 MbACe4FzeG3AXUcHB/mDCm7a2H2BFwzAovFy0SE639PfWBxNue0=
 =gzWq
 -----END PGP SIGNATURE-----

Merge tag 'v0.8.5' into sync-08-09

Garage v0.8.5

This minor release includes the following improvements and fixes:

New features:

- Configuration: make LMDB's `map_size` configurable and make `block_size` and `sled_cache_capacity` expressable as strings (such as `10M`) (#628, #630)

- Add support for binding to Unix sockets for the S3, K2V, Admin and Web API servers (#640)

- Move the `convert_db` command into the main Garage binary (#645)

- Add support for specifying RPC secret and admin tokens as environment variables (#643)

- Add `allow_world_readable_secrets` option to config file (#663, #685)

Bug fixes:

- Use `statvfs` instead of mount list to determine free space in metadata/data directories (#611, #631)

- Add missing casts to fix 32-bit build (#632)

- Fix error when none of the HTTP servers (S3/K2V/Admin/Web) is started and fix shutdown hang (#613, #633)

- Add missing CORS headers to PostObject response (#609, #656)

- Monitoring: finer histogram boundaries in Prometheus exported metrics (#531, #686)

Other:

- Documentation improvements (#641)
2024-01-16 12:12:27 +01:00
Alex 50643e61bf
Bump version to 0.8.5
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2024-01-16 10:47:33 +01:00
Alex a6421ee5a5 Merge pull request 'monitoring: finer histogram boundaries in prometheus metrics (fix #531)' (#686) from fix-531 into main-0.8.x
continuous-integration/drone Build is passing Details
continuous-integration/drone/push Build is passing Details
Reviewed-on: #686
2024-01-15 16:44:58 +00:00
Alex f512609123
monitoring: finer histogram boundaries in prometheus metrics (fix #531)
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2024-01-15 17:33:35 +01:00
Alex 97bae7213a
config: additional tests for secret sourcing
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2024-01-15 17:30:30 +01:00
Alex 7228695ee2
config: refactor secret sourcing
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2024-01-15 17:18:46 +01:00
Alex db48dd3d6c
bump crate versions to 0.10.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2024-01-11 12:05:51 +01:00
Alex 8a6ec1d611 Merge pull request 'NLnet task 3' (#667) from nlnet-task3 into next-0.10
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
Reviewed-on: #667
2024-01-11 10:58:08 +00:00
Alex 0041b013a4
layout: refactoring and fix in layout helper
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build was killed Details
continuous-integration/drone Build is passing Details
2023-12-11 16:09:22 +01:00
Alex adccce1145
layout: refactor/fix bad while loop
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-12-11 15:45:14 +01:00
Alex 85b5a6bcd1
fix some clippy lints
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-12-11 15:31:47 +01:00
Alex e4f493b481
table: remove redundant tracing in insert_many
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-12-11 14:57:42 +01:00
Alex f8df90b79b
table: fix insert_many to not send duplicates
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-12-08 14:54:11 +01:00
Alex 4dbf254512
layout: refactoring, merge two files
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build was killed Details
2023-12-08 14:15:52 +01:00
Alex 64a6e557a4
rpc helper: small refactorings
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-12-08 12:18:12 +01:00
Alex 5dd200c015
layout: move block_read_nodes_of to rpc_helper to avoid double-locking
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
(in theory, this could have caused a deadlock)
2023-12-08 12:02:24 +01:00
Alex 063294dd56
layout version: refactor get_node_zone
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-12-08 11:50:58 +01:00
Alex 7f2541101f
cli: improvements to the layout commands when multiple layouts are live
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-12-08 11:24:23 +01:00
Alex 91b874c4ef
rpc: fix system::health
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-12-08 10:36:37 +01:00
Alex 431b28e0cf
fix build with discovery features
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build is passing Details
2023-12-07 15:15:59 +01:00
Alex 9cecea64d4
layout: allow sync update tracker to progress with only quorums
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone Build was killed Details
2023-12-07 14:51:20 +01:00
Alex aa59059a91
layout cli: safer skip-dead-nodes command
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-12-07 11:56:14 +01:00
Alex d90de365b3
table sync: use write quorums to report global success or failure of sync
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-12-07 11:16:10 +01:00
Alex 95eb13eb08
rpc: refactor result tracking for quorum sets
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-12-07 10:57:21 +01:00
Alex c8356a91d9
layout updates: fix the set of nodes among which minima are calculated
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-12-07 10:30:26 +01:00
Alex a8b0e01f88 Merge pull request 'OpenAPI specification of admin APIv1' (#672) from api-v1 into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #672
2023-11-29 15:42:46 +00:00
Alex c04dd8788a
admin: more info in admin GetClusterStatus
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-11-28 14:25:04 +01:00
Alex 539af6eac4
rpc helper: write comments + small refactoring of tracing
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-11-28 11:12:39 +01:00
Alex c539077d30
cli: remove historic layout info from status
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-11-27 16:22:27 +01:00
Alex 11e6fef93c
cli: add layout history and layout assume-sync commands 2023-11-27 16:22:25 +01:00
Alex 539a920313
cli: show when nodes are draining metadata
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2023-11-27 13:18:59 +01:00
Alex 78362140f5
rpc: update system::health to take into account write sets for all partitions
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-11-27 12:10:21 +01:00
Alex d6d239fc79
block manager: read_block using old layout versions if necessary
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-11-27 11:52:57 +01:00
Quentin d1d1940252
Health info message now advertises API v1
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-11-22 09:28:50 +01:00
asonix 92fd899fb6 Allow 0 as a part number marker
continuous-integration/drone/pr Build is passing Details
2023-11-21 17:39:51 -06:00
Alex 3ecd14b9f6
table: implement write sets for insert_many
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-11-16 16:41:45 +01:00
Alex 22f38808e7
rpc_helper: don't use tokio::spawn for individual requests 2023-11-16 16:34:01 +01:00
Alex 707442f5de
layout: refactor digests and add "!=" assertions before epidemic bcast
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone Build is passing Details
2023-11-16 13:51:40 +01:00
Alex ad5c6f779f
layout: split helper in separate file; more precise difference tracking
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-11-16 13:26:43 +01:00
Alex d4df03424f
layout: fix test
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone Build is passing Details
2023-11-15 15:56:57 +01:00
Alex 33c8a489b0
layou: implement ack locking
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2023-11-15 15:40:44 +01:00
Alex 393c4d4515
layout: add helper for cached/external values to centralize recomputation
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2023-11-15 14:20:50 +01:00
Alex 65066c7064
layout: wip cache global mins 2023-11-15 13:28:30 +01:00
Alex acd49de9f9
rpc: fix write set quorums
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-11-15 13:07:42 +01:00
Alex 46007bf01d
integration test: print stdout and stderr on subcommand crash 2023-11-15 12:56:52 +01:00
Alex b3e729f4b8
layout history merge: rm invalid versions when valid versions are added
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2023-11-15 12:15:58 +01:00
Alex 7ef2c23120
layout: fix test
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2023-11-14 15:45:01 +01:00
Alex 90e1619b1e
table: take into account multiple write sets in inserts
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2023-11-14 15:40:46 +01:00
Alex 3b361d2959
layout: prepare for write sets
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2023-11-14 14:28:16 +01:00
Alex 866196750f
system: add todo wrt new layout 2023-11-14 13:36:58 +01:00
Alex 83a11374ca
layout: fixes in schema
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2023-11-14 13:29:26 +01:00
Alex 1aab1f4e68
layout: refactoring of all_nodes
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2023-11-14 13:12:32 +01:00
Alex 8e292e06b3
layout: some refactoring of nongateway nodes
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2023-11-14 12:48:38 +01:00
Alex 9a491fa137
layout: fix test
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-11-11 13:10:59 +01:00
Alex df24bb806d
layout/sync: fix bugs and add tracing
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2023-11-11 12:44:27 +01:00
Alex ce89d1ddab
table sync: adapt to new layout history
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2023-11-11 12:08:32 +01:00
Alex df36cf3099
layout: add helpers to LayoutHistory and prepare integration with Table
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2023-11-09 16:32:31 +01:00
Alex 9d95f6f704
layout: fix tracker bugs
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2023-11-09 15:52:45 +01:00
Alex bad7cc812e
layout admin: add missing calls to update_hash
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2023-11-09 15:42:10 +01:00
Alex 03ebf18830
layout: begin managing the update tracker values
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2023-11-09 15:31:59 +01:00
Alex 94caf9c0c1
layout: separate code path for synchronizing update trackers only
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2023-11-09 14:53:34 +01:00
Alex bfb1845fdc
layout: refactor to use a RwLock on LayoutHistory
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2023-11-09 14:12:05 +01:00
Alex 19ef1ec8e7
layout: more refactoring 2023-11-09 13:34:14 +01:00
Alex 8a2b1dd422
wip: split out layout management from System into separate LayoutManager
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2023-11-09 12:55:36 +01:00
Alex 523d2ecb95
layout: use separate CRDT for staged layout changes
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2023-11-09 11:19:43 +01:00
Alex 1da0a5676e
bump garage protocol version tag to 0x000A (0.10)
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2023-11-08 19:30:58 +01:00
Alex 8dccee3ccf
cluster layout: adapt all uses of ClusterLayout to LayoutHistory
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2023-11-08 19:28:36 +01:00
Alex fe9af1dcaa
WIP: garage_rpc: store layout version history 2023-11-08 17:49:06 +01:00
Alex 4a9c94514f
avoid using layout_watch in System directly
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2023-11-08 16:41:00 +01:00
Alex 12d1dbfc6b
remove Ring and use ClusterLayout everywhere
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2023-11-08 15:41:24 +01:00
Alex 0962313ebd
garage_rpc: reorder functions in layout.rs 2023-11-08 13:13:04 +01:00
Félix Baylac Jacqué f83fa02193 Add allow_world_readable_secrets option to config file
continuous-integration/drone/pr Build is passing Details
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
Alex a0fa50dfcd Merge pull request 's3 api: refactoring and bug fix in ListObjects' (#655) from fix-list-objects into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #655
2023-10-26 09:22:47 +00:00
Alex c82d91c6bc DeleteObject: always insert a deletion marker with a bigger timestamp than everything before
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone Build is passing Details
2023-10-20 13:56:35 +02:00
Alex 8686cfd0b1 s3 api: also ensure increasing timestamps for create_multipart_upload
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-10-20 13:37:37 +02:00
Alex c6cde1f143 remove now-unused key parameter in check_quotas 2023-10-20 13:20:47 +02:00
Alex ac04934dae s3 api: add missing CORS headers to PostObject responses (fix #609)
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build is passing Details
2023-10-20 10:37:48 +02:00
Alex 58b0ee1b1a list objects: prettyness and add asserts
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone Build is failing Details
2023-10-19 15:26:17 +02:00
Alex 158dc17a06 listobjects: fix panic if continuation token is an empty string 2023-10-19 15:08:47 +02:00
Alex 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
continuous-integration/drone/push Build is passing Details
Reviewed-on: #643
2023-10-19 09:33:12 +00:00
networkException 8599051c49
garage: support specifying token / secret as environment variables
continuous-integration/drone/pr Build is passing Details
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
networkException 4a19ee94bb
garage: fix admin-token description 2023-10-19 03:31:50 +02:00
networkException 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
Alex d146cdd5b6 cargo fmt
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone Build is passing Details
2023-10-18 16:38:26 +02:00
Alex 3d6ed63824 check_quotas: avoid re-fetching object from object table
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2023-10-18 16:36:48 +02:00
Alex 45b0453d0f Ensure increasing version timestamps in PutObject 2023-10-18 16:31:50 +02:00
trinity-1686a c7f5dcd953 fix compilation on macos
continuous-integration/drone/pr Build is passing Details
fsblkcnt_t is ony 32b there, so we have to do an additional cast
2023-10-15 17:57:27 +02:00
Alex 952c9570c4 bump version to v0.9.0
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build is passing Details
2023-10-10 14:08:11 +02:00
Alex 3d7892477d convert_db: fix build 2023-10-10 14:06:25 +02:00
Alex d4932c31ea Merge branch 'main' into next
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2023-10-10 13:57:21 +02:00
Alex 2d5d7a7031 Move convert_db command into main garage binary
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-10-10 12:13:15 +02:00
Alex 0c431b0c03 admin api: increased compatibility for v0/ endpoints
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 is passing Details
2023-10-05 16:56:13 +02:00
Alex 1c13135f25 admin api: remove broken GET /v0/key router rule
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-10-05 16:27:29 +02:00
Alex 920dec393a cli: more precise doc comment
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-10-04 10:44:42 +02:00
Alex 2e656b541b Merge branch 'main' into next
continuous-integration/drone/tag Build is passing Details
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone Build is passing Details
2023-10-03 18:40:37 +02:00
networkException 7907a09acc
api: allow custom unix bind mode and use 0o220 for admin server 2023-10-03 17:31:40 +02:00
networkException 8ec6a53b35
everywhere: support unix sockets when binding in various places
continuous-integration/drone/pr Build is passing Details
this patch implements binding to paths as a unix socket for generic
server and web server.
2023-09-29 18:57:44 +02:00
networkException 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
networkException 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
networkException 6086a3fa07
cargo: add hyperlocal as a dependency 2023-09-29 18:37:12 +02:00
Alex 897cbf2c27 actually update rmp-serde to 1.1.2 for both garage and netapp dependency (fix #629)
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 was killed Details
2023-09-27 13:13:00 +02:00
Alex ad82035b98 Merge branch 'main' into next 2023-09-27 13:11:52 +02:00
Alex aa7eadc799 Merge pull request 'New layout: fixes and UX improvements' (#634) from new-layout-ux into next
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 is passing Details
Reviewed-on: #634
2023-09-27 09:04:32 +00:00
Alex 0635250b2b garage_table/queue_insert: delay worker notification to after transaction commit (fix #583)
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-09-21 15:37:28 +02:00
Alex f97168f805 garage_db: refactor transactions and add on_commit mechanism 2023-09-21 15:35:31 +02:00
Alex 3ecc17f8c5 new layout: use deterministic randomness for reproducible results
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-09-21 11:21:35 +02:00
Alex 0088599f52 new layout: fix clippy lints
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2023-09-18 12:17:07 +02:00
Alex 749b4865d0 new layout: improve display and fix comments
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
2023-09-18 12:07:45 +02:00
Alex 015ccb39aa new layout: make zone_redundancy optionnal (if not set, is maximum)
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2023-09-18 11:59:08 +02:00
Alex 2e229d4430 new layout: improve output display
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build was killed Details
2023-09-12 17:24:51 +02:00
Alex 91e764a2bf fix hang on shutdown
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-09-12 14:35:48 +02:00
Alex aa79810596 Fix error when none of S3/K2V/WEB/ADMIN server is started (fix #613) 2023-09-12 14:35:19 +02:00
Alex fd7d8fec59 Merge branch 'main' into next
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 was killed Details
2023-09-11 23:09:20 +02:00
Alex 9cfe55ab60 fix 32-bit build
continuous-integration/drone/pr Build was killed Details
continuous-integration/drone/push Build was killed Details
continuous-integration/drone Build is passing Details
2023-09-11 20:01:29 +02:00
Alex 51abbb02d8 Merge branch 'main' into next
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-09-11 20:00:02 +02:00
Alex d5bb50d738 use statvfs instead of mount list to determine free data/meta space (fix #611)
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build was killed Details
2023-09-11 19:08:24 +02:00
Alex f8b3883611 config: make block_size and sled_cache_capacity expressable as strings
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-09-11 18:34:59 +02:00