Skip to content

ReportPortal Prime Features

Hleb Kanonik edited this page Oct 26, 2026 · 1 revision

This guide covers the configuration and deployment of ReportPortal Prime features: Test Executions and SCIM Bridge.

Overview

ReportPortal Prime features are premium capabilities that extend the core platform with advanced functionality:

  • Test Executions: Flat searchable test-execution indexing for enhanced performance and analytics
  • SCIM Bridge: Automated user and group provisioning via the System for Cross-domain Identity Management (SCIM) protocol

Both features require private container images and are controlled by the prime.enabled master switch.

Prerequisites

Image Access

Both Prime features use private container images. You must:

  1. Obtain access credentials for the private image registry
  2. Create a pull secret in your namespace with the provided credentials
  3. Configure the pull secret in your Helm values

Contact ReportPortal to receive image registry access and credentials.

Infrastructure Requirements

  • PostgreSQL database (configured via database.* parameters)
  • OpenSearch cluster (configured via searchengine.* parameters)
  • ReportPortal API service must be running (both features wait for API during initialization)

Test Executions

Description

Test Executions provides flat searchable indexing of test execution data for enhanced performance and analytics.

Key capabilities:

  • Fast search and retrieval of test execution data
  • Configurable polling intervals and query limits
  • Dedicated OpenSearch index with customizable shards and replicas
  • Automatic cleanup of deleted test items

Configuration

Enable Test Executions by setting prime.enabled: true and configuring the image:

prime:
  enabled: true
  testExecutions:
    enabled: true
    image:
      repository: <your-registry>/logstash
      tag: "latest"
      pullSecrets: []  # Component-specific secrets (merged with global.imagePullSecrets)

Key Parameters

Parameter Description Default
prime.testExecutions.enabled Enable Test Executions when prime.enabled is true true
prime.testExecutions.image.repository Private Test Executions image repository (required) ""
prime.testExecutions.image.tag Private image tag (required) ""
prime.testExecutions.javaOpts JVM options passed via LS_JAVA_OPTS "-Xms512m -Xmx1536m -XX:+UseG1GC"
prime.testExecutions.scheduleCron Cron for JDBC polling of test items "*/2 * * * * *" (every 2 seconds)
prime.testExecutions.sqlLimit Max rows per JDBC query (test items) "1000"
prime.testExecutions.scheduleCronLaunches Cron for the dedicated launches pipeline "*/3 * * * * *" (every 3 seconds)
prime.testExecutions.sqlLimitLaunches Max rows per JDBC query (launches) "20"

OpenSearch Index Configuration

prime:
  testExecutions:
    index:
      name: "test_executions"
      shards: "1"
      replicas: "1"

Cleanup Configuration

Automatic cleanup of deleted test items:

prime:
  testExecutions:
    cleanup:
      cron: "0 0 * * * *"  # Daily at midnight
      retentionPeriod: "1"  # Days

Service Configuration

prime:
  testExecutions:
    service:
      type: ""  # Defaults to ClusterIP
      port: 5000  # Logstash port
      monitoringPort: 9600  # Monitoring/metrics port
      portName: "logstash"

Resource Configuration

prime:
  testExecutions:
    resources:
      requests:
        cpu: 500m
        memory: 512Mi
      limits:
        cpu: 1000m
        memory: 2Gi

Health Checks

Test Executions includes startup, readiness, and liveness probes:

prime:
  testExecutions:
    startupProbe:
      enabled: true
      initialDelaySeconds: 10
      periodSeconds: 10
      failureThreshold: 30
    readinessProbe:
      enabled: true
      initialDelaySeconds: 30
      periodSeconds: 10
    livenessProbe:
      enabled: true
      initialDelaySeconds: 60
      periodSeconds: 30

Custom Log4j2 Configuration

Optionally provide custom Log4j2 properties:

prime:
  testExecutions:
    log4j2:
      enabled: true
      properties: |
        # Your custom Log4j2 configuration

SCIM Bridge

Description

SCIM Bridge enables automated user and group provisioning from identity providers (IdPs) like Okta, Azure AD, or OneLogin using the SCIM 2.0 protocol.

Key capabilities:

  • Automated user provisioning and deprovisioning
  • Group-to-project mapping via configurable regex patterns
  • Support for multiple identity providers
  • Horizontal pod autoscaling support

Configuration

Enable SCIM Bridge by setting prime.enabled: true and configuring the image:

prime:
  enabled: true
  scim:
    enabled: true
    image:
      repository: <your-registry>/reportportal/scim-bridge
      tag: "latest"
      pullSecrets: []  # Component-specific secrets (merged with global.imagePullSecrets)

Key Parameters

Parameter Description Default
prime.scim.enabled Enable SCIM Bridge when prime.enabled is true true
prime.scim.image.repository Private SCIM Bridge image repository (required) ""
prime.scim.image.tag Private image tag (required) ""
prime.scim.host Bind address for the SCIM server 0.0.0.0
prime.scim.path Base path for the SCIM service (also used for Ingress/Gateway API) /scim/v2
prime.scim.logLevel Log level (DEBUG, INFO, WARN, ERROR) INFO
prime.scim.maxResults Maximum results per SCIM response 100

Group Mapping Configuration

SCIM Bridge maps IdP groups to ReportPortal projects using configurable regex patterns. Group mapping configuration will be provided separately by ReportPortal.

For configuration details, contact ReportPortal support.

Service Configuration

