# MinIO Access Method Verification

## Chosen Access Method

**Internal Cluster DNS**: `minio.geocrop.svc.cluster.local:9000`

This is the recommended method for accessing MinIO from within the Kubernetes cluster as it:
- Uses cluster-internal networking
- Bypasses external load balancers
- Provides lower latency
- Works without external network connectivity

## Credentials Obtained

Credentials were retrieved from the MinIO deployment environment variables:

```bash
kubectl -n geocrop get deployment minio -o jsonpath='{.spec.template.spec.containers[0].env}'
```

| Variable | Value |
|----------|-------|
| MINIO_ROOT_USER | minioadmin |
| MINIO_ROOT_PASSWORD | minioadmin123 |

**Note**: Credentials are stored in the deployment manifest (k8s/20-minio.yaml), not in Kubernetes secrets.

## MinIO Client (mc) Status

**NOT INSTALLED** on this server.

The MinIO client (`mc`) is not available. To install it for testing:

```bash
# Option 1: Binary download
curl https://dl.min.io/client/mc/release/linux-amd64/mc -o /usr/local/bin/mc
chmod +x /usr/local/bin/mc

# Option 2: Via pip (less recommended)
pip install minio
```

## Testing Access

To test MinIO access from within the cluster (requires mc to be installed):

```bash
# Set alias
mc alias set geocrop-minio http://minio.geocrop.svc.cluster.local:9000 minioadmin minioadmin123

# List buckets
mc ls geocrop-minio/
```

## Current MinIO Service Configuration

From the cluster state:

| Service | Type | Cluster IP | Ports |
|---------|------|------------|-------|
| minio | ClusterIP | 10.43.71.8 | 9000/TCP, 9001/TCP |

## Issues Encountered

1. **No mc installed**: The MinIO client is not available on the current server. Installation required for direct CLI testing.

2. **Credentials in deployment**: Unlike TLS certificates (stored in secrets), the root user credentials are defined directly in the deployment manifest. This is a security consideration for future hardening.

3. **No dedicated credentials secret**: There is no `minio-credentials` secret in the namespace - only TLS secrets exist.

## Recommendations

1. Install mc for testing: `curl https://dl.min.io/client/mc/release/linux-amd64/mc -o /usr/local/bin/mc`
2. Consider creating a Kubernetes secret for credentials (separate from deployment) in future hardening
3. Use the console port (9001) for web-based management if needed
