Repository navigation
docs: pin RustFS to 1.0.1 and fix the sample RustFS setup [ENG-1745] - #58
Merged
Merged
Conversation
helm install from charts.rustfs.com without --version installs the newest chart, so the RustFS a developer gets depends on the day they follow the guide. The chart sets the image tag from its appVersion, so --version 1.0.1 pins rustfs/rustfs:1.0.1, the version the Docker Compose setup ships and the first one here that enforces bucket lifecycle rules. Verified on kind: chart 1.0.1 with samples/rustfs-helm-config.yaml rolls out, and a past-dated expiry rule deletes objects under its prefix within 5 seconds while an object outside it stays. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
minio/mc is no longer on Docker Hub, so the bucket Job failed with ImagePullBackOff and kubectl wait timed out. amazon/aws-cli:2.32.31 is the image the Docker Compose rustfs-init uses, and its s3api covers the lifecycle configuration the app-content bucket needs. head-bucket before mb keeps the Job safe to re-apply without hiding a failed create the way `mb || true` would. The wait timeout is 120s because the first run pulls a larger image. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
RustFS 1.0 sends no CORS headers unless RUSTFS_CORS_ALLOWED_ORIGINS or a bucket CORS rule is set, and neither sample ingress adds them. The dashboard's stdout and attachment previews and trace.playwright.dev fetch objects from the browser, so they fail against a RustFS installed from these samples. Anyone who followed the unpinned guide since chart 1.0.1 was published on 2026-10-03 already has this problem. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The MinIO-to-RustFS swap renamed the MinIO service references to rustfs, but the RustFS chart names its service rustfs-svc. Nothing resolves `rustfs`, so with the samples as written: - internalEndpoint http://rustfs fails every write the writer makes through the internal endpoint. Step uploads log `getaddrinfo ENOTFOUND rustfs` and give up after three attempts; the dashboard keeps showing steps only until the Redis cache expires. - the EKS ingress backend `rustfs` has no service to route to, and every presigned artifact URL goes through that ingress. Verified on Docker Desktop with samples/local/chart-config.yaml and the staging images: with http://rustfs-svc:9000 both step uploads for a recorded run log "upload successful" and land under steps/ in the bucket. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 tasks done
twk3
marked this pull request as ready for review
October 9, 2026 19:49
Contributor
Author
|
Baz full review |
|
| Topic | Details | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Kubernetes RustFS flow | Pin RustFS setup to 1.0.1, configure browser-accessible CORS, and point EKS and local object storage at the chart’s rustfs-svc service.Modified files (6)
Latest Contributors(2)
| |||||||||
| Bucket initialization | Replace the unavailable minio/mc image with amazon/aws-cli:2.32.31 and make bucket creation safely repeatable with head-bucket before creation.Modified files (2)
Latest Contributors(2)
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pins the in-cluster RustFS in the developer guide and EKS docs to
1.0.1, and fixes three problems that stop the sample RustFS setup from working (ENG-1745). Docs and samples only; the chart is unchanged.Changes
helm install rustfs rustfs --repo https://charts.rustfs.comhad no--version, so the RustFS a developer got depended on the day they followed the guide. Both guides now pass--version 1.0.1. The chart sets the image tag from itsappVersion, so this pinsrustfs/rustfs:1.0.1, the version the Docker Compose setup ships and the first that enforces bucket lifecycle rules.minio/mcis no longer on Docker Hub, so the bucket Job sat inImagePullBackOffandkubectl waittimed out. The Job usesamazon/aws-cli:2.32.31, the image Compose'srustfs-inituses; itss3apialso covers the lifecycle configuration ENG-1738 adds to this Job.head-bucketbeforembkeeps the Job safe to re-apply without hiding a failed create. The wait timeout is 120s because the first run pulls a larger image.RUSTFS_CORS_ALLOWED_ORIGINSor a bucket CORS rule is set, and neither sample ingress adds them. The values sample and its copy indocs/eks/dependencies.mdsetRUSTFS_CORS_ALLOWED_ORIGINS: "*"throughextraEnv. Anyone who followed the unpinned guide since chart 1.0.1 was published on 2026-10-03 already has this problem.rustfs-svc. The MinIO-to-RustFS swap renamedminiotorustfs, but the RustFS chart names its servicerustfs-svc(true back to chart 0.0.68).internalEndpoint: http://rustfsmade the writer's step uploads fail withgetaddrinfo ENOTFOUND rustfs; the dashboard only shows those steps until the Redis cache expires. The EKS ingress backendrustfshas no service to route to. Both now userustfs-svc(http://rustfs-svc:9000for the endpoint).Testing
Followed
docs/developer-guide/README.mdon Docker Desktop Kubernetes in a separate namespace, with thestagingimages:samples/rustfs-helm-config.yaml, the pod runsrustfs/rustfs:1.0.1with the CORS variable, and the bucket Job completes in 20s; a second apply is a no-op.rustfs.localhostingress: a presigned GET and its preflight returnaccess-control-allow-origin: *, and a past-dated expiry rule deletes objects under its prefix within 5 seconds while an object outside it stays.samples/local/chart-config.yaml. WithinternalEndpoint: http://rustfsthe step uploads failed withENOTFOUND rustfs; withhttp://rustfs-svc:9000both logupload successfuland land understeps/in the bucket. All other artifacts upload, and the screenshot, steps, stdout and trace (on trace.playwright.dev) render in the dashboard.Two deviations from the guide, both because of the local environment rather than the docs: the ingress class was renamed to avoid a leftover cluster-scoped
currents-nginxIngressClass, and the Currents images were imported into the node because Docker Desktop's built-in registry mirror truncates ECR manifest responses.Not tested: the EKS ingress (no EKS cluster), beyond the service name matching what the chart creates.
Related
🤖 Generated with Claude Code