Alex
81191d2d92
Merge pull request 'Remove Sled' ( #767 ) from rm-sled into next-0.10
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/767
2024-03-12 10:45:57 +00:00
Alex Auvolat
2795b53b8b
[rm-sled] factorize some code in sqlite backend
2024-03-12 11:15:26 +01:00
Alex Auvolat
32aa246300
[rm-sled] Make proper use of pinning in LMDB adapter + comment unsafe
2024-03-08 17:39:17 +01:00
Alex Auvolat
b942949940
[rm-sled] Implement iterators in sqlite & lmdb transactions
...
with way too much unsafe code
2024-03-08 16:38:01 +01:00
Alex Auvolat
66c23890c1
[rm-sled] Implement some missing functionality in garage_db
2024-03-08 16:02:58 +01:00
Alex Auvolat
05c92204ec
[rm-sled] Remove counted_tree_hack
2024-03-08 15:09:57 +01:00
Alex
2128b5febd
Merge pull request 'Remove migration path from Garage v0.5' ( #766 ) from rm-migration into next-0.10
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/766
2024-03-08 13:43:42 +00:00
Alex Auvolat
44454aac01
[rm-sled] Remove the Sled database engine
2024-03-08 14:11:02 +01:00
Alex Auvolat
1ace34adbb
Merge branch 'main' into next-0.10
2024-03-08 13:57:10 +01:00
Alex Auvolat
f537f76681
[rm-migration] Remove migration path from Garage v0.5
2024-03-08 13:24:47 +01:00
Alex Auvolat
ec34728b27
[factor-db-open] Combine logic for opening db engines
2024-03-08 12:58:17 +01:00
Alex
20c0b4ffb2
Merge pull request 'ReplicationMode -> ConsistencyMode+ReplicationFactor' ( #750 ) from yuka/garage:split-consistency-mode into next-0.10
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/750
2024-03-07 16:32:52 +00:00
Alex Auvolat
3fcb54e3cf
[sse-c] Remove special case for Content-Type header
2024-03-07 15:43:48 +01:00
Alex Auvolat
fa4878bad6
[sse-c] Testing for SSE-C encryption
2024-03-07 15:43:48 +01:00
Alex Auvolat
57acc60082
[sse-c] Implement SSE-C encryption
2024-03-07 15:43:47 +01:00
Alex Auvolat
fe2dc5d51c
Merge branch 'main' into next-0.10
2024-03-07 14:00:34 +01:00
Alex Auvolat
eab2b81be2
[unicode-headers] allow utf-8 in headers + add test for object metadata
2024-03-07 13:42:01 +01:00
Yureka
c1769bbe69
ReplicationMode -> ConsistencyMode+ReplicationFactor
2024-03-07 12:45:33 +01:00
Yureka
6760895926
refactor: remove max_write_errors and max_faults
2024-03-04 18:39:56 +01:00
Alex Auvolat
bbde9bc912
Merge branch 'main' into next-0.10
2024-03-04 15:56:10 +01:00
Alex
3168bb34a0
Merge pull request 'add request context helper' ( #751 ) from yuka/garage:req-ctx into main
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/751
2024-03-04 14:51:05 +00:00
Alex Auvolat
8670140358
[rel-0.9.3] Bump version to 0.9.3
2024-03-04 14:00:55 +01:00
Alex Auvolat
c8e416aaa5
[test-presigned] Use a HeaderMap type for QueryMap
2024-03-04 13:33:14 +01:00
Yureka
fb55682c66
add request context helper
2024-03-04 13:26:39 +01:00
asonix
c94bf45cba
Store original-cased query keys alongside query values
2024-03-04 13:03:27 +01:00
asonix
7c4f3473af
Lowercase query parameter keys when parsing
2024-03-04 13:03:16 +01:00
Alex Auvolat
b6a91e549b
[test-presigned] Add API test for presigned requests
2024-03-04 13:02:07 +01:00
Alex Auvolat
6a7623e90d
[rel-0.9.2] Bump version to v0.9.2
2024-03-01 16:54:39 +01:00
Alex Auvolat
a36248a169
[fix-signed-headers] aws signatures v4: don't actually check Content-Type is signed
...
This page of the AWS docs indicate that Content-Type should be part of
the CanonicalHeaders (and therefore SignedHeaders) strings in signature
calculation:
https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html
However, testing with Minio Client revealed that it did not sign the
Content-Type header, and therefore we broke CI by expecting it to be
signed. With this commit, we don't mandate Content-Type to be signed
anymore, for better compatibility with the ecosystem. Testing against
the official behavior of S3 on AWS has not been done.
2024-03-01 13:12:18 +01:00
Alex Auvolat
6d33e721c4
[fix-auth-ct-eq] use consant time comparison for awsv4 signature verification
2024-02-29 13:07:18 +01:00
Alex Auvolat
eaac4924ef
[fix-auth-ct-eq] use argon2 hashing and verification for admin/metrics token checking
2024-02-29 13:07:15 +01:00
Alex Auvolat
90cab5b8f2
[fix-presigned] add comments and reorganize
2024-02-28 12:24:21 +01:00
Alex Auvolat
e9f759d4cb
[fix-presigned] presigned requests: allow x-amz-* query parameters to stand in for equivalent headers
2024-02-28 12:24:21 +01:00
Alex Auvolat
a5e4bfeae9
[fix-presigned] write comments
2024-02-28 12:24:21 +01:00
Alex Auvolat
4c1d42cc5f
[fix-presigned] add back anonymous request code path + refactoring
2024-02-28 12:24:21 +01:00
Alex Auvolat
2efa9c5a1a
[fix-presigned] PostObject: verify X-Amz-Algorithm
2024-02-28 12:24:20 +01:00
Alex Auvolat
a8cb8e8a8b
[fix-presigned] split presigned/normal signature verification
2024-02-28 12:24:13 +01:00
Alex Auvolat
4b978b7533
Merge branch 'main' into next-0.10
2024-02-26 18:55:24 +01:00
Alex Auvolat
b76c0c102e
[refactor-put] add ordering tag to blocks being sent to storage nodes
2024-02-26 18:35:11 +01:00
Alex Auvolat
babccd2ad3
[refactor-put] send several blocks in parallel to storage nodes
2024-02-26 18:22:37 +01:00
Alex Auvolat
3fe94cc14f
[refactor-put] rewrite read_and_put_block as a series of steps with channels
2024-02-26 17:55:37 +01:00
Alex Auvolat
3692af7052
Merge branch 'main' into next-0.10
2024-02-23 18:28:05 +01:00
Alex Auvolat
d640102b76
[split_getobject] GetObject: split out handle_get_full
2024-02-23 18:14:50 +01:00
Alex Auvolat
916c67ccf4
Merge branch 'main' into next-0.10
2024-02-23 16:50:34 +01:00
Alex Auvolat
6ee691e65f
[refactor-block] simplify some more
2024-02-23 12:50:10 +01:00
Alex Auvolat
e9c42bca34
[refactor-block] add DataBlockStream type
2024-02-23 12:22:29 +01:00
Alex Auvolat
cd1069c1d4
[refactor-block] refactor DataBlock and DataBlockPath
2024-02-23 12:15:52 +01:00
Alex Auvolat
07c7895948
[refactor-block] simplify rpc_get_block
2024-02-23 11:54:40 +01:00
Alex Auvolat
9b41f4ff20
[refactor-block] move read_stream_to_end to garage_net
2024-02-23 11:46:57 +01:00
Alex Auvolat
93552b9275
[refactor-block] Remove redundant BlockStream type
2024-02-23 11:33:38 +01:00
Alex Auvolat
81cebdd124
[next-0.10] fix build
2024-02-22 15:53:47 +01:00
Alex Auvolat
59f61c966a
Merge branch 'main' into next-0.10
2024-02-22 15:45:45 +01:00
Alex Auvolat
cff702a951
[lock-createbucket] Add node-global lock for bucket/key operations ( fix #723 )
2024-02-22 12:28:21 +01:00
Alex Auvolat
75e591727d
[next-0.10] cluster node status metrics: report nodes of all active layout versions
2024-02-20 17:08:31 +01:00
Alex Auvolat
643d1aabd8
Merge branch 'main' into next-0.10
2024-02-20 17:02:44 +01:00
Alex
885405d944
Merge pull request 'system metrics improvements' ( #726 ) from peer-metrics into main
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/726
2024-02-20 15:35:12 +00:00
Alex Auvolat
b868493da9
[peer-metrics] add basic cluster node status metrics ( fix #545 )
2024-02-20 14:50:24 +01:00
Alex Auvolat
182a23cc12
[peer-metrics] refactor SystemMetrics to hold a reference to System
2024-02-20 14:20:58 +01:00
Alex Auvolat
3cdf69f079
[peer-metrics] Add metrics for cluster health, like GetClusterHealth admin API
2024-02-20 13:50:45 +01:00
Alex Auvolat
00d479358d
[peer-metrics] refactor/simplify SystemMetrics
2024-02-20 13:50:45 +01:00
Alex
203bb10035
Merge pull request 'Filter nodes Garage tries to connect to' ( #719 ) from reconnect-only-current into main
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/719
2024-02-20 10:37:11 +00:00
Alex Auvolat
e91576677e
[reconnect-only-current] filter nodes to reconnect to
...
do not try reconnecting to nodes received from consul/kubernetes
discovery if they are not currently in the layout
2024-02-20 11:07:10 +01:00
Alex Auvolat
95e3a39b4d
[networking-fixes] small refactoring in garage_net peering
2024-02-19 18:12:21 +01:00
Alex Auvolat
66fe893023
[networking-fixes] garage_net: retry connecting when new IP is learned
2024-02-19 18:12:21 +01:00
Alex Auvolat
b96f84b894
[networking-fixes] add option to bind outgoing RPC sockets ( fix #638 )
...
Thanks to yuka for the original patch.
2024-02-19 11:45:44 +01:00
Alex Auvolat
f0bbad2db9
[networking-fixes] use rpc_public_addr in netapp's HelloMessage
2024-02-19 11:45:44 +01:00
Alex Auvolat
eb4a6ce106
Merge branch 'main' into next-0.10
2024-02-15 14:06:34 +01:00
Alex Auvolat
125c662860
[import-netapp] move and rename FullMeshPeeringSrategy to PeeringManager
2024-02-15 12:15:35 +01:00
Alex Auvolat
5766befb24
[import-netapp] fix tests
2024-02-15 12:15:33 +01:00
Alex Auvolat
5ea24254a9
[import-netapp] import Netapp code into Garage codebase
2024-02-15 12:15:07 +01:00
Alex Auvolat
1b0f167d2f
[fix-cargo-toml] fix cargo warnings in Cargo.toml files
2024-02-15 10:54:58 +01:00
Alex Auvolat
cf2af186fc
Merge branch 'main' into next-0.10
2024-02-13 11:36:28 +01:00
Alex Auvolat
bf283c9924
[fix-secrets-695] config: replace String by PathBuf for *_file
2024-02-12 15:36:43 +01:00
Alex Auvolat
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
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/713
2024-02-09 15:40:18 +00:00
Alex Auvolat
02e98e2d10
[header-override-650] implement header overriding in GetObject ( fix #650 )
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
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/712
2024-02-09 14:07:29 +00:00
Alex Auvolat
8da67b3aa2
[block-info-short-682] garage block info
: find blocks by prefix ( fix #682 )
2024-02-09 14:35:53 +01:00
Alex Auvolat
10bc2ead60
[multi-char-delimiter-692] allow multi-character delimiters in List* ( fix #692 )
2024-02-09 14:15:29 +01:00
Alex Auvolat
5c63193d1d
[dep-upgrade-202402] fix shutdown issue introduced when upgrading hyper
2024-02-08 23:43:59 +01:00
Alex Auvolat
bcbd15da84
[dep-upgrade-202402] cargo clippy fixes
2024-02-08 23:29:57 +01:00
Alex Auvolat
ad5ce968d2
[dep-upgrade-202402] remove useless mut
2024-02-08 23:29:57 +01:00
Alex Auvolat
e011941964
[dep-upgrade-202402] refactor use of BodyStream
2024-02-07 15:32:51 +01:00
Alex Auvolat
53746b59e5
[dep-upgrade-202402] slightly more explicit error management
2024-02-07 14:53:13 +01:00
Alex Auvolat
a31d1bd496
[dep-upgrade-202402] fix obsolete DateTime::from_utc calls
2024-02-07 14:48:27 +01:00
Alex Auvolat
e524e7a30d
[dep-upgrade-202402] rename BytesBody into ErrorBody for clarity
2024-02-07 14:45:52 +01:00
Alex Auvolat
fe48d60d2b
[dep-upgrade-202402] refactor http listener code
2024-02-07 14:34:40 +01:00
Alex Auvolat
22332e6c35
[dep-upgrade-202402] simplify/refactor GetObject
2024-02-05 20:26:33 +01:00
Alex Auvolat
81ccd4586e
[dep-upgrade-202402] upgrade to http/hyper 1.x for tests
2024-02-05 19:57:35 +01:00
Alex Auvolat
a22bd31920
[dep-upgrade-202402] migration to http/hyper 1.0 for k2v api
2024-02-05 19:27:12 +01:00
Alex Auvolat
0bb5b77530
[dep-upgrade-202402] wip: port to http/hyper crates v1
2024-02-05 18:49:54 +01:00
Alex Auvolat
6e69a1fffc
[dep-upgrade-202402] prepare migration to http/hyper 1.0
2024-02-05 14:44:12 +01:00
Alex Auvolat
6e4229e29c
[dep-upgrade-202402] update aws-sdk dependencies
2024-02-05 14:02:45 +01:00
Alex Auvolat
fe1af5d98b
[dep-upgrade-202402] refactor dependencies: move all as workspace deps
2024-02-05 13:02:02 +01:00
Zdenek Crha
0eef8a69f0
make all garage_db::Engine variants un-conditional
...
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
2024-01-22 17:52:39 +01:00
Zdenek Crha
4b54e053df
convert_db: prevent conversion between same input/output engine
...
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
2024-01-17 21:20:34 +01:00
Alex Auvolat
ee57dd922b
Bump version to 0.9.1
2024-01-16 16:28:17 +01:00
Alex Auvolat
82a29bf6e5
help, comments: make clear that full-length node ID = public key
...
Generally, avoid using the "public key" terminology
2024-01-16 14:04:11 +01:00