Replace MinIO with RustFS for artifact storage - #308
Conversation
Swap the Kubernetes object store to standalone RustFS while keeping the S3-compatible client in the file service. Path-style access is required so Caddy can keep proxying /file-uploads to the storage service. Co-authored-by: Max Schmitt <max@schmitt.mx>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 43b9866083
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| io.kompose.service: rustfs | ||
| name: rustfs |
There was a problem hiding this comment.
Clean up MinIO during the RustFS migration
On an existing checkout that has already run k8/generate.sh, k8/generated-minio-deployment.yaml is ignored by Git and remains after pulling this change. The generator only removes output files corresponding to templates that still exist, so the deleted MinIO template's output is never cleaned and the documented kubectl apply -f k8/ deploys MinIO alongside RustFS; existing live MinIO resources are not explicitly removed either. Add upgrade cleanup for the stale generated manifest and deployed MinIO resources.
Useful? React with 👍 / 👎.
generate.sh now deletes generated YAML whose templates no longer exist, so an old generated-minio-deployment.yaml cannot be applied next to RustFS. The setup docs and CI also delete the MinIO Deployment/Service. Co-authored-by: Max Schmitt <max@schmitt.mx>
Replaces the MinIO object store with RustFS, an S3-compatible store, for screenshots, videos, and other worker artifacts.
Changes
minioDeployment/Service are now a standalonerustfsDeployment/Service usingrustfs/rustfs:1.0.0-rc.5.S3_ENDPOINT/S3_ACCESS_KEY/S3_SECRET_KEYand forces path-style bucket URLs so Caddy can keep proxying/file-uploads/*.RUSTFS_ACCESS_KEYandRUSTFS_SECRET_KEYinstead ofMINIO_ROOT_USER/MINIO_ROOT_PASSWORD.minio-goclient stays in place as the S3 SDK; only the server was replaced.k8/generate.shdeletes generated YAML whose templates no longer exist, so leftovergenerated-minio-*.yamlfiles are not applied next to RustFS.Breaking setup change
Hosts that generate manifests need:
instead of
MINIO_ROOT_USER/MINIO_ROOT_PASSWORD.Existing clusters should also remove MinIO:
Testing
go test ./...andgo build ./...1.0.0-rc.5process: bucket create, lifecycle rule, PNG upload, path-style presigned GET, and rejected non-image uploadsk8/generate.shrenders the RustFS Deployment/Service, file-service S3 env vars, and removes stale generated MinIO manifests