Repository navigation
Infra: Standardize RustFS setup across Iceberg repos - #4017
kevinjqliu wants to merge 2 commits into
Conversation
Use /health/ready so bucket creation waits for storage/IAM readiness, enable stdout logging so `docker logs` shows output, and remove settings that are already defaults in rustfs/rustfs:1.0.0. Generated-by: GitHub Copilot Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
No unresolved issues were identified.
Review effort: Lite
Findings: None
What changed in this PR
Updates RustFS Docker Compose configurations to use readiness checks, stdout logging, and default settings.
Changes:
- Switches healthchecks to
/health/ready. - Enables RustFS stdout logging.
- Removes redundant default settings.
| File | Description |
|---|---|
dev/docker-compose.yml |
Updates standalone RustFS configuration. |
dev/docker-compose-integration.yml |
Updates integration RustFS configuration. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Align with the RustFS setup used across Iceberg repos: bump the image to 1.0.3, set RUSTFS_CONSOLE_ENABLE=false, and stop publishing port 9001. Generated-by: GitHub Copilot Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
| - RUSTFS_ADDRESS=:9000 | ||
| - RUSTFS_CONSOLE_ENABLE=true | ||
| - RUSTFS_CONSOLE_ADDRESS=:9001 | ||
| - RUSTFS_OBS_LOG_STDOUT_ENABLED=true |
| - RUSTFS_CONSOLE_ENABLE=true | ||
| - RUSTFS_CONSOLE_ADDRESS=:9001 | ||
| - RUSTFS_OBS_LOG_STDOUT_ENABLED=true | ||
| - RUSTFS_CONSOLE_ENABLE=false |
There was a problem hiding this comment.
removes console port 9001, we dont need it
| - RUSTFS_SERVER_DOMAINS=object-store | ||
| healthcheck: | ||
| test: ["CMD-SHELL", "curl --fail http://127.0.0.1:9000/health"] | ||
| test: ["CMD-SHELL", "curl --fail http://127.0.0.1:9000/health/ready"] |
There was a problem hiding this comment.
The RustFS Status Check docs define the two endpoints differently:
-
/healthis a liveness check. It returns 200 "as long as the process is up". -
/health/readyis a readiness check. It returns 200 "only when storage, IAM, and peer health are ready", and 503 otherwise.
| - RUSTFS_VOLUMES=/data | ||
| - RUSTFS_ADDRESS=:9000 | ||
| - RUSTFS_CONSOLE_ENABLE=true | ||
| - RUSTFS_CONSOLE_ADDRESS=:9001 |
There was a problem hiding this comment.
these are all defaults, can remove
rambleraptor
left a comment
There was a problem hiding this comment.
One of the reasons I love this PR is that we can look at the other implementations. We've got multiple other implementations running this same workload and it's all working as intended.
Thanks for doing this @kevinjqliu!
Rationale for this change
Follow up to apache/iceberg#18246. Standardizes the RustFS setup across the Iceberg repos. Same change in:
The setup:
rustfs/rustfs:1.0.3, the latest stable./health/ready./healthis just liveness and can pass before storage and IAM are ready, so bucket creation can race it.RUSTFS_OBS_LOG_STDOUT_ENABLED=true. Otherwisedocker logsis empty.RUSTFS_CONSOLE_ENABLE=falseand no port 9001. Nothing uses the console.Are these changes tested?
Ran
docker compose configon both files and startedrustfs/rustfs:1.0.3with the new config:/health/readyreturns 200 and logs show up indocker logs.Are there any user-facing changes?
No.
AI Disclosure: Assisted by GitHub Copilot.