MinIO integrates with Kubernetes through the Container Object Storage Interface (COSI) to provide scalable, S3-compatible object storage for analytics, backup & restore, and ML/AI workloads. Before provisioning buckets, define a BucketClass.
A BucketClass is a template resource that sets the storage driver, the authentication Secret, and the deletion policy applied to all buckets created from it.
| Requirement | Notes |
|---|---|
| MinIO cluster ready for use | Prepare MinIO by following the installation guide. |
| Alauda Container Platform COSI plug-ins | acp-cosi and acp-cosi-minio must be installed. See Installing COSI Plug-ins for installation steps. |
| Kubernetes Secret containing MinIO credentials | Prepared in Step 2. |
Ensure that a MinIO cluster is installed and accessible. Follow the MinIO installation documentation to deploy and configure your MinIO environment.
COSI retrieves MinIO credentials from a Kubernetes Secret. Collect the following values:
Endpoint - e.g. http://minio.minio-system.svc or https://minio.example.com:9000AccessKeySecretKeyCreate the Secret in the target namespace and label it for UI discovery:
Important: The label app=minio is required for the platform UI to list the Secret.
Note: Key names are case-sensitive and must be exactly Endpoint, AccessKey, and SecretKey.
If you prefer GitOps, you can define the Secret declaratively:
Navigate to Storage → Object StorageClass and click Create Object StorageClass.
Select MinIO Object Storage as the driver.
Configure the following fields:
Delete).app=minio are shown).Click Create.
Create minio-bucketclass.yaml. The example below uses the MinIO COSI driver and points to a Secret with the correct Secret references.
Apply the manifest:
Verify the BucketClass:
Once the BucketClass is ready, create Bucket or BucketClaim resources referencing it to provision S3-compatible object storage backed by MinIO.