[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/reportportal-io)](https://artifacthub.io/packages/search?repo=reportportal-io) [![Join Slack chat!](https://img.shields.io/badge/slack-join-brightgreen.svg)](https://slack.epmrpp.reportportal.io/) [![stackoverflow](https://img.shields.io/badge/reportportal-stackoverflow-orange.svg?style=flat)](http://stackoverflow.com/questions/tagged/reportportal) [![GitHub contributors](https://img.shields.io/badge/contributors-102-blue.svg)](https://reportportal.io/community) [![Docker Pulls](https://img.shields.io/docker/pulls/reportportal/service-api.svg?maxAge=25920)](https://hub.docker.com/u/reportportal/) [![License](https://img.shields.io/badge/license-Apache-brightgreen.svg)](https://www.apache.org/licenses/LICENSE-2.0) [![Build with Love](https://img.shields.io/badge/build%20with-❤%EF%B8%8F%E2%80%8D-lightgrey.svg)](http://reportportal.io?style=flat) > ☝️ Before starting, ensure to create a [backup of ReportPortal](https://reportportal.io/docs) > The previous versions of the migrations are located [here](https://github.com/reportportal/reportportal/wiki) # Migration to 24.2 1. Review changes by comparing GitHub release tags: [reportportal-24.1.0...reportportal-24.2.0](https://github.com/reportportal/kubernetes/compare/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 2. Merge changes from [master](https://github.com/reportportal/kubernetes/tree/master) branch to your own repository or local files. 3. Change your own `values.yaml` regarding new values and image versions. Release 24.2.0 changes: - Service API has the new [AMQP settings](https://github.com/reportportal/kubernetes/blob/reportportal-24.2.0/reportportal/values.yaml#L165-L176) instead of `queues`. - RabbitMQ now requires additional [plugins](https://github.com/reportportal/kubernetes/blob/reportportal-24.2.0/reportportal/values.yaml#L867-L871) 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: - [rabbitmq_shovel](https://www.rabbitmq.com/shovel.html) - [rabbitmq_shovel_management](https://www.rabbitmq.com/docs/shovel#status) - [rabbitmq_consistent_hash_exchange](https://github.com/rabbitmq/rabbitmq-server/blob/main/deps/rabbitmq_consistent_hash_exchange/README.md) - All the ReportPortal services changed images to new versions. Check latest from the [dockerhub](https://hub.docker.com/u/reportportal). 4. Upgrade ReportPortal using the following command: - Local path: ```bash helm upgrade --install my-release ./reportportal ``` - From the Helm Chart repository: ```bash helm repo add reportportal https://reportportal.io/kubernetes helm repo update reportportal helm upgrade my-release reportportal/reportportal ``` --- # Migration to 24.1 1. Review changes by comparing GitHub release tags: [reportportal-23.2.0...reportportal-24.1.0](https://github.com/reportportal/kubernetes/compare/reportportal-23.2.0...reportportal-24.1.0) 2. Merge changes from [master](https://github.com/reportportal/kubernetes/tree/master) branch to your own repository or local files. 3. Change your own `values.yaml` regarding new values and image versions. Release 24.1 changes: - Service API has the new [pattern analysis and immediate IA configuration](https://github.com/reportportal/kubernetes/blob/reportportal-24.1.0/reportportal/values.yaml#L122-L128) values. - Service API [values](https://github.com/reportportal/kubernetes/blob/reportportal-24.1.0/reportportal/values.yaml#L118-L120) sets the frequency of launching the CRON, which terminates the launches if they remain in an `in-progress` state for an extended period. - Service Jobs included a new [CRON jobs to cleaning events](https://github.com/reportportal/kubernetes/blob/reportportal-24.1.0/reportportal/values.yaml#L281-L282) values. - All the ReportPortal services changed images to new `5.11.0` versions. Check the [dockerhub](https://hub.docker.com/u/reportportal). 4. Upgrade ReportPortal using the following command: - Local path: ```bash helm upgrade --install my-release ./reportportal ``` - From the Helm Chart repository: ```bash helm repo add reportportal https://reportportal.io/kubernetes helm repo update reportportal helm upgrade my-release reportportal/reportportal ``` --- # Migration to 25.1 ![Release 25 1](https://github.com/user-attachments/assets/bb330e6a-fc7b-4991-8002-bf82fb1cfc41) > ☝️ Please note that chart versions and product release versions are now managed separately. [Read here](https://reportportal.io/blog/simplified-helm-chart-versioning-for-reportportal) 1. Review changes by comparing GitHub release tags: [reportportal-24.1.0...reportportal-25.5.30](https://github.com/reportportal/kubernetes/compare/reportportal-24.1.0...reportportal-25.5.30) 2. Upgrade ReportPortal using the following command: - Local path: ```bash helm upgrade --install my-release ./reportportal ``` - From the Helm Chart repository: ```bash helm repo add reportportal https://reportportal.io/kubernetes helm repo update reportportal helm upgrade my-release reportportal/reportportal ``` --- # Migration to 25.1.6 ![25 1 6](https://github.com/user-attachments/assets/3340301c-9a6c-496c-9641-d81c37225501) > ☝️ Please note that chart versions and product release versions are now managed separately. [Read here](https://reportportal.io/blog/simplified-helm-chart-versioning-for-reportportal) ## Overview 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. ## Migration Steps ### 1. Review Changes Review changes by comparing GitHub release tags: [reportportal-24.1.0...reportportal-25.1.6](https://github.com/reportportal/kubernetes/compare/reportportal-25.1.0...reportportal-25.1.6) ### 2. Dependency Migration #### RabbitMQ and OpenSearch - **No migration required** for RabbitMQ and OpenSearch dependencies - These services can be upgraded directly without data migration #### PostgreSQL Migration (Required) If you're using the built-in PostgreSQL dependency, follow these steps: 1. **Create a database backup:** ```bash # 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 ``` 2. **Uninstall the previous ReportPortal release:** ```bash helm uninstall my-release ``` 3. **Install PostgreSQL standalone:** ```bash # 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 ``` 4. **Restore the database:** ```bash # 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 ``` 5. **Uninstall standalone PostgreSQL (keeping volume):** ```bash # 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 ``` 6. **Install ReportPortal with external PostgreSQL:** ```bash # 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 ``` ## Important Notes - **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 --- # Migration to 25.2 ![Release 25 2](https://github.com/user-attachments/assets/1c2be751-515b-46f0-9297-9620a34dc3e9) > ☝️ Please note that chart versions and product release versions are now managed separately. [Read here](https://reportportal.io/blog/simplified-helm-chart-versioning-for-reportportal) ## Overview 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. ## Migration Steps ### 1. Review Changes Review changes by comparing GitHub release tags: [reportportal-25.5.28...reportportal-25.12.19](https://github.com/reportportal/kubernetes/compare/reportportal-25.5.28...reportportal-25.12.19) ### 2. Breaking Changes - Action Required #### 2.1 Ingress Annotations Structure Changed The ingress annotations structure has been simplified from nested format to flat format. **Before (OLD - no longer works):** ```yaml 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):** ```yaml ingress: class: nginx annotations: nginx.ingress.kubernetes.io/ssl-redirect: "false" nginx.ingress.kubernetes.io/proxy-body-size: 128m ``` **Action:** Remove the nested `nginx:`, `gce:`, `alb:`, `custom:` keys and move annotations directly under `annotations:`. #### 2.2 Probe Timing Settings Reduced 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: ```yaml serviceapi: readinessProbe: initialDelaySeconds: 60 periodSeconds: 20 failureThreshold: 10 livenessProbe: initialDelaySeconds: 120 periodSeconds: 40 uat: readinessProbe: initialDelaySeconds: 60 periodSeconds: 20 livenessProbe: initialDelaySeconds: 120 periodSeconds: 40 ``` #### 2.3 Audit Logging Configuration Changed If you were using `auditLogs.enable=true` and expecting the default sidecar, you now need to also set `auditLogs.sidecar.enable=true`. **Before:** ```yaml serviceapi: auditLogs: enable: true ``` **After:** ```yaml serviceapi: auditLogs: enable: true sidecar: enable: true # Required to enable the built-in log streamer ``` ### 3. New Features Available The following new features are available after migration: - **Kubernetes Gateway API Support** - Modern replacement for Ingress ([Documentation](../../docs/gateway-api-deployment-guide.md)) - **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 ### 4. Upgrade ReportPortal #### From Local Path: ```bash helm upgrade --install my-release ./reportportal ``` #### From Helm Chart Repository: ```bash helm repo add reportportal https://reportportal.io/kubernetes helm repo update reportportal helm upgrade my-release reportportal/reportportal ``` ### 5. Post-Upgrade Verification 1. **Check pod status:** ```bash kubectl get pods -l app.kubernetes.io/instance=my-release ``` 2. **Verify all services are running:** ```bash kubectl get deployments -l app.kubernetes.io/instance=my-release ``` 3. **Check application logs for errors:** ```bash kubectl logs -l app.kubernetes.io/name=api --tail=100 ``` 4. **Access the UI** and verify functionality ---