From 1677e11d323af312d89fdb1d91e990e32c864c9c Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Wed, 2 Sep 2026 23:55:19 -0700 Subject: [PATCH] Helm recipes: filer metadata on a claim through filer.data enablePVC is ignored once filer.data is set, which the chart's defaults always do, so the recipes rendered a hostPath for the filer store. Claims now use the cluster default storage class instead of local-path. Claude-Session: https://claude.ai/code/session_014apMEkkquAtAYp89paTkAT --- Helm-Chart-Recipes.md | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/Helm-Chart-Recipes.md b/Helm-Chart-Recipes.md index 3bebe88..0248ae0 100644 --- a/Helm-Chart-Recipes.md +++ b/Helm-Chart-Recipes.md @@ -20,8 +20,7 @@ global: master: replicas: 3 data: - type: persistentVolumeClaim - storageClass: local-path + type: persistentVolumeClaim # the cluster's default storage class; add storageClass to pick one size: 1Gi volume: @@ -29,15 +28,14 @@ volume: dataDirs: - name: data type: persistentVolumeClaim - storageClass: local-path size: 500Gi maxVolumes: 0 # size the volume count from the disk filer: replicas: 2 - enablePVC: true - storageClass: local-path - storage: 20Gi + data: + type: persistentVolumeClaim + size: 20Gi s3: enabled: true @@ -56,7 +54,8 @@ How the pieces fit: * `replicationPlacement` is three digits, `XYZ`: X extra copies in other data centers, Y in other racks of the same data center, Z on other servers of the same rack. Total copies are 1 + X + Y + Z, and you need at least that many volume servers in the matching places. Without rack or data center labels every volume server is in the same rack, so `001` needs two volume servers and `002` needs three. `enableReplication` sets both `master.defaultReplication` and `filer.defaultReplicaPlacement` to this value. See [[Replication]]. * `volume.replicas` is the number of volume server pods, one per node with the chart's default anti-affinity. It is independent of the replication digits except for the minimum above. * `maxVolumes: 0` lets each volume server compute how many volumes fit on its disk. The chart's master defaults to 1000MB volumes (`master.volumeSizeLimitMB`); raise it to `30000` for large disks with few buckets, keep it small when you expect many buckets, since each bucket grows its own volumes. -* Master data on a claim keeps the cluster identity when a master pod is rescheduled. The chart defaults to `hostPath`, which does not follow the pod. +* Master and filer data on claims keep the cluster identity and the metadata when a pod is rescheduled. The chart defaults both to `hostPath`, which does not follow the pod. The older `filer.enablePVC` key is ignored once `filer.data` is set, so use `filer.data`. +* Claims use the cluster's default storage class. Add `storageClass` under a `data` block or a `dataDirs` entry to choose another, for example `local-path` on k3s. * Two filers on the default LevelDB store [[sync with each other|Filer Store Replication]]. For three or more filers, or a lot of metadata, put the store in a database (next recipes). * `s3.enableAuth` with `s3.credentials` writes the identities into the S3 config secret; the `read` identity gets random keys unless you set it too. `createBuckets` runs once as a post-install hook. @@ -72,7 +71,7 @@ Expose it with `s3.ingress` or a `LoadBalancer` under `s3.service.type`. Grow th ## Single node for development -One of everything, on the cluster's default storage class, no authentication. +One of everything, no authentication. ```yaml master: @@ -88,8 +87,9 @@ volume: maxVolumes: 0 filer: - enablePVC: true - storage: 5Gi + data: + type: persistentVolumeClaim + size: 5Gi s3: enabled: true @@ -112,8 +112,7 @@ global: master: replicas: 3 data: - type: persistentVolumeClaim - storageClass: local-path + type: persistentVolumeClaim # the cluster's default storage class; add storageClass to pick one size: 1Gi volume: @@ -121,15 +120,14 @@ volume: dataDirs: - name: data type: persistentVolumeClaim - storageClass: local-path size: 500Gi maxVolumes: 0 filer: replicas: 2 - enablePVC: true - storageClass: local-path - storage: 20Gi + data: + type: persistentVolumeClaim + size: 20Gi s3: enabled: true @@ -180,7 +178,7 @@ s3: replicas: 3 ``` -The filer creates its table on first start. `WEED_LEVELDB2_ENABLED` must be turned off, since the chart enables it by default and two enabled stores is an error. The filers no longer need a claim, so `enablePVC` can stay off. +The filer creates its table on first start. `WEED_LEVELDB2_ENABLED` must be turned off, since the chart enables it by default and two enabled stores is an error. The filers no longer need a claim, so `filer.data` can stay at its default. ## Bare metal: node-local disks