fix(rustfs): give the container a writable /logs #413

Merged
binjovi-bot merged 1 commit from fix/rustfs-log-dir into trunk 2026-09-07 14:25:49 +00:00
Owner

Every RustFS pod crash-looped. The entrypoint initialises /logs and the observability subsystem writes there before anything is served, so under readOnlyRootFilesystem the first write fails and the process aborts:

Initializing log directory: /logs
Starting: /usr/bin/rustfs
[FATAL] Observability initialization failed: Telemetry initialization failed: I/O error: Read-only file system (os error 30)

A hard abort, not a degraded start. Nothing here reads those files — Alloy collects from stdout — but the directory must be writable for the process to come up.

emptyDir, not a claim: scratch, and a second PVC per pod would double the volume count for nothing.

The guard now requires a writable mount at both /tmp and /logs whenever readOnlyRootFilesystem is set, so the next person hardening a container here does not rediscover this from a crash loop. Verified: removing the /logs mount fails the guard.

https://claude.ai/code/session_01KZoQin34jeyt6nDGqvJA76

Every RustFS pod crash-looped. The entrypoint initialises `/logs` and the observability subsystem writes there before anything is served, so under `readOnlyRootFilesystem` the first write fails and the process **aborts**: ``` Initializing log directory: /logs Starting: /usr/bin/rustfs [FATAL] Observability initialization failed: Telemetry initialization failed: I/O error: Read-only file system (os error 30) ``` A hard abort, not a degraded start. Nothing here reads those files — Alloy collects from stdout — but the directory must be writable for the process to come up. `emptyDir`, not a claim: scratch, and a second PVC per pod would double the volume count for nothing. The guard now requires a writable mount at **both** `/tmp` and `/logs` whenever `readOnlyRootFilesystem` is set, so the next person hardening a container here does not rediscover this from a crash loop. Verified: removing the `/logs` mount fails the guard. https://claude.ai/code/session_01KZoQin34jeyt6nDGqvJA76
fix(rustfs): give the container a writable /logs
All checks were successful
binjovi/ci Binjovi completed the frozen plan
5684ed2f7c
Every pod crash-looped. The entrypoint initialises /logs and the observability
subsystem writes there before anything is served, so under
readOnlyRootFilesystem the first write fails and the process aborts:

  Initializing log directory: /logs
  Starting: /usr/bin/rustfs
  [FATAL] Observability initialization failed: Telemetry initialization
  failed: I/O error: Read-only file system (os error 30)

It is a hard abort, not a degraded start. Nothing here reads those files --
Alloy collects logs from the container's stdout -- but the directory has to be
writable for the process to come up at all.

emptyDir rather than a claim: this is scratch, and a second PVC per pod would
double the volume count for nothing.

The guard now requires a writable mount at both /tmp and /logs whenever
readOnlyRootFilesystem is set, so the next person to harden a container here
does not rediscover this from a crash loop. Verified: removing the /logs mount
fails the guard.

Claude-Session: https://claude.ai/code/session_01KZoQin34jeyt6nDGqvJA76
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
sean/seanfarm!413
No description provided.