• v1.0.0 ff093ddbb8

    Garage v1.0.0 Stable

    lx released this 2024-04-10 15:20:10 +00:00 | 12 commits to main since this release

    Signed by lx
    GPG key ID: 0E496D15096376BE

    ⚠️ Some users reported issues with 1.0 layout migrations when adding new nodes. We're investigating those issues, but in the meantime remembrer that changing a cluster layout can be still considered a significant change and you should backup your data beforehand.

    This release is the final stable release of Garage v1.0.0.

    A migration guide has been published for users that wish to migrate an existing v0.9.x Garage cluster.

    The following changes since v0.9.4 are included:

    Breaking changes:

    • The Sled database engine has been removed (#767)

    New features:

    • Implementation of SSE-C encryption (#602, #730)

    • Implementation of checksum algorithms (#347, #787)

    • Add a repair procedure for block reference counters (#782)

    • The replication_mode configuration parameter is now dividied in replication_factor and consistency_mode, allowing for arbitrary replication factors (#750). This is not a breaking change, as the old replication_mode parameter can still be used.

    Bug fixes:

    • Properly maintain consistency when cluster composition is updated (adding or removing nodes) and data is being rebalanced between nodes (#667)

    • Fixes and refactoring in peering manager (#761, #786)

    Other:

    • Remove migration path from Garage v0.5 (#766)

    • Internals: remove max_write_errors and max_faults (#760)

    • Documentation updates (#795)

    • Jepsen testing of Garage v1.0 (#796)

    Thanks to Yureka for contributing to this release.

    Click here to get a binary release suited to your platform

    Downloads
  • v0.9.4 7dd7cb5759

    Garage v0.9.4 Stable

    lx released this 2024-04-08 09:55:48 +00:00 | 132 commits to main since this release

    Signed by lx
    GPG key ID: 0E496D15096376BE

    This minor release includes the following improvements and fixes:

    New features:

    • Add snapshotting of metadata db, manual with garage meta snapshot and automatic with the metadata_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 support for logging to syslog (#368, #784)

    • 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)

    • disable unreliable K2V tests (#789, #791)

    • documentation updates (#773, #781, #795)

    Thanks to all of the contributors for this release: jirutka, stefano, Yureka

    Click here to get a binary release suited to your platform

    Downloads
  • v1.0.0-rc1 afad62939e

    Garage v1.0.0 RC1 Pre-release

    lx released this 2024-03-28 16:06:07 +00:00 | 22 commits to main since this release

    Signed by lx
    GPG key ID: 0E496D15096376BE

    This release is the first Release Candidate for Garage 1.0.

    The following changes are unique to the 1.0 series:

    New features:

    • Implementation of SSE-C encryption (#602, #730)

    • Implementation of checksum algorithms (#347, #787)

    • Add a repair procedure for block reference counters (#782)

    • The replication_mode configuration parameter is now dividied in replication_factor and consistency_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)

    • Fixes and refactoring in peering manager (#761, #786)

    Other:

    • Remove migration path from Garage v0.5 (#766)

    • Remove the Sled database engine (#767)

    • Internals: remove max_write_errors and max_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 the metadata_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 support for logging to syslog (#368, #784)

    • 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)

    • disable unreliable K2V tests (#789, #791)

    • documentation updates (#773, #781)

    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
  • v0.8.7 2eb114f422

    Garage v0.8.7 Stable

    lx released this 2024-03-04 14:35:38 +00:00 | 577 commits to main since this release

    Signed by lx
    GPG key ID: 0E496D15096376BE

    This minor version fixes a regression in v0.9.2 which broke presigned URLs. Thanks to asonix for identifying the issue and providing a patch.

    Click here to get a binary release suited to your platform

    Downloads
  • v0.9.3 8670140358

    Garage v0.9.3 Stable

    lx released this 2024-03-04 13:25:40 +00:00 | 178 commits to main since this release

    Signed by lx
    GPG key ID: 0E496D15096376BE

    This minor version fixes a regression in v0.9.2 which broke presigned URLs. Thanks to asonix for identifying the issue and providing a patch.

    Click here to get a binary release suited to your platform

    Downloads
  • v0.9.2 6a7623e90d

    Garage v0.9.2 Stable

    lx released this 2024-03-01 16:18:39 +00:00 | 189 commits to main since this release

    Signed by lx
    GPG key ID: 0E496D15096376BE

    This 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)

    • fix IP address exchanges upon RPC connection (#558, #721)

    • 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:

    • upgrade Rust toolchain (#705, #710)

    • update most Rust dependencies (#703, #709, #718)

    • 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)

    • some refactoring (#729, #732, #735)

    • documentation updates (#716, #722, #727, #733, #736, #739)

    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.

    Click here to get a binary release suited to your platform

    Downloads
  • v0.8.6 d94b086db3

    Garage v0.8.6 Stable

    lx released this 2024-03-01 14:05:01 +00:00 | 583 commits to main since this release

    Signed by lx
    GPG key ID: 0E496D15096376BE

    Garage 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.

    Click here to get a binary release suited to your platform

    Downloads
  • v0.9.1 ee57dd922b

    Garage v0.9.1 Stable

    lx released this 2024-01-17 11:59:19 +00:00 | 325 commits to main since this release

    Signed by lx
    GPG key ID: 0E496D15096376BE

    This 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)

    • Documentation improvements (#617, #647, 674)

    Thanks to all of the contributors that have participated in this new version: asonix, Félix Baylac Jacqué, Lapineige, networkException, Quentin Dufour, trinity-1686a.

    Click here to get a binary release suited to your platform

    Downloads
  • v0.8.5 083e982f5f

    Garage v0.8.5 Stable

    lx released this 2024-01-16 10:31:10 +00:00 | 592 commits to main since this release

    Signed by lx
    GPG key ID: 0E496D15096376BE

    This release includes the following improvements and fixes over v0.8.4:

    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 (#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.

    Click here to get a binary release suited to your platform

    Downloads
  • v0.10.0-beta1 db48dd3d6c

    Garage v0.10.0 beta 1 Pre-release

    lx released this 2024-01-11 11:38:21 +00:00 | 287 commits to main since this release

    Signed by lx
    GPG key ID: 0E496D15096376BE

    The 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