MinIO Configurations
We build the object store feature with minio. By default, minio installed as the standard mode, it would provision a PV to keep data. The administrator could customize it:
- configure standalone mode
- launch minio as AWS S3 gateway
- launch minio as Google Cloud Storage gateway
All minio configurations at the top level minio:
Standalone mode
If minio.persistence.enabled
is true, the PV would be created. You might set the storageClass
and size
. We take an example in the AWS EC2 use case gp2
:
minio:
persistence:
enabled: true
storageClass: "gp2"
accessMode: ReadWriteOnce
size: 1024Gi
AWS S3 Gateway
Refer to minio gateway for s3 prerequisites are:
- Choose an existing bucket or create a bucket from Amazon S3 console
- Create an IAM user and get
accessKey
andsecretKey
- Attach the user with AWS S3 permissions policies
Here is the example for AWS S3:
store:
bucket: "the-bucket-your-created"
minio:
s3gateway:
enabled: true
accessKey: "[put-your-access-key-id-here]"
secretKey: "[put-your-secret-access-key-here]"
Minio also supports to use s3 gateway to connect to Ceph RGW. Here is the example for connecting to Ceph RGW by Rook.
store:
bucket: "primehub"
minio:
s3gateway:
enabled: true
serviceEndpoint: "http://rook-ceph-rgw-object-store.rook"
accessKey: "[put-your-access-key-id-here]"
secretKey: "[put-your-secret-access-key-here]"
Google Cloud Storage Gateway
Refer to minio gateway for gcs prerequisites are:
- Choose a existing bucket or create a bucket from Google Cloud Storage console
- Create and manage service accounts
- Generate json keyfile
Here is the example for GCS:
store:
bucket: "the-bucket-your-created"
minio:
gcsgateway:
enabled: true
projectId: "[your-proejct-id]"
gcsKeyJson: "[the-content-of-your-json-key-file]"
Access the minio UI
You could export the minio web UI to the public domain http://${PRIMEHUB_DOMAIN}/minio
minio:
ingress:
enabled: true
maxBodySize: "8192m"
Enabled ingress would export the handy minio object browser to /minio
path. If you upload a large file and see the message 413 Request Entity Too Large
. You could increase the value of maxBodySize
.
However, the ingress only allows you to use minio UI. If you want to operate object with AWS S3 compatible library outside of the kubernetes, do it with port-forward
:
kubectl -n hub port-forward service/primehub-minio 9000