Skip to main content

Garage (Planned)

Planned, registry-ready

Garage is not yet bundled as a sub-chart of helm_aio. The provider registry under objectStorage.providers already accommodates it, so an operator can wire Garage in today through the Add a New Provider procedure. Native bundled support, alongside an automated bucket-init Job and a tested end-to-end migration path, is on the Ilum roadmap.

Overview

Garage is an Apache-2.0 S3-compatible distributed object store written in Rust. It is designed for geo-distributed deployments with modest hardware footprints. The upstream project lives at git.deuxfleurs.fr/Deuxfleurs/garage.

PropertyValue
LicenseAGPL-3.0 (per upstream Cargo.toml)
Status in IlumPlanned (registry-ready)
Bundled chartNot yet shipped
Bundled imageNot yet shipped
Default in helm_aioDisabled
Upstream versionv2.1.0 and earlier stable releases (in production at Deuxfleurs since 2020)
Distributed modeNative; intended use case
Console UXNative admin UI; integration with the Ilum Object Storage iframe is on the roadmap
OIDC integrationNot yet evaluated against Garage

Supported S3 surface

The upstream documentation enumerates supported S3 operations under Reference manual: S3 compatibility. The headline coverage relevant to Ilum workloads is:

  • Object operations: GetObject, PutObject, DeleteObject, CopyObject, HeadObject.
  • Listing: ListObjects, ListObjectsV2 with pagination.
  • Multipart upload: CreateMultipartUpload, UploadPart, CompleteMultipartUpload, and related endpoints.
  • Bucket operations: CreateBucket, DeleteBucket, HeadBucket, ListBuckets, GetBucketLocation.
  • Presigned URLs and CORS configuration.
  • Lifecycle is partially supported (only AbortIncompleteMultipartUpload and Expiration actions).

Operators evaluating Garage for Ilum workloads should be aware of the following upstream gaps:

  • Bucket policies and ACLs are not implemented. Access is managed through Garage's per-access-key-per-bucket logic instead.
  • Object versioning is not yet supported.
  • Object tagging is not implemented.
  • Server-side encryption (SSE-C, SSE-S3, SSE-KMS) is not supported.
  • Replication, notifications, analytics, and inventory are not supported.
  • Only SigV4 is supported. Legacy SigV2 is not implemented.

When this provider will be a good fit

  • Geo-distributed deployments where erasure coding across heterogeneous hardware is required.
  • Edge or homelab deployments that want a small, predictable resource footprint without sacrificing distribution.
  • Air-gapped clusters that want a permissively licensed, Rust-native storage layer with broader distributed-mode maturity than the current bundled RustFS alpha.

Provisional registry entry

When Ilum ships bundled Garage support, the registry entry will look approximately like the snippet below. Operators wiring Garage in today through Add a New Provider can use this as a starting point.

objectStorage:
providers:
garage:
enabled: true
consolePath: /external/garage/
consoleMode: nginx-rewrite

Reference