garage: compressionLevel is disabled with "none", not with 0

The first version of the values table repeated a claim that was wrong in the
chart's own comment: 0 does not switch compression off. Garage takes an integer
or the literal "none", and 0 is a valid integer that zstd reads as its default
level (3) - more compression than 1, not none.
jklein committed 2026-10-03 20:41:09 +00:00
1 parent 1b22eac8db
commit 11b55d0a62
1 file changed
+1 -1
+1 -1
@@ -183,7 +183,7 @@ kubectl -n garage exec garage-garage-sfs-0 -- \
| `garage.dataFsync` | bool | `false` | Garage's default. A lost block is one object and is replaceable; a lost metadata write can take the index with it. Turning it on costs an `fsync` per written block. |
| `garage.metadataAutoSnapshotInterval` | string | `"6h"` | Go-style duration. **The only consistent recovery point this deployment has.** An empty string is rejected by the schema; `null` falls back to the default, because switching the snapshots off is not a configuration this chart offers at factor 1. See [the window](#the-restore-window-is-two-snapshots-wide). |
| `garage.blockSize` | string | `"1M"` | Chunk size objects are split into. |
| `garage.compressionLevel` | int | `1` | zstd level for stored blocks; `0` disables compression. |
| `garage.compressionLevel` | int or `"none"` | `1` | zstd level for stored blocks; negative values are zstd's fast modes. **To switch compression off, write the string `"none"` — not `0`.** Garage accepts an integer or the literal `"none"`, and `0` is a valid integer that zstd reads as *its* default level (3), i.e. **more** compression than `1`, not none. The schema rejects any other string, and the ConfigMap quotes the `"none"` form so the rendered TOML stays valid. |
| `garage.bindAddress` | string | `"[::]"` | Host part of the S3, web and RPC listeners. Accepts IPv4 as well while `net.ipv6.bindv6only` is `0` — the Linux default, but a node sysctl the chart cannot see. |
| `garage.adminBindAddress` | string | `"0.0.0.0"` | Host part of the **admin** listener, separate on purpose: all three probes use this port, and a probe that cannot connect would be a pod that never becomes Ready for a reason nothing in the manifest shows. On an IPv6-only cluster set `"[::]"`. |
| `garage.ports.s3` / `.rpc` / `.web` / `.admin` | int | `3900` / `3901` / `3902` / `3903` | In **one** place: the ConfigMap renders them into `garage.toml`'s bind addresses and the StatefulSet renders them as `containerPort`s. The probes address the admin port by **name**, so they follow a change here. |