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
accessKeyandsecretKey - 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