Compare commits

...

13 commits
v1.1.0 ... main

Author SHA1 Message Date
14d2f2b18d Merge pull request 'update cargo dependencies' (#992) from update-deps into main
Some checks failed
ci/woodpecker/push/debug Pipeline was successful
ci/woodpecker/cron/debug Pipeline failed
ci/woodpecker/cron/release/3 Pipeline was successful
ci/woodpecker/cron/release/4 Pipeline was successful
ci/woodpecker/cron/release/2 Pipeline was successful
ci/woodpecker/cron/release/1 Pipeline was successful
ci/woodpecker/cron/publish Pipeline was successful
Reviewed-on: #992
2025-03-21 09:06:06 +00:00
a7d845a999 change aws-sdk features to avoid using aws-lc which doesn't compile on i686/arm
All checks were successful
ci/woodpecker/pr/debug Pipeline was successful
ci/woodpecker/push/debug Pipeline was successful
ci/woodpecker/deployment/debug Pipeline was successful
ci/woodpecker/deployment/release/3 Pipeline was successful
ci/woodpecker/deployment/release/2 Pipeline was successful
ci/woodpecker/deployment/release/1 Pipeline was successful
ci/woodpecker/deployment/release/4 Pipeline was successful
ci/woodpecker/deployment/publish Pipeline was successful
2025-03-20 17:05:43 +01:00
dd20e5d22a update cargo dependencies
Some checks failed
ci/woodpecker/push/debug Pipeline was successful
ci/woodpecker/pr/debug Pipeline was successful
ci/woodpecker/deployment/release/2 Pipeline failed
ci/woodpecker/deployment/debug Pipeline was successful
ci/woodpecker/deployment/release/4 Pipeline failed
ci/woodpecker/deployment/publish unknown status
ci/woodpecker/deployment/release/3 Pipeline failed
ci/woodpecker/deployment/release/1 Pipeline failed
2025-03-20 13:36:01 +01:00
6906a4ff12 Merge pull request 'doc: add instructions on how to increase PVC size' (#987) from Joker9944/garage:main into main
All checks were successful
ci/woodpecker/push/debug Pipeline was successful
ci/woodpecker/cron/debug Pipeline was successful
ci/woodpecker/cron/release/1 Pipeline was successful
ci/woodpecker/cron/release/2 Pipeline was successful
ci/woodpecker/cron/release/3 Pipeline was successful
ci/woodpecker/cron/release/4 Pipeline was successful
ci/woodpecker/cron/publish Pipeline was successful
Reviewed-on: #987
Reviewed-by: maximilien <me@mricher.fr>
2025-03-17 20:32:31 +00:00
Joker9944
9053782d71
doc: add instructions on how to increase PVC size
Some checks are pending
ci/woodpecker/pr/debug Pipeline is pending approval
2025-03-15 00:32:18 +01:00
c96be1a9a8 Merge pull request 'doc/upgrading: slightly more precise wording' (#981) from Armael/garage:doc-upgrading into main
All checks were successful
ci/woodpecker/push/debug Pipeline was successful
ci/woodpecker/cron/debug Pipeline was successful
ci/woodpecker/cron/release/1 Pipeline was successful
ci/woodpecker/cron/release/3 Pipeline was successful
ci/woodpecker/cron/release/4 Pipeline was successful
ci/woodpecker/cron/release/2 Pipeline was successful
ci/woodpecker/cron/publish Pipeline was successful
Reviewed-on: #981
2025-03-07 15:16:24 +00:00
98e56490a1 Merge pull request 'helm-chart: Fix headless service' (#976) from babykart/garage:headless-svc into main
All checks were successful
ci/woodpecker/push/debug Pipeline was successful
Reviewed-on: #976
2025-03-07 12:17:20 +00:00
Armaël Guéneau
e791ccec8f doc/upgrading: slightly more precise wording
All checks were successful
ci/woodpecker/pr/debug Pipeline was successful
2025-03-07 12:27:21 +01:00
d605c4fed1 Explicitely set ClusterIP on headless service type
All checks were successful
ci/woodpecker/pr/debug Pipeline was successful
Signed-off-by: maximilien <maximilien@deuxfleurs.fr>
2025-03-07 09:17:05 +00:00
0ce5f7eb00
helm-chart: Fix headless service
All checks were successful
ci/woodpecker/pr/debug Pipeline was successful
Signed-off-by: babykart <babykart@gmail.com>
2025-03-05 20:26:12 +01:00
516255321f Merge pull request 'doc: fix version number in quick start' (#974) from fix-quickstart into main
All checks were successful
ci/woodpecker/push/debug Pipeline was successful
ci/woodpecker/cron/debug Pipeline was successful
ci/woodpecker/cron/release/1 Pipeline was successful
ci/woodpecker/cron/release/3 Pipeline was successful
ci/woodpecker/cron/release/4 Pipeline was successful
ci/woodpecker/cron/release/2 Pipeline was successful
ci/woodpecker/cron/publish Pipeline was successful
Reviewed-on: #974
2025-03-05 11:07:27 +00:00
f3b05ff771 doc: fix version number in quick start
All checks were successful
ci/woodpecker/push/debug Pipeline was successful
ci/woodpecker/pr/debug Pipeline was successful
2025-03-05 12:06:05 +01:00
e254cc20e5 Merge pull request 'Garage v1.1.0' (#968) from rel-1.1 into main
All checks were successful
ci/woodpecker/push/debug Pipeline was successful
Reviewed-on: #968
2025-03-05 10:56:34 +00:00
7 changed files with 540 additions and 525 deletions

987
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -132,8 +132,8 @@ opentelemetry-contrib = "0.9"
prometheus = "0.13" prometheus = "0.13"
# used by the k2v-client crate only # used by the k2v-client crate only
aws-sigv4 = { version = "1.1" } aws-sigv4 = { version = "1.1", default-features = false }
hyper-rustls = { version = "0.26", features = ["http2"] } hyper-rustls = { version = "0.26", default-features = false, features = ["http1", "http2", "ring", "rustls-native-certs"] }
log = "0.4" log = "0.4"
thiserror = "1.0" thiserror = "1.0"
@ -141,8 +141,9 @@ thiserror = "1.0"
assert-json-diff = "2.0" assert-json-diff = "2.0"
rustc_version = "0.4.0" rustc_version = "0.4.0"
static_init = "1.0" static_init = "1.0"
aws-sdk-config = "1.62" aws-smithy-runtime = { version = "1.8", default-features = false, features = ["tls-rustls"] }
aws-sdk-s3 = "=1.68" aws-sdk-config = { version = "1.62", default-features = false }
aws-sdk-s3 = { version = "1.79", default-features = false, features = ["rt-tokio"] }
[profile.dev] [profile.dev]
#lto = "thin" # disabled for now, adds 2-4 min to each CI build #lto = "thin" # disabled for now, adds 2-4 min to each CI build

View file

@ -86,3 +86,62 @@ helm delete --namespace garage garage
``` ```
Note that this will leave behind custom CRD `garagenodes.deuxfleurs.fr`, which must be removed manually if desired. Note that this will leave behind custom CRD `garagenodes.deuxfleurs.fr`, which must be removed manually if desired.
## Increase PVC size on running Garage instances
Since the Garage Helm chart creates the data and meta PVC based on `StatefulSet` templates, increasing the PVC size can be a bit tricky.
### Confirm the `StorageClass` used for Garage supports volume expansion
Confirm the storage class used for garage.
```bash
kubectl -n garage get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
data-garage-0 Bound pvc-080360c9-8ce3-4acf-8579-1701e57b7f3f 30Gi RWO longhorn-local <unset> 77d
data-garage-1 Bound pvc-ab8ba697-6030-4fc7-ab3c-0d6df9e3dbc0 30Gi RWO longhorn-local <unset> 5d8h
data-garage-2 Bound pvc-3ab37551-0231-4604-986d-136d0fd950ec 30Gi RWO longhorn-local <unset> 5d5h
meta-garage-0 Bound pvc-3b457302-3023-4169-846e-c928c5f2ea65 3Gi RWO longhorn-local <unset> 77d
meta-garage-1 Bound pvc-49ace2b9-5c85-42df-9247-51c4cf64b460 3Gi RWO longhorn-local <unset> 5d8h
meta-garage-2 Bound pvc-99e2e50f-42b4-4128-ae2f-b52629259723 3Gi RWO longhorn-local <unset> 5d5h
```
In this case, the storage class is `longhorn-local`. Now, check if `ALLOWVOLUMEEXPANSION` is true for the used `StorageClass`.
```bash
kubectl get storageclasses.storage.k8s.io longhorn-local
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
longhorn-local driver.longhorn.io Delete Immediate true 103d
```
If your `StorageClass` does not support volume expansion, double check if you can enable it. Otherwise, your only real option is to spin up a new Garage cluster with increased size and migrate all data over.
If your `StorageClass` supports expansion, you are free to continue.
### Increase the size of the PVCs
Increase the size of all PVCs to your desired size.
```bash
kubectl -n garage edit pvc data-garage-0
kubectl -n garage edit pvc data-garage-1
kubectl -n garage edit pvc data-garage-2
kubectl -n garage edit pvc meta-garage-0
kubectl -n garage edit pvc meta-garage-1
kubectl -n garage edit pvc meta-garage-2
```
### Increase the size of the `StatefulSet` PVC template
This is an optional step, but if not done, future instances of Garage will be created with the original size from the template.
```bash
kubectl -n garage delete sts --cascade=orphan garage
statefulset.apps "garage" deleted
```
This will remove the Garage `StatefulSet` but leave the pods running. It may seem destructive but needs to be done this way since edits to the size of PVC templates are prohibited.
### Redeploy the `StatefulSet`
Now the size of future PVCs can be increased, and the Garage Helm chart can be upgraded. The new `StatefulSet` should take ownership of the orphaned pods again.

View file

@ -71,7 +71,7 @@ The entire procedure would look something like this:
2. Take each node offline individually to back up its metadata folder, bring them back online once the backup is done. 2. Take each node offline individually to back up its metadata folder, bring them back online once the backup is done.
You can do all of the nodes in a single zone at once as that won't impact global cluster availability. You can do all of the nodes in a single zone at once as that won't impact global cluster availability.
Do not try to make a backup of the metadata folder of a running node. Do not try to manually copy the metadata folder of a running node.
**Since Garage v0.9.4,** you can use the `garage meta snapshot --all` command **Since Garage v0.9.4,** you can use the `garage meta snapshot --all` command
to take a simultaneous snapshot of the metadata database files of all your to take a simultaneous snapshot of the metadata database files of all your

View file

@ -132,7 +132,7 @@ docker run \
-v /etc/garage.toml:/path/to/garage.toml \ -v /etc/garage.toml:/path/to/garage.toml \
-v /var/lib/garage/meta:/path/to/garage/meta \ -v /var/lib/garage/meta:/path/to/garage/meta \
-v /var/lib/garage/data:/path/to/garage/data \ -v /var/lib/garage/data:/path/to/garage/data \
dxflrs/garage:v0.9.4 dxflrs/garage:v1.1.0
``` ```
Under Linux, you can substitute `--network host` for `-p 3900:3900 -p 3901:3901 -p 3902:3902 -p 3903:3903` Under Linux, you can substitute `--network host` for `-p 3900:3900 -p 3901:3901 -p 3902:3902 -p 3903:3903`

View file

@ -6,7 +6,8 @@ metadata:
labels: labels:
{{- include "garage.labels" . | nindent 4 }} {{- include "garage.labels" . | nindent 4 }}
spec: spec:
type: {{ .Values.service.type }} type: ClusterIP
clusterIP: None
ports: ports:
- port: {{ .Values.service.s3.api.port }} - port: {{ .Values.service.s3.api.port }}
targetPort: 3900 targetPort: 3900

View file

@ -62,6 +62,7 @@ syslog-tracing = { workspace = true, optional = true }
garage_api_common.workspace = true garage_api_common.workspace = true
aws-sdk-s3.workspace = true aws-sdk-s3.workspace = true
aws-smithy-runtime.workspace = true
chrono.workspace = true chrono.workspace = true
http.workspace = true http.workspace = true
hmac.workspace = true hmac.workspace = true