Skip to content

Add garage 0.9.3 community pack (S3-compatible object store)#269

Open
3pings wants to merge 1 commit into
mainfrom
garage-0.9.3
Open

Add garage 0.9.3 community pack (S3-compatible object store)#269
3pings wants to merge 1 commit into
mainfrom
garage-0.9.3

Conversation

@3pings

@3pings 3pings commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Adds a community pack for Garage, a lightweight S3-compatible distributed object store from Deuxfleurs.

Garage targets self-hosted, geo-distributed deployments on commodity hardware — it tolerates high-latency links between nodes and needs no dedicated storage network, which makes it a reasonable fit for edge clusters and small on-prem footprints where Ceph or MinIO would be heavier than warranted.

Contents

  • Upstream Helm chart 0.9.3 (app v2.3.0), committed both packaged and unpacked per repo convention
  • pack.jsonsystem app / addon layer, cloudTypes: all, community contributor annotation
  • values.yaml — deploys to the garage namespace, 3-replica StatefulSet, Kubernetes-based peer discovery (no bootstrap peer list needed)
  • README.md — pack-oriented docs: prerequisites, curated parameter table, storage sizing, usage, post-install, monitoring, uninstall

Notes for reviewers

  • Layout assignment is a required manual post-install step. A freshly deployed Garage cluster has no layout, which means zero usable capacity and rejected S3 operations, until garage layout assign and garage layout apply are run against each node. This is upstream behavior, not a packaging gap — the README calls it out up front with the full command sequence.
  • The chart's 100Mi default volumes are upstream placeholders and are not usable for real workloads. Since StatefulSet volumeClaimTemplates are immutable, getting this wrong means an orphan-and-recreate to fix, so the README flags both sizes as must-change rather than optional.
  • Cluster-scoped resources: the chart installs the garagenodes.deuxfleurs.fr CRD and a ClusterRole for peer discovery. garage.kubernetesSkipCrd is documented as the escape hatch for namespace-restricted tenants.
  • Neither the CRD nor the PVCs are cleaned up on uninstall; documented so operators aren't surprised.

One thing worth a smoke test: the chart does not override the container entrypoint, so the README uses the upstream cookbook's ./garage invocation form for kubectl exec. I verified this against upstream docs rather than against a running pod.

🤖 Generated with Claude Code

Garage is a lightweight, S3-compatible distributed object store aimed at
self-hosted, geo-distributed deployments. Packages the upstream Helm chart
0.9.3 (app v2.3.0) with Kubernetes-based peer discovery enabled.

The README documents the manual layout assignment required post-install --
a Garage cluster has zero usable capacity and rejects all S3 operations
until `layout assign` and `layout apply` are run against each node.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant