Repository navigation
Description
Currently, the Tenant chart only exposes seaweedfs as a boolean toggle:
# values.schema.json
"seaweedfs": { "type": "boolean", "default": false }
The generated HelmRelease in templates/seaweedfs.yaml has no spec.values - all configuration comes from the cozystack-values Secret, which provides no way to customize per-tenant SeaweedFS resources.
Problem:
Under heavy load, the SeaweedFS S3 gateway gets OOM-killed at the default small resource preset (512Mi / 1 CPU). The volume servers also restart under sustained write pressure. There is no supported way to increase resources without manually patching the generated HelmRelease and suspending the parent Tenant reconciliation.
The packages/extra/seaweedfs chart already supports per-component resource overrides:
s3:
replicas: 2
resources:
cpu: "2"
memory: "2Gi"
resourcesPreset: "small" # nano | micro | small | medium | large | xlarge | 2xlarge
However, these values are not accessible from the Tenant chart.
Proposed solution:
Change seaweedfs in the Tenant values schema from a boolean to an object with backward-compatible behavior:
# values.schema.json
"seaweedfs": {
"description": "Deploy own SeaweedFS.",
"oneOf": [
{ "type": "boolean" },
{
"type": "object",
"properties": {
"s3": { "$ref": "#/$defs/componentResources" },
"volume": { "$ref": "#/$defs/componentResources" },
"filer": { "$ref": "#/$defs/componentResources" },
"master": { "$ref": "#/$defs/componentResources" }
}
}
]
}
And pass any nested values through to the SeaweedFS HelmRelease in templates/seaweedfs.yaml:
{{- if .Values.seaweedfs }}
spec:
{{- if kindIs "map" .Values.seaweedfs }}
values:
{{- toYaml .Values.seaweedfs | nindent 4 }}
{{- end }}
valuesFrom:
- kind: Secret
name: cozystack-values
{{- end }}
Backward compatible, boolean still works:
seaweedfs: true
Or with resource overrides
seaweedfs:
s3:
resources:
cpu: "2"
memory: "2Gi"
volume:
resourcesPreset: "medium"
Environment:
Cozystack version: 0.41.4
SeaweedFS chart: 4.0.405
S3 gateway default resources: 512Mi memory, 1 CPU (from upstream chart defaults)
Activity
kinseii commentedon Feb 13, 2026
Another problem is that it is currently impossible to redefine the size of s3 volumes. The default size is 20 GB.
kvaps commentedon Feb 18, 2026
Hey, Petr Dondukov (@kinseii) you should be able to update values in seaweedfs application after it get deployed.
Is that mechanism not working for you?
kinseii commentedon Feb 18, 2026
Hi! Do you mean update values via HR?
dvc commentedon Apr 29, 2026
Hi! I found 2 missed parameters:
dosubot commentedon Jul 29, 2026
Hi, Petr Dondukov (@kinseii). I'm Dosu, and I'm helping the cozystack team manage their backlog and am marking this issue as stale.
Recap
seaweedfsoption support an object form, not just a boolean, so SeaweedFS component resources can be overridden per deployment.s3,volume,filer, andmasterresource settings through to the SeaweedFS HelmRelease.filer.replicasands3.replicas.Next Steps
Thanks for your understanding and contribution.