Background
dThe requirement initial from RESTful API Binary Provisioning Agent which provide interface to operator to upload image objects.
There are 3 key functionality for RESTful API Agent:
- Image provisioning (upload)
- REST API (POST/PUT/PATCH/DELETE etc)
- Support resumable upload
And backend storage is needed, the relationship as following chart.
Backend Storage Solution
Also we have several considerations for the backend storage solution:
- Data reliability: some mechanism like replication to make sure the data can be recovered.
- Cloud native: Support docker or Kubernetes deployment.
- Amazon S3 API compatible: Support S3 API which is factual standard.
- Multipart upload is better: which can speed up or resume when upload thread is break.
Solution 1: GrideFS
Solution 2: MinIO
So the better solution is MinIO, which can provide Cloud Storage service for Local Controller.
MinIO Client plugin for RESTful API Agent
d
MinIO Server and storage service
...
MinIO server deploy by Kubernetes, which has 2 modes: Standalone and Distribute.
The volume of MinIO export also can be used for HTTP server.