prime:
  scim:
    service:
      type: ""  # Defaults to ClusterIP
      port: 8080
      portName: "http"

Resource Configuration

prime:
  scim:
    resources:
      requests:
        cpu: 100m
        memory: 128Mi
      limits:
        cpu: 500m
        memory: 512Mi

Autoscaling

SCIM Bridge supports horizontal pod autoscaling:

prime:
  scim:
    autoscaling:
      enabled: true
      minReplicas: 1
      maxReplicas: 10
      targetCPUUtilizationPercentage: 80
      targetMemoryUtilizationPercentage: ""

Health Checks

SCIM Bridge includes startup, readiness, and liveness probes:

prime:
  scim:
    startupProbe:
      enabled: true
      initialDelaySeconds: 0
      periodSeconds: 10
      failureThreshold: 30
    readinessProbe:
      enabled: true
      initialDelaySeconds: 5
      periodSeconds: 5
    livenessProbe:
      enabled: true
      initialDelaySeconds: 30
      periodSeconds: 10
    healthPath: /ServiceProviderConfig  # Appended to scim.path

Ingress / Gateway API Configuration

Both SCIM Bridge and Test Executions can be exposed via Ingress or Gateway API.

SCIM Bridge Ingress Example

ingress:
  enabled: true
  hosts:
    - reportportal.example.com
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$2
  # SCIM will be available at: https://reportportal.example.com/scim/v2

The SCIM path (prime.scim.path) is automatically used in the Ingress/Gateway API configuration.

Complete Example

Here's a complete example enabling both Prime features:

# values-prime.yaml
global:
  imagePullSecrets:
    - name: reportportal-prime

uat:
  superadminInitPasswd:
    password: ChangeMe

prime:
  enabled: true
  
  testExecutions:
    enabled: true
    image:
      repository: <your-registry>/logstash
      tag: "latest"
    replicaCount: 2
    javaOpts: "-Xms1g -Xmx2g -XX:+UseG1GC"
    scheduleCron: "*/5 * * * * *"
    sqlLimit: "2000"
    resources:
      requests:
        cpu: 1000m
        memory: 1Gi
      limits:
        cpu: 2000m
        memory: 4Gi
  
  scim:
    enabled: true
    image:
      repository: <your-registry>/reportportal/scim-bridge
      tag: "latest"
    replicaCount: 2
    logLevel: INFO
    # Group mapping configuration provided separately
    autoscaling:
      enabled: true
      minReplicas: 2
      maxReplicas: 5
      targetCPUUtilizationPercentage: 70

Installation

Install ReportPortal with Prime features:

helm upgrade --install reportportal ./reportportal \
  -n reportportal --create-namespace \
  -f values-prime.yaml \
  --set uat.superadminInitPasswd.password='YourSecurePassword'

Verification

Test Executions

Check the Test Executions deployment:

kubectl get deployment -n reportportal -l component=reportportal-test-executions
kubectl logs -n reportportal -l component=reportportal-test-executions

Verify the OpenSearch index:

# Port-forward to OpenSearch
kubectl port-forward -n reportportal svc/opensearch-cluster-master 9200:9200

# Check the test_executions index
curl -X GET "localhost:9200/test_executions/_search?pretty"

SCIM Bridge

Check the SCIM Bridge deployment:

kubectl get deployment -n reportportal -l component=reportportal-scim
kubectl logs -n reportportal -l component=reportportal-scim

Test the SCIM endpoint:

# Port-forward to SCIM service
kubectl port-forward -n reportportal svc/reportportal-scim 8080:8080

# Check ServiceProviderConfig
curl -X GET "localhost:8080/scim/v2/ServiceProviderConfig"

Troubleshooting

Test Executions

Issue: Test Executions pod not starting

Check init container logs (waits for API):

kubectl logs -n reportportal <test-executions-pod> -c api-waiting-init

Issue: No data being indexed

  1. Check database connectivity:

    kubectl logs -n reportportal <test-executions-pod> | grep -i "database\|jdbc"
  2. Verify OpenSearch connectivity:

    kubectl logs -n reportportal <test-executions-pod> | grep -i "opensearch\|elasticsearch"
  3. Check cron schedule and SQL limits in logs

SCIM Bridge

Issue: SCIM Bridge not accessible

  1. Check service and pod status:

    kubectl get svc,pod -n reportportal -l component=reportportal-scim
  2. Verify Ingress/Gateway API configuration:

    kubectl get ingress -n reportportal
    kubectl describe ingress reportportal -n reportportal

Issue: Group mapping not working

  1. Check SCIM logs for pattern matching:

    kubectl logs -n reportportal -l component=reportportal-scim | grep -i "group\|pattern"
  2. Verify configuration:

    kubectl get deployment reportportal-scim -n reportportal -o yaml | grep -A5 "SCIM_GROUP"

Security Considerations

Image Pull Secrets

  • Store registry credentials securely using Kubernetes secrets
  • Rotate credentials regularly
  • Use component-specific pullSecrets when different images require different credentials

SCIM Authentication

  • Configure authentication in your IdP (bearer token, OAuth)
  • Use TLS/HTTPS for SCIM endpoints in production
  • Restrict SCIM endpoint access via network policies or Ingress annotations

Database Credentials

  • Use database.secretName to reference an existing secret instead of plain-text passwords
  • Ensure database SSL is enabled in production (database.ssl: require)

References

Related Documentation

Clone this wiki locally