Move the encode job's decision logic out of the mc container

FixKlusterServices
Shipped
August 19, 2026 at 2:26 AM UTC
Author
Kamo
Commit
5dc0d08

The plan stage died on `sed: command not found`. The minio/mc image is minimal to the point of having no sed, awk, grep, wget or curl — it can move objects and little else — so parsing `mc stat --json` there was never going to work. Folded the fetch/compare/encode steps into one init container on the mediamtx image (alpine + busybox + ffmpeg) and left mc doing only the upload. The public bucket is anonymously readable, so that stage needs no credentials at all: it fetches the source and the marker over plain HTTP. Idempotence now keys on the SHA-256 of the source bytes rather than its ETag. MinIO returns a multipart ETag whose shape depends on how the object was uploaded, and a hash is unambiguous regardless. Marker renamed to .source-sha256 accordingly.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing