Skip to content

storage examples

Hleb Kanonik edited this page Mar 6, 2026 · 1 revision

ReportPortal Storage Types

The chart supports four storage backends. Set storage.type and enable/disable the matching subchart. All options are defined in reportportal/values.yaml.

Type Use case Subchart to install Default in chart
SeaweedFS S3-compatible, Apache 2.0 seaweedfs ✅ Default
MinIO S3-compatible, self-hosted (AGPL) minio
S3 AWS S3 or any S3-compatible API none
FS Shared filesystem (NFS, Filestore…) none

Use Helm --set for quick overrides or a values file (-f) for full config. Chart path: ./reportportal (from this repo) or reportportal/reportportal (if added as Helm repo).


1. SeaweedFS (default, recommended)

Apache 2.0 licensed, S3-compatible object storage. One pod (all-in-one) with one PVC; S3 API on port 8333. Credentials come from storage.accesskey / storage.secretkey in values.

Helm (no extra flags — defaults):

helm upgrade --install my-release \
  --set uat.superadminInitPasswd.password="MyPassword" \
  reportportal

Or explicitly:

helm upgrade --install my-release \
  --set uat.superadminInitPasswd.password="MyPassword" \
  --set storage.type=seaweedfs \
  --set seaweedfs.install=true \
  --set minio.install=false \
  reportportal

Optional values file (e.g. my-values.yaml):

storage:
  type: seaweedfs
  accesskey: rpuser
  secretkey: miniopassword
  # endpoint/port left empty → internal service
  ssl: false

seaweedfs:
  install: true
  allInOne:
    data:
      size: "20Gi"
  s3:
    enableAuth: true
    credentials:
      admin:
        accessKey: rpuser
        secretKey: miniopassword

minio:
  install: false

Install with: helm upgrade --install my-release -f my-values.yaml reportportal


2. MinIO

Self-hosted S3-compatible storage (AGPL). Chart deploys MinIO as a dependency; API on port 9000.

Helm:

helm upgrade --install my-release \
  --set uat.superadminInitPasswd.password="MyPassword" \
  --set storage.type=minio \
  --set seaweedfs.install=false \
  --set minio.install=true \
  reportportal

Optional values file:

storage:
  type: minio
  accesskey: rpuser
  secretkey: miniopassword
  endpoint: ""   # empty = internal MinIO service
  ssl: false
  port: 9000
  bucket:
    type: multi
    bucketDefaultName: "rp-bucket"

seaweedfs:
  install: false

minio:
  install: true
  auth:
    rootUser: rpuser
    rootPassword: miniopassword
  persistence:
    size: 50Gi

For credentials from a Kubernetes secret, use storage.secretName, storage.accesskeyName, storage.secretkeyName and MinIO’s auth.existingSecret (see values.yaml).


3. S3

Use AWS S3 or any S3-compatible endpoint (no built-in object store). Set storage.type=s3, disable both SeaweedFS and MinIO.

Helm (minimal — e.g. AWS with IRSA):

helm upgrade --install my-release \
  --set uat.superadminInitPasswd.password="MyPassword" \
  --set storage.type=s3 \
  --set storage.region=us-east-1 \
  --set seaweedfs.install=false \
  --set minio.install=false \
  reportportal

With inline credentials:

helm upgrade --install my-release \
  --set uat.superadminInitPasswd.password="MyPassword" \
  --set storage.type=s3 \
  --set storage.region=us-east-1 \
  --set storage.accesskey=AKIA... \
  --set storage.secretkey=... \
  --set seaweedfs.install=false \
  --set minio.install=false \
  reportportal

Optional values file (AWS S3, IAM role / IRSA):

storage:
  type: s3
  accesskey: ""
  secretkey: ""
  region: "us-east-1"
  ssl: true
  bucket:
    type: single
    bucketDefaultName: "my-reportportal-bucket"

seaweedfs:
  install: false

minio:
  install: false

Optional values file (custom S3-compatible endpoint):

storage:
  type: s3
  accesskey: mykey
  secretkey: mysecret
  endpoint: "s3.example.com"
  port: 443
  ssl: true
  region: "us-east-1"
  bucket:
    type: single
    bucketDefaultName: "reportportal"

seaweedfs:
  install: false

minio:
  install: false

For EKS with IRSA, set global.serviceAccount.annotations.eks\.amazonaws\.com/role-arn (see values.yaml).


4. FS (filesystem)

Use a shared filesystem (NFS, GKE Filestore, etc.). The chart creates a PVC and mounts it at storage.volume.defaultPath in API, UAT, Jobs, and Analyzer pods.

Helm:

helm upgrade --install my-release \
  --set uat.superadminInitPasswd.password="MyPassword" \
  --set storage.type=filesystem \
  --set storage.volume.capacity=10Gi \
  --set storage.volume.storageClassName=standard \
  --set seaweedfs.install=false \
  --set minio.install=false \
  reportportal

Optional values file:

storage:
  type: filesystem
  volume:
    defaultPath: "/data/storage"
    capacity: 10Gi
    storageClassName: "standard"   # e.g. standard-rwx for GKE Filestore

seaweedfs:
  install: false

minio:
  install: false

Summary: key values per type

Type storage.type seaweedfs.install minio.install Extra (examples)
SeaweedFS seaweedfs true false
MinIO minio false true storage.port=9000
S3 s3 false false storage.region, credentials or IRSA
FS filesystem false false storage.volume.capacity, storageClassName

All storage-related parameters (bucket, secretName, endpoint, ssl, volume, etc.) are documented in reportportal/values.yaml.

Clone this wiki locally