Skip to content
This repository was archived by the owner on Jul 13, 2026. It is now read-only.

Latest commit

 

History

History
102 lines (76 loc) · 4.6 KB

File metadata and controls

102 lines (76 loc) · 4.6 KB

MinIO Architecture

Overview

MinIO serves as the S3-compatible object storage for CMP Platform, providing file storage capabilities to multiple services.

Deployment Architecture

┌─────────────────────────────────────────────────────────────┐
│                    Kubernetes Cluster                        │
│  Namespace: cmp                                             │
│                                                              │
│  ┌────────────────────────────────────────────────────────┐ │
│  │                    minio Deployment                     │ │
│  │                     (1 replica)                         │ │
│  │                                                              │ │
│  │   ┌────────────────────────────────────────────────────┐   │ │
│  │   │              minio Container                       │   │ │
│  │   │   Image: minio/minio:RELEASE.2025-09-07T16-13-09Z │   │ │
│  │   │                                                      │   │ │
│  │   │   Ports:                                             │   │ │
│  │   │   - 9000 (S3 API)                                    │   │ │
│  │   │   - 9001 (Console)                                   │   │ │
│  │   └────────────────────────────────────────────────────┘   │ │
│  └─────────────────────────────────────────────────────────────┘ │
│                              │                                 │
│                              │ PersistentVolumeClaim           │
│                              ▼                                 │
│  ┌────────────────────────────────────────────────────────────┐ │
│  │              do-block-storage (10Gi)                      │ │
│  │              PersistentVolumeClaim: minio-data            │ │
│  └────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

Network Configuration

Service: minio (ClusterIP)
  ├── Port 9000 → targetPort: 9000  (S3 API)
  └── Port 9001 → targetPort: 9001 (Console)

Authentication

MinIO uses cmp-secrets Kubernetes Secret for authentication:

cmp-secrets
  ├── S3_ACCESS_KEY → MINIO_ROOT_USER
  └── S3_SECRET_KEY → MINIO_ROOT_PASSWORD

Consumer Services

Speckle (BIM 3D Viewer)

  • Purpose: Store BIM model files (.ifc, .rvt, etc.)
  • Connection: S3 API (port 9000)

Budibase (Low-code Platform)

  • Purpose: Store application attachment uploads
  • Connection: S3 API (port 9000)

Resource Configuration

Resource Request Limit
CPU 100m 500m
Memory 256Mi 512Mi
Storage - 10Gi

High Availability

Current configuration is single replica, suitable for:

  • Development/testing environments
  • Scenarios with external backup mechanisms

Note: Production environments should consider MinIO Operator for multi-replica cluster deployment.

Monitoring Integration

Recommended integrations:

  1. Prometheus Metrics: Enable MinIO Prometheus endpoint
  2. Grafana Dashboard: Use official MinIO Dashboard
  3. Alerting: Monitor disk usage, API response times

Backup Strategy

Recommended backup methods:

  1. Volume Snapshot: Use Kubernetes VolumeSnapshot
  2. rclone: Scheduled sync to other S3-compatible storage
  3. Velero: Integrate with CMP Platform backup strategy

Security Considerations

  1. Network Policy: Configure NetworkPolicy to restrict access
  2. TLS: Enable TLS encryption in production
  3. Secret Rotation: Passwords were rotated on 2026-02-26