Compare commits

...
Sign in to create a new pull request.

2 commits

Author SHA1 Message Date
IvanHunters
355fd1de0d feat(seaweedfs): add timeout and buffering annotations to tenant ingress
Align tenant SeaweedFS S3 ingress annotations with system configuration
by adding proxy buffering, request buffering, and timeout settings.
This ensures consistent handling of large file uploads and prevents
connection timeout issues for tenant buckets.

Changes:
- Add proxy-buffering and proxy-request-buffering annotations
- Add proxy-read-timeout, proxy-send-timeout timeouts (3600s)
- Add client-body-timeout and client-header-timeout settings
- Add service-upstream annotation for load balancing

Signed-off-by: IvanHunters <xorokhotnikov@gmail.com>
2026-04-17 12:39:56 +03:00
IvanHunters
36814f688a feat(seaweedfs): limit single PUT request size to 5GB
Add nginx ingress annotation to limit single PUT request body size to 5GB
for both system and tenant SeaweedFS S3 endpoints. This enforces the use
of S3 multipart upload API for files larger than 5GB, which prevents
issues commonly seen with large monolithic uploads and reduces support load.

Changes:
- Set proxy-body-size to "5g" in system seaweedfs values.yaml
- Set proxy-body-size to "5g" in tenant seaweedfs template
- Add explanatory comments for the limitation

Signed-off-by: IvanHunters <xorokhotnikov@gmail.com>
2026-04-16 22:54:20 +03:00
2 changed files with 15 additions and 2 deletions

View file

@ -240,8 +240,18 @@ spec:
className: {{ $ingress }}
host: {{ .Values.host | default (printf "s3.%s" $host) }}
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "0"
# Limit single PUT request to 5GB to enforce multipart uploads for large files.
# This prevents issues with large file uploads and reduces support load.
# For files >5GB, clients must use S3 multipart upload API.
nginx.ingress.kubernetes.io/proxy-body-size: "5g"
nginx.ingress.kubernetes.io/proxy-buffering: "off"
nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
nginx.ingress.kubernetes.io/client-body-timeout: "3600"
nginx.ingress.kubernetes.io/client-header-timeout: "120"
nginx.ingress.kubernetes.io/service-upstream: "true"
{{- if eq $solver "http01" }}
acme.cert-manager.io/http01-ingress-class: {{ $ingress }}
{{- end }}

View file

@ -102,7 +102,10 @@ seaweedfs:
className: "tenant-root"
host: "seaweedfs.demo.cozystack.io"
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "0"
# Limit single PUT request to 5GB to enforce multipart uploads for large files.
# This prevents issues with large file uploads and reduces support load.
# For files >5GB, clients must use S3 multipart upload API.
nginx.ingress.kubernetes.io/proxy-body-size: "5g"
nginx.ingress.kubernetes.io/proxy-buffering: "off"
nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"