-
Notifications
You must be signed in to change notification settings - Fork 197
Migration v25
☝️ Before starting, ensure to create a backup of ReportPortal
The previous versions of the migrations are located here
- Review changes by comparing GitHub release tags: reportportal-24.1.0...reportportal-24.2.0
☝️ Please note that the double-entry values and environments have been removed from version 24.2.0
- Merge changes from master branch to your own repository or local files.
- Change your own
values.yamlregarding new values and image versions. Release 24.2.0 changes:- Service API has the new AMQP settings instead of
queues. - RabbitMQ now requires additional plugins to ensure proper functionality of ReportPortal.
- If you're using your own RabbitMQ instance, please upgrade your RabbitMQ Helm chart or instance to install the necessary plugins. Note that RabbitMQ v3.12+ is required for the shovel plugin. Required Plugins:
- All the ReportPortal services changed images to new versions. Check latest from the dockerhub.
- Service API has the new AMQP settings instead of
- Upgrade ReportPortal using the following command:
- Local path:
helm upgrade --install my-release ./reportportal
- From the Helm Chart repository:
helm repo add reportportal https://reportportal.io/kubernetes helm repo update reportportal helm upgrade my-release reportportal/reportportal
- Review changes by comparing GitHub release tags: reportportal-23.2.0...reportportal-24.1.0
- Merge changes from master branch to your own repository or local files.
- Change your own
values.yamlregarding new values and image versions. Release 24.1 changes:- Service API has the new pattern analysis and immediate IA configuration values.
- Service API values sets the frequency of launching the CRON, which terminates the launches if they remain in an
in-progressstate for an extended period. - Service Jobs included a new CRON jobs to cleaning events values.
- All the ReportPortal services changed images to new
5.11.0versions. Check the dockerhub.
- Upgrade ReportPortal using the following command:
- Local path:
helm upgrade --install my-release ./reportportal
- From the Helm Chart repository:
helm repo add reportportal https://reportportal.io/kubernetes helm repo update reportportal helm upgrade my-release reportportal/reportportal

☝️ Please note that chart versions and product release versions are now managed separately. Read here
- Review changes by comparing GitHub release tags: reportportal-24.1.0...reportportal-25.5.30
- Upgrade ReportPortal using the following command:
- Local path:
helm upgrade --install my-release ./reportportal
- From the Helm Chart repository:
helm repo add reportportal https://reportportal.io/kubernetes helm repo update reportportal helm upgrade my-release reportportal/reportportal

☝️ Please note that chart versions and product release versions are now managed separately. Read here
This migration guide covers upgrading to ReportPortal version 25.1.6. The migration process varies depending on your current setup and dependencies.
⚠️ This guide applies only to installations with locally deployed dependencies; cloud or SaaS users should upgrade dependency versions according to their platform’s documentation.
Review changes by comparing GitHub release tags: reportportal-24.1.0...reportportal-25.1.6
- No migration required for RabbitMQ and OpenSearch dependencies
- These services can be upgraded directly without data migration
If you're using the built-in PostgreSQL dependency, follow these steps:
-
Create a database backup:
# Get the current PostgreSQL pod name kubectl get pods -l app.kubernetes.io/name=postgresql # Create a database dump kubectl exec -it my-release-postgresql-0 -- \ bash -c "PGPASSWORD='rppassword' pg_dump -U postgres reportportal" \ > reportportal_backup.sql
-
Uninstall the previous ReportPortal release:
helm uninstall my-release
-
Install PostgreSQL standalone:
# Add Bitnami repository if not already added helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update # Install standalone PostgreSQL with the same credentials # Note: PVC name will be data-postgresql-standalone-postgresql-0 helm install postgresql-standalone \ --set auth.postgresPassword=rppassword \ --set auth.username=postgres \ --set auth.password=rppassword \ --set auth.database=reportportal \ --set primary.persistence.size=8Gi \ --version 16.7.21 \ bitnami/postgresql
-
Restore the database:
# Get the standalone PostgreSQL pod name kubectl get pods -l app.kubernetes.io/name=postgresql # Restore the database kubectl exec -i postgresql-standalone-0 -- \ bash -c "PGPASSWORD='rppassword' psql -U postgres reportportal" \ < reportportal_backup.sql
-
Uninstall standalone PostgreSQL (keeping volume):
# Uninstall PostgreSQL but keep the PVC (default behavior) helm uninstall postgresql-standalone # Verify the PVC is still there and note the exact name kubectl get pvc | grep standalone # The PVC name should be: data-postgresql-standalone-0
-
Install ReportPortal with external PostgreSQL:
# Install ReportPortal pointing to the standalone PostgreSQL PVC helm install my-release \ --set postgresql.install=true \ --set postgresql.primary.persistence.existingClaim=data-postgresql-standalone-0 \ --version 25.8.8 \ reportportal/reportportal
- Backup your data before starting the migration
- Test the migration in a non-production environment first
- Monitor the upgrade process and check pod status after migration
- Verify data integrity after the migration is complete

☝️ Please note that chart versions and product release versions are now managed separately. Read here
This migration guide covers upgrading from ReportPortal version 25.1.x to 25.2.0. The migration process includes significant Helm chart changes that require careful attention.
⚠️ This guide applies only to installations with locally deployed dependencies; cloud or SaaS users should upgrade dependency versions according to their platform's documentation.
Review changes by comparing GitHub release tags: reportportal-25.5.28...reportportal-25.12.19
The ingress annotations structure has been simplified from nested format to flat format.
Before (OLD - no longer works):
ingress:
class: nginx
annotations:
nginx:
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/proxy-body-size: 128m
gce: {}
alb: {}
custom: {}After (NEW - required format):
ingress:
class: nginx
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/proxy-body-size: 128mAction: Remove the nested nginx:, gce:, alb:, custom: keys and move annotations directly under annotations:.
Readiness and liveness probe intervals have been decreased for faster startup (~42% improvement).
If you have custom configurations (extra init containers, sidecars, slow database connections, or resource-constrained environments), pods may fail health checks before they're ready.
Action: If your pods fail to start after upgrade, increase the probe settings:
serviceapi:
readinessProbe:
initialDelaySeconds: 60
periodSeconds: 20
failureThreshold: 10
livenessProbe:
initialDelaySeconds: 120
periodSeconds: 40
uat:
readinessProbe:
initialDelaySeconds: 60
periodSeconds: 20
livenessProbe:
initialDelaySeconds: 120
periodSeconds: 40If you were using auditLogs.enable=true and expecting the default sidecar, you now need to also set auditLogs.sidecar.enable=true.
Before:
serviceapi:
auditLogs:
enable: trueAfter:
serviceapi:
auditLogs:
enable: true
sidecar:
enable: true # Required to enable the built-in log streamerThe following new features are available after migration:
- Kubernetes Gateway API Support - Modern replacement for Ingress (Documentation)
- Custom Service Labels - For Prometheus ServiceMonitor integration
- Custom Secret Keys for Search Engine - Configurable OpenSearch/Elasticsearch credentials
- Deployment Strategy Configuration - Customizable rollout strategies
- Analyzer Storage Support - S3 and MinIO storage backends for analyzer
helm upgrade --install my-release ./reportportalhelm repo add reportportal https://reportportal.io/kubernetes
helm repo update reportportal
helm upgrade my-release reportportal/reportportal-
Check pod status:
kubectl get pods -l app.kubernetes.io/instance=my-release
-
Verify all services are running:
kubectl get deployments -l app.kubernetes.io/instance=my-release
-
Check application logs for errors:
kubectl logs -l app.kubernetes.io/name=api --tail=100
-
Access the UI and verify functionality