This all is 100% open source, so if you would like to contribute, feel free to edit this page.



Minio S3 infra setup

MinIO is an open-source, high-performance, distributed object storage system designed for storing unstructured data such as photos, videos, log files, backups, and container images. It is compatible with Amazon S3 APIs, making it easy to integrate with existing cloud-native applications. MinIO is known for its simplicity, scalability, and robustness, enabling it to handle petabytes of data with minimal resource consumption. It is often used in cloud-native environments, including Kubernetes, and supports features like erasure coding, bitrot protection, and encryption. MinIO can be deployed on-premises, in the cloud, or at the edge, making it versatile for various storage needs.

Installation of MinIO

Create a persistent volume claim

A Persistent Volume Claim (PVC) in OpenShift is a request for storage by a user or application. It abstracts the details of storage provisioning by allowing users to claim a specific amount of storage from a Persistent Volume (PV), which is a piece of storage in the cluster. The PVC defines the desired size, access modes, and other properties, while OpenShift dynamically binds it to an available PV that meets the specified requirements. Once bound, the PVC provides persistent storage that can be used by pods, ensuring data remains available even if the pod is deleted or rescheduled.

Creating the persistent volume claim is nothing more than applying the yaml definition, which you can find at https://github.com/maarten-vandeperre/developer-hub-documentation/tree/main/gitops/minio/minio-persistent-volume-claim.yaml. When applied, you should wait until it becomes ready, which can take a couple of minutes.

Create a deployment and expose it

  1. Apply https://github.com/maarten-vandeperre/developer-hub-documentation/tree/main/gitops/minio/minio-deployment.yaml to have Minio running on OpenShift.
  2. Create a service to the running pods by applying . Both port 9000 (i.e., API port) and 9090 (i.e., web UI port) will be exposed.
  3. Now create 2 routes to access MinIO outside the OpenShift cluster (e.g., for testing purposes), by applying https://github.com/maarten-vandeperre/developer-hub-documentation/tree/main/gitops/minio/minio-route.yaml. (!!! notice that you will have to chance the base domain to match yours in the following routes.)
    1. The API route: https://minio-api-demo-project.apps.cluster-mq98c.mq98c.sandbox870.opentlc.com
    2. The web UI route: https://minio-webui-demo-project.apps.cluster-mq98c.mq98c.sandbox870.opentlc.com