-
Garage v0.10.0 beta 1 Pre-release
released this
2024-01-11 11:38:21 +00:00 | 342 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
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
2 downloads
-
Source code (ZIP)
-
Garage v0.9.0 Stable
released this
2023-10-10 13:21:45 +00:00 | 488 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
-
Source code (ZIP)
4 downloads
-
Source code (TAR.GZ)
2 downloads
-
-
Garage v0.8.4 Stable
released this
2023-09-05 22:08:51 +00:00 | 688 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
-
Source code (ZIP)
4 downloads
-
Source code (TAR.GZ)
3 downloads
-
Source code (ZIP)
-
Garage v0.8.3 (broken) Stable
released this
2023-08-29 08:56:12 +00:00 | 690 commits to main since this release⚠️ We discovered that a
netapp
dependency upgrade caused an incompatible version ofrmp-serde
to be used (v1.1 vs v0.15) in this release, in turn causing v0.8.2 and v0.8.3 nodes to be unable to communicate together in a cluster. The 0.8.4 release fixes this issue. All users should upgrade to 0.8.4 as soon as possible.This minor release includes the following improvements and fixes:
Potentially breaking change:
- #567 changes how Garage nodes are advertised in Consul: the node ID is no longer advertised in the Consul Node metadata but in the Consul Service metadata. Migration has not been tested throughly, old data should be replaced automatically, but if it isn't, Consul discovery might be broken until old entries are purged manually.
New features:
-
Scrub now emits a log message when it starts/ends (#551)
-
Interaction with Consul can now use the agent API (#567)
-
Support
{s3,web}.root_domain
for the Caddy on-demand TLS endpoint (#610) -
Web endpoint: support index on path missing a trailing slash (#612)
Bug fixes:
-
block/manager.rs: Prioritize raw blocks when no compression configured (#566)
-
Properly implement double-urlencoding for S3 signatures in K2V (#574)
-
Fix timestamp issues in
garage block list-errors
(#584, #585)
Internals/refactoring:
-
Build fixes and improvements (#562, #563, #568, #572, #599, #592)
-
k2v-client refactoring (#571)
-
Port k2v-client to aws-sigv4 and add basic integration testing (#577)
-
New return type for PollRange in k2v-client (#590)
Other:
-
Documentation improvements (#549, #219, #416, #430, #587, #588, #598, #604, #614, #616, #564)
-
Toolchain upgrade (#554)
Thanks to all of the contributors that have participated in this release: arthurlutz, Florian Klink, Jakub Jirutka, Jonatan Steuernagel, Jonathan Davies, Kamil Banach, Max Justus Spransy, Quentin Dufour, Roberto Hidalgo, trinity-1686a, yuka.
Downloads
-
Source code (ZIP)
4 downloads
-
Source code (TAR.GZ)
4 downloads
-
Garage v0.8.2 Stable
released this
2023-03-13 17:50:07 +00:00 | 828 commits to main since this releaseThis minor release includes the following improvements and fixes:
CLI improvements:
- report available disk usage (#479, #487)
- improve
garage worker set
and implementgarage worker get
(#464) - clearer LMDB error message (#517, #519)
New features:
- secrets can be configured using separate files and environment varialbes (#466, #499)
- K2V PollRange (#471)
- added system metrics (#472, #524)
/check
web endpoint for domain verification by Caddy (#474, #491, #505)- log
X-Forwarded-For
header when available (#500, #504)
Bug fixes:
- PutObject: better cleanup when interrupted in the middle, to avoid accumulation of useless .tmp files (#462)
- scrub now has an interval of 25 + 10 random days to avoid scrubbing all nodes at once (#516, #523)
- fix duplicated content-type in error document (#493)
- fix an error message (#497)
- fix testing framework (#526, #528)
Internals / refactorings:
- unified queue for asynchronous table updates (#451)
- refactoring/simplification of background workers (#451, #463)
- refactoring of encoding/decoding functions and data migration code (#461)
- updated Cargo dependencies (#484, #494, #514)
Other:
- improvements to helm chart (#409, #425)
- improvements to documentation (#475, #477, #482, #485, #489, #496, #501, #505, #512, #513, #515)
Thanks to all of the contributors that have participated in this release: Baptiste Jonglez, Felix Scheiniost, Jonathan Davies, kaiyou, Maximilien Richer, Mike Coleman, Patrick Jahns, Quentin Dufour, teutat3s, wilson
Downloads
-
Source code (ZIP)
7 downloads
-
Source code (TAR.GZ)
3 downloads
-
Garage v0.8.1 Stable
released this
2023-01-02 13:57:47 +00:00 | 1023 commits to main since this releaseThis minor release includes a few improvements and fixes:
-
New
/health
and/v0/health
admin API endpoints to check node health (#440) -
Various CLI improvements, including new debug options for lost blocks (#448)
-
Properly enforce
allow_create_bucket
permission flag (#445, #447) -
Fix router keyword handling with non-empty value (#442, #446)
-
Fix logs appearing twice (#435)
-
Make Git repository into a Nix flake (#424)
-
Many documentation updates
Thanks to all of the contributors that have participated in this release: felix.scheinost, kaiyou, Maximilien R, Patrick Jahns, tompearson.
Downloads
-
Source code (ZIP)
4 downloads
-
Source code (TAR.GZ)
4 downloads
-
-
Garage v0.8.0 Stable
released this
2022-11-21 13:56:12 +00:00 | 1069 commits to main since this releaseThis release is the final version of Garage v0.8.0. Most changes have already been listed in the release notes of v0.8.0 RC1 and RC2. Here are the main highlights of v0.8.0 compared to v0.7.3:
-
LMDB is now officially supported as an alternative database engine to replace Sled
-
Bucket size monitoring and quotas
-
Many improvements to background maintenance tasks, including scheduled automatic scrub of the data store
-
Significant performance improvements
-
Our experimental K2V API is included in release builds (though not activated if you haven't configured it)
The following has changed since RC2:
-
Many documentation updates
-
OpenAPI specification of the Admin API (see https://garagehq.deuxfleurs.fr/api/garage-admin-v0.html for a rendered version)
-
Show a backtrace and a nice message when Garage panics
-
Added an experimental
garage bucket cleanup-unfinished-uploads
command to help remove unfinished multipart uploads when they take too much space.
There is one known bug for this release:
- #414: Panic during application of new cluster layout in 0.8.0-rc1. Please comment on the issue if you also had it, so that we know this is not an isolated case.
Thanks to all of the contributors that have participated in this new version since v0.7.3: Alex, chemicstry, Jakub Jirutka, Maximilien, Quentin, Simon C, Tobias Krischer, Zorun.
**Click here to get a binary release suited to your platform
Downloads
-
Source code (ZIP)
5 downloads
-
Source code (TAR.GZ)
2 downloads
-
-
Garage v0.8.0 RC2 Pre-release
released this
2022-11-05 11:40:57 +00:00 | 1105 commits to main since this releaseThis release is the second Release Candidate for Garage 0.8.0. Improvements in this version are the following:
-
Shutdown properly on SIGTERM/SIGHUP and on Windows signals (#396)
-
Fix time calculations that made Garage panic in extreme scenarios (#398, thanks to Zorun for the intensive testing)
-
Add Helm chart for running Garage inside of Kubernetes (#331, thanks chemicstry and Maximilien)
-
Upgraded build toolchain with Rust >= 1.63.0 (#400)
-
Admin API and K2V API: return HTTP 204 No Content when appropriate (#376, #403, thanks Tobias Krischer for the contribution)
-
Add support for talking to Consul through HTTPS (#405)
-
Many documentation updates
Thanks to all of the contributors for this release: Alex, chemicstry, Maximilien, Tobias Krischer, Zorun.
Click here to get a binary release suited to your platform (scroll down to "extra builds")
Downloads
-
Source code (ZIP)
3 downloads
-
Source code (TAR.GZ)
2 downloads
-
-
Garage v0.8.0 RC1 Pre-release
released this
2022-09-27 09:56:58 +00:00 | 1144 commits to main since this releaseThis release is the first Release Candidate for Garage 0.8. Improvements in this version are the following:
-
Ability to replace sled with lmdb or sqlite for the metadata storage (#284, #322)
-
K2V now included in official release builds, still as a technical
preview (the API is unstable and might be subject to changes) (#302) -
Update to Netapp 0.5 with streaming body; stream data blocks to client
as they are received (#343) -
Scrub is scheduled automatically, can be paused/resumed/made faster or
slower at runtime (#207, #255, #332) -
Background block resync can be made faster or slower at runtime (#369)
-
Many computationally-intensive tasks have been moved to dedicated
tokio threads for blocking tasks (#342) -
Reduce lock contention in block manager (#342)
-
Less sensitive timeouts for RPC operations, avoiding nodes
deconnecting or requests timing out on slow connections (#387) -
Cleaner and better optimized handling of byte chunks with the bytes
crate (#342, #343) -
Many improvements in build system; cargo features for everything (#370, #372, #373)
-
HTTP servers (S3 API, K2V API, Admin API) are no longer mandatory: by
removing the corresponding config section, they are simply not started (#354, #373) -
pretty_env_logger is replaced by tracing_subscriber::fmt
-
Fix the build version reported by the CLI (#328, #350, #352)
-
Avoid using/propagating broken cluster layouts (#363, #364, #380)
-
Allow for hostnames in bootstrap_peers and rpc_public_addr (#353, #383)
-
Some documentation updates (not finished yet)
Thanks to all of the contributors for this release: Alex, Quentin, Jakub Jirutka, Simon C.
Click here to get a binary release suited to your platform (scroll down to "extra builds")
Downloads
-
Source code (ZIP)
3 downloads
-
Source code (TAR.GZ)
3 downloads
-
-
Garage v0.7.3 Stable
released this
2022-08-30 09:10:36 +00:00 | 0 commits to dev0.7.3 since this releaseThis minor release includes a small number of fixes:
- The correct Garage version is now reported by
garage --version
- ARM and ARM64 builds now work
- The
Content-Type
header is now set correctly in all JSON responses in the Admin and K2V API endpoints
Warning. v0.7.3 is (unexpectedly) incompatible with v0.7.1. Make sure to update your entire cluster at once.
Downloads
-
Source code (ZIP)
3 downloads
-
Source code (TAR.GZ)
3 downloads
- The correct Garage version is now reported by