-
Garage v1.0.0 RC1 Pre-Release
released this
2024-03-28 16:06:07 +00:00 | -115 commits to main since this releaseThis release is the first Release Candidate for Garage 1.0.
The following changes are unique to the 1.0 series:
New features:
-
Add a repair procedure for block reference counters (#782)
-
The
replication_mode
configuration parameter is now dividied inreplication_factor
andconsistency_mode
, allowing for arbitrary replication factors (#750)
Bug fixes:
-
Properly maintain consistency when cluster composition is updated (adding or removing nodes) and data is being rebalanced between nodes (#667)
Other:
-
Remove migration path from Garage v0.5 (#766)
-
Remove the Sled database engine (#767)
-
Internals: remove
max_write_errors
andmax_faults
(#760)
The following changes are included in this release and will also be part of a future v0.9.x release:
New features:
-
Add snapshotting of metadata db, manual with
garage meta snapshot
and automatic with themetadata_auto_snapshot_interval
configuration parameter (#775) -
Add a
disable_scrub
configuration option (#774) -
CLI: allow manipulating buckets using a prefix of their full hex id (#783)
-
Add marker file in data directory that is checked upon startup (#601, #785)
Bug fixes:
-
Avoid unbounded buffering in RAM, add config option
block_ram_buffer_max
(#788, #792) -
Allow utf-8 in headers such as object metadata (#763)
Other:
-
db engines: refactoring, improved defaults, connection pooling for sqlite backend, testing of multiple backends (#660, #765, #779, #793)
-
refactoring: add request helper (#751)
Thanks to all of the contributors for this release: jirutka, stefano, Yureka
Click here to get a binary release suited to your platform (scroll down to "extra builds")
Downloads
-
Garage v0.8.7 Stable
released this
2024-03-04 14:35:38 +00:00 | 440 commits to main since this releaseThis minor version fixes a regression in v0.9.2 which broke presigned URLs. Thanks to asonix for identifying the issue and providing a patch.
Downloads
-
Garage v0.9.3 Stable
released this
2024-03-04 13:25:40 +00:00 | 41 commits to main since this releaseThis minor version fixes a regression in v0.9.2 which broke presigned URLs. Thanks to asonix for identifying the issue and providing a patch.
Downloads
-
Garage v0.9.2 Stable
released this
2024-03-01 16:18:39 +00:00 | 52 commits to main since this releaseThis minor release includes the following improvements and fixes:
Security fixes:
-
Fix timing side-channel vulnerability in admin/metrics token comparison and in AWS signature v4 verification (#737)
-
Ensure that the correct set of headers (in particular,
x-amz-*
headers) are included in signature calculation (#735, #745)
New features:
-
allow to specify custom LMDB map size when using
garage convert-db
(#691) -
garage block info
can now find blocks using only a prefix of the hash (#682, #712) -
header overriding in GetObject using
response-*
query parameters (#650, #713) -
allow option to bind outgoing RPC sockets to same IP address as listening socket (#638, #721)
-
add health and node status metrics to prometheus exports (#545, #726)
Bug fixes:
-
allow multi-character delimiters in List* API calls (#692, #711)
-
take into account rpc secret file for CLI commands (#695, #715)
-
retry RPC connections when new IP address for a peer is learned (#652, #724)
-
filter nodes Garage tries to reconnect to, to avoid connecting to old nodes (#555, #719)
-
add a lock ON EACH NODE ONLY for CreateBucket and other bucket/key operations (#723, #728)
Optimization:
-
rewrite of PutObject with potential speed-ups (not benchmarked) (#734)
-
enable LTO in release builds, reduces binary size significantly (#704, #707)
Other:
-
import code of the netapp crate into the garage codebase, as new crate
garage_net
(#717) -
convert CI pipelines to Woodpecker + improvements and simplifications to CI code (#708, #706)
Thanks to all of the contributors that have participated in this new version: Armaël Gueneau, emilylange, hartraft, Jonathan Davies, yuka, Zdenek Crha. Thanks to Radicallly Open Security for auditing the code and finding the timing side-channel vulnerabilities.
Downloads
-
-
Garage v0.8.6 Stable
released this
2024-03-01 14:05:01 +00:00 | 446 commits to main since this releaseGarage v0.8.6
This minor release is a security release that fixes the following issues:
-
Fix timing side-channel vulnerability in admin/metrics token comparison and in AWS signature v4 verification (#737, backported in #740)
-
Ensure that the correct set of headers (in particular,
x-amz-*
headers) are included in signature calculation (#735, #745, backported in #744)
Thanks to Radicallly Open Security for auditing the code and finding the timing side-channel vulnerabilities.
Downloads
-
-
Garage v0.9.1 Stable
released this
2024-01-17 11:59:19 +00:00 | 188 commits to main since this releaseThis minor release includes the following improvements and fixes:
New features:
-
Add support for specifying RPC secret and admin tokens as environment variables (#643)
-
Add
allow_world_readable_secrets
option to config file (#658, #663, #685)
Bug fixes:
-
Fix bug in ListObjects and refactoring (#655)
-
Allow 0 as a part number (#670)
-
Ensure increasing timestamps when new objects are created (#543). This patch modifies the internal behavior of PutObject, DeleteObject(s) and CreateMultipartUploads, and may cause a small performance penalty on these endpoints when compared to previous versions.
-
Add missing CORS headers to PostObject response (#609, #656)
-
Monitoring: finer histogram boundaries in Prometheus exported metrics (#531, #686)
-
Fix compilation on MacOS (#654)
Ecosystem:
-
Jepsen testing (#544), which led to the timestamp fix mentionned above (#543)
-
OpenAPI specification of Admin API v1 (#672)
-
Build system updates to use mold as a linker for local dev builds (#646, #664)
Other:
-
CLI usability: make clear that full-length node ID = public key' (#688)
Thanks to all of the contributors that have participated in this new version: asonix, Félix Baylac Jacqué, Lapineige, networkException, Quentin Dufour, trinity-1686a.
Downloads
-
-
Garage v0.8.5 Stable
released this
2024-01-16 10:31:10 +00:00 | 455 commits to main since this releaseThis release includes the following improvements and fixes over v0.8.4:
New features:
-
Configuration: make LMDB's
map_size
configurable and makeblock_size
andsled_cache_capacity
expressable as strings (such as10M
) (#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 (#658, #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)
This will be the last release of the v0.8.x series, unless severe bugs or security flaws are discovered, in which case patch releases will be made until the end of 2024.
Thanks to all of the contributors that have participated in this new version: Félix Baylac Jacqué, Florian Klink, networkException.
Downloads
-
-
Garage v0.10.0 beta 1 Pre-Release
released this
2024-01-11 11:38:21 +00:00 | 150 commits to main since this releaseThe 0.10.x release cycle of Garage fixes consistency issues that could arise when cluster composition was updated (adding or removing nodes) and data was being rebalanced between nodes.
This first beta release is the result of work done for the 3rd task of the Garage NLnet project n°2022-12-018 (see #667). The fixed version has been extensively tested using Jepsen (see #544), however this new version has not yet been put in production at Deuxfleurs, therefore a final v0.10.0 release is not due yet.
A new major version was required because the internal format of the cluster layout has changed, and nodes running version 0.10.x are not able to communicate with nodes running version 0.9.x, however from an end-user perspective, no breaking changes are introduced by this version and the upgrade process does not require manual intervention.
Several other changes are also included in this release. A full changelog will be published along with v0.10.0, which will be based on v0.9.1 (to be relased) instead of the current v0.9.0.
Binary builds are available on our download page, in the "Extra Builds" section (below the list of release builds).
Downloads
-
Garage v0.9.0 Stable
released this
2023-10-10 13:21:45 +00:00 | 296 commits to main since this releaseThis release is the final version of Garage v0.9.0.
Make sure to follow the upgrade procedure to upgrade a v0.8.x cluster to v0.9.0.
Garage v0.9.0 includes the following BREAKING CHANGES:
-
LMDB is now the default metadata db engine and Sled is deprecated. Make sure you are using the correct value of
db_engine
in your config file before updating. Sled will be removed in Garage v1.0. -
Capacity values are now in actual byte units. The translation from the old layout will assign 1 capacity = 1Gb by default, which might be wrong for your cluster. This does not cause any data to be moved around, but users might want to re-assign correct capacities to all their nodes to be future-proof.
-
Multipart uploads that were started in Garage v0.8 will not be visible in Garage v0.9 and will have to be restarted from scratch.
-
Updated admin API endpoints, prefixed by
v1/
. For endpoints with incompatible syntax, thev0/
endpoints have been disabled; for others thev0/
URLs are translated automatically to theirv1/
counterpart. Endpoints underv0/
will be removed in Garage v1.0.- affected admin endpoints: GetClusterStatus, GetClusterHealth, GetClusterLayout, UpdateClusterLayout, ApplyClusterLayout, GetKeyInfo, UpdateKey, CreateKey, ImportKey
-
Changes to the
garage key
CLI:garage key new
is renamed togarage key create
to be the same asgarage bucket create
garage key import
will not work without the--yes
flag and will reject invalid keys (keys that are not generated by Garage)garage key info
will no longer display the secret key by default (fix #506)
Other changes since v0.8.4:
- Optimal layout assignation algorithm (#296)
- Full multipart upload semantics (#204, #553)
- Support for multiple HDDs per server (#218, #625)
- Support for basic lifecycle configurations (#309, #620)
- Uniformized serialization conventions in admin API (#377, #381)
- Added checks to
garage key import
(#278), renamedgarage key new
intogarage key create
(#459) - Added the
convert_db
subcommand to the main Garage binary (#645) - Added support for binding API servers to UNIX sockets (#253, #640)
- Update
rmp-serde
from 0.15 to 1.1.2 - s/assignation/assignment (#465)
- Many updates to the documentation
- Many smaller changes not tracked by issues or PRs
Thanks to all of the contributors that have participated in this new version: Florian Klink, Jonathan Davies, Mendes, networkException.
Downloads
-
-
Garage v0.8.4 Stable
released this
2023-09-05 22:08:51 +00:00 | 496 commits to main since this releaseThis bugfix release reverts the netapp dependency upgrade in v0.8.3, which caused an incompatible version of rmp-serde to be used (v1.1 vs v0.15), in turn causing v0.8.2 and v0.8.3 nodes to be unable to run together in a cluster.
Garage v0.8.3 should be avoided due to its incompatibility with v0.8.2. All users of v0.8.3 should upgrade to this release as soon as possible.
For users upgrading from v0.8.2 or earlier, please check the changelog for Garage v0.8.3.
Downloads