> For the complete documentation index, see [llms.txt](https://aizen-corp.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://aizen-corp.gitbook.io/docs/installation/installing-optional-components/minio.md).

# MinIO

MinIO is a Kubernetes native, high-performance object store with an S3-compatible API. The MinIO operator supports deploying MinIO tenants on any Kubernetes cluster.

To install the MinIO operator, follow these steps:

1. Add the MinIO repository to your local Helm configuration by running this Helm command:

   <pre data-overflow="wrap"><code>helm repo add minio https://operator.min.io/
   helm repo update
   </code></pre>
2. Install the MinIO operator in your Aizen installation by running this Helm command:

   <pre data-overflow="wrap"><code>helm -n aizen-infra install aizen-minio-operator minio/operator --version 5.0.15
   </code></pre>
3. Copy the contents below to a file named `minio_values.yaml`, and change the storage class name from `standard` to the storage class name that is defined in your Kubernetes cluster.

   **Contents of minio\_values.yaml:**

   <pre data-overflow="wrap"><code>enabled: false
   secrets:
     name: aizen-env-configuration
     accessKey: aizen
     secretKey: aizen@123     
   tenant:
     name: aizen
     configuration:
       name: aizen-env-configuration
     pools:
       - servers: 1
         name: minio-pool
         volumesPerServer: 1
         size: 50Gi
         storageClassName: standard
     mountPath: /opt/aizen
     subPath: /data
     certificate:
       requestAutoCert: false
     prometheusOperator: false
     logging:
       anonymous: true
       json: true
       quiet: true
     prometheus:
       disabled: true
       diskCapacityGB: 1
       storageClassName: standard
     log:
       disabled: true
       db:
         volumeClaimTemplate:
           spec:
             storageClassName: standard
             accessModes: 
               - ReadWriteOnce
             resources:
               requests:
               storage: 1Gi
   </code></pre>
4. Deploy the MinIO Tenant by running this Helm command:

   <pre data-overflow="wrap"><code>helm -n aizen-infra install aizen-tenant --values minio_values.yaml  minio/tenant --version 5.0.15
   </code></pre>
5. Check the deployment status of all the infrastructure components, including the MinIO operator, by running this command:

   <pre data-overflow="wrap"><code>kubectl -n aizen-infra get pods
   </code></pre>

   If any of the components are not in a **Running** state, see [Installation Issues](/docs/troubleshooting/installation-issues.md).

{% hint style="info" %}
Create a bucket in MinIO for MLflow (`mlflow-artifacts`).
{% endhint %}

6. Run the MinIO Client (`mc`) as a container pod by running these commands:

   <pre data-overflow="wrap"><code>kubectl run my-mc -i --tty --image minio/mc:latest --rm --command -- bash
   mc --version

   mc alias set az http://minio.aizen-infra.svc.cluster.local aizen aizen@123
   mc ls az
   </code></pre>
7. To create a bucket in MinIO for MLflow, run this command:

   <pre data-overflow="wrap"><code>mc mb az/mlflow-artifacts
   exit
   </code></pre>
