You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@texera.apache.org by GitBox <gi...@apache.org> on 2026/09/14 15:19:31 UTC
[GH] (texera/imaxon/rustfs): Workflow run "Required Checks" is working again!
The GitHub Actions job "Required Checks" on texera.git/imaxon/rustfs has succeeded.
Run started by GitHub user parshimers (triggered by parshimers).
Head commit for run:
22ba4823a96db0d97f65139f76de0784412a25f6 / Ian Maxon <im...@apache.org>
feat(deploy): replace MinIO with RustFS as the object store
MinIO's images are gone: `minio/minio` and `minio/mc` 404 on Docker Hub, and
every `dl.min.io` binary path returns 410 Gone. That breaks three things on
main today — the single-node compose stack, the CI jobs that start an object
store, and the k8s lakekeeper-init job, which fetches `mc` from `dl.min.io`
at run time.
Swap in RustFS (Apache-2.0, S3-compatible) everywhere:
- single-node compose: `rustfs` + `rustfs-init` services, `RUSTFS_PORT`,
`texera-rustfs` hostname, `rc` (RustFS's `mc` equivalent) for bucket setup.
- Helm chart: the bitnami `minio` subchart becomes the upstream `rustfs`
chart, pinned to the same appVersion as the image. The service is
`<release>-rustfs-svc` and the credentials Secret `<release>-rustfs-secret`
with `RUSTFS_ACCESS_KEY`/`RUSTFS_SECRET_KEY` keys, so `_helpers.tpl` is
retargeted. lakekeeper-init creates its bucket from an `rc` init container
instead of downloading `mc`.
- Tests: `RustFSContainer` replaces testcontainers-scala's `MinIOContainer`
(no RustFS module exists), built on `GenericContainer` with the
`RUSTFS_ACCESS_KEY` credentials and the `/health` readiness probe.
One real behavioral difference surfaced. `AbortMultipartUpload` on an unknown
upload id is `NoSuchUpload` in the S3 API, and RustFS returns it; MinIO
answered such an abort with success. LakeFS wraps the backend's 404 in a 500,
so `StagedFileCleanupJob`'s existing 404 catch — written for this case but
never exercised under MinIO — no longer covers it. `isAlreadyAborted` now also
matches a 500 carrying `NoSuchUpload`, narrowly, so any other server error
still rolls the transaction back and retries next round.
Migration note: the object store's on-disk format is not shared, and the
volume/claim names change (`minio_data` -> `rustfs_data`, `minio-data-pvc` ->
`rustfs-data-pvc`). Existing deployments must copy their data across with an
S3 client; there is no in-place upgrade.
Co-Authored-By: Claude Opus 5 <no...@anthropic.com>
Report URL: https://github.com/apache/texera/actions/runs/34859248889
With regards,
GitHub Actions via GitBox