In the past when MinIO was chosen as an s3 bucket implementation, it was a lot more FOSS than it is today. Today, the FOSS part of this system is slowly disappearing behind paywalls, repos, and licenses.
Not just this, but we chose s3 buckets for some reason, but decided to implement our reference s3 calls as MinIO library calls using their go packages/libraries.
Due to the atmosphere around the MinIO project and its releases, it is probably best to move away from it and on to something else that is:
- A bit more FOSS/open
- More of a reference s3 implementation on OUR side
- This is because we want drop-in replacements rather than gutting and re-implementing things
- Supports some level of bucket/chunk DeDup or POSIX style linking such that we can host multiple path targets to the same blocks on disk
The current front runners for this are going to be:
Wow those links expanded badly.
Anyway, both of these are currently FOSS and implement the s3 api so we should be able to use any old generic s3 cli go package to fully utilize them.
The main differences are that garage is meant to be a scalable erasure coded s3 front end and seaweed is primarily a similarly designed back-end with POSIX semantics, and with multiple front-ends like webdav and nfs.
I think the proof of concept should probably be focused on garage as a minio replacement for now since they allow running and helm deployment in a single-node/single-replica now.
Discussion welcome.