EOEPCA+ MinIO Deployment Guide⚓︎
MinIO is a high-performance object storage system that’s compatible with the Amazon S3 API. In the EOEPCA+ ecosystem, MinIO can serve as the object storage backend for various services, including user workspaces, MLOps and other data storage needs. This does not preclude the possibility to configure an alternative S3-compatible object storage solution instead of MinIO.
Introduction⚓︎
MinIO provides a scalable and high-performance object storage solution that’s compatible with AWS S3 APIs. It’s used within the EOEPCA+ platform to store and manage data securely.
Scripted Deployment⚓︎
The Minio deployment in this guide follows the same Scripted Deployment Approach, as for the EOEPCA building blocks.
Prerequisites⚓︎
Before you begin, make sure you have the following:
Component | Requirement | Documentation Link |
---|---|---|
Kubernetes | Cluster (tested on v1.28) | Installation Guide |
Helm | Version 3.5 or newer | Installation Guide |
kubectl | Configured for cluster access | Installation Guide |
Ingress | Properly installed | Ingress Controller Setup Guide |
TLS Certificates | Managed via cert-manager or manually |
TLS Certificate Management Guide |
Clone the Deployment Guide Repository:
Validate your environment:
Run the validation script to ensure all prerequisites are met:
Deployment Steps⚓︎
1. Configure MinIO⚓︎
Run the configuration script:
During the script execution, you will be prompted for:
INGRESS_HOST
: Base domain for ingress hosts.- Example:
example.com
- Example:
CLUSTER_ISSUER
(if usingcert-manager
): Name of the ClusterIssuer.- Example:
letsencrypt-http01-apisix
- Example:
STORAGE_CLASS
: Storage class for persistent volumes.- Example:
standard
- Example:
2. Deploy MinIO⚓︎
Install MinIO using Helm:
helm repo add minio https://charts.min.io/
helm repo update minio
helm upgrade -i minio minio/minio \
--version 5.4.0 \
--values generated-values.yaml \
--namespace minio \
--create-namespace
3. Create Access Keys⚓︎
Access the MinIO Console to create access keys:
- Navigate to
https://console-minio.${INGRESS_HOST}/access-keys/new-account
- Log in using the MinIO User (
user
) and MinIO Password generated during the configuration step - see file~/.eoepca/state
. - Under
Access Keys
select toCreate access key +
- Note down or download the Access Key and Secret Key.
- Click
Create
.
Run the following script to save these keys to your EOEPCA+ state file:
By saving these keys to the EOEPCA+ state file, the credentials will be automatically set during the deployment of S3-integrated Building Blocks.
Validation⚓︎
Automated Validation:
This script performs several checks to validate your MinIO deployment:
Pod and Service Checks: Verifies that all MinIO pods are running and services are available.
Endpoint Checks: Confirms that the MinIO endpoints are accessible and return the expected HTTP status codes.
Functionality Tests: - Creates a test bucket. - Uploads a test file to the bucket. - Deletes the test file. - Deletes the test bucket.
Note: The script uses
s3cmd
to interact with MinIO. Ensure thats3cmd
is installed and configured on your machine. Please refer to thes3cmd
Installation Guide.
Manual Validation:
-
Check Kubernetes Resources:
-
Access Dashboard:
-
Log In:
Use the credentials generated during the configuration step:
- Username:
user
- Password: (the password generated by the script)
- Username:
-
Verify Buckets:
You should see the following buckets:
- eoepca
- cache-bucket
- gitlab-backup-storage
- gitlab-tmp-storage
- gitlab-lfs-storage
- mlopbb-mlflow-sharinghub
- mlopbb-sharinghub
-
Create a Test Bucket:
Use the dashboard to create a new bucket and upload a test file.
Uninstallation⚓︎
To remove MinIO and associated resources:
- Uninstall MinIO:
- Uninstall MinIO Bucket API:
- Delete Secrets and PVCs:
Further Reading⚓︎
Feedback⚓︎
If you have any issues or suggestions, please open an issue on the EOEPCA+ Deployment Guide Repository.