From c1a3576ab0b6531953800352a0a5f89e2fae6ede Mon Sep 17 00:00:00 2001 From: Yuliya Prihodko <107035036+pressayuliya@users.noreply.github.com> Date: Tue, 4 Jun 2024 14:54:36 +0300 Subject: [PATCH 1/3] EPMRPP-90964 || Reqnroll Test Framework Integration (#745) Co-authored-by: Yuliya_Prihodko --- .../test-framework-integration/Net/Reqnroll.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 docs/log-data-in-reportportal/test-framework-integration/Net/Reqnroll.md diff --git a/docs/log-data-in-reportportal/test-framework-integration/Net/Reqnroll.md b/docs/log-data-in-reportportal/test-framework-integration/Net/Reqnroll.md new file mode 100644 index 000000000..bdf8ea6ee --- /dev/null +++ b/docs/log-data-in-reportportal/test-framework-integration/Net/Reqnroll.md @@ -0,0 +1,14 @@ +--- +sidebar_position: 5 +sidebar_label: Reqnroll +--- + +# ReportPortal Reqnroll Integration + +There is an agent to integrate [Reqnroll](https://reqnroll.net/) with ReportPortal. + +Reqnroll is an open-source Cucumber-style BDD test automation framework for .NET. + +It allows to outline your requirements using simple Given-When-Then scenarios and then transform them into automated tests to confirm they've been carried out correctly. + +[Installation guide](https://github.com/reportportal/agent-dotnet-reqnroll#readme) From 8ddcc55202ecfe4d909e64bc8bda2449dad5b320 Mon Sep 17 00:00:00 2001 From: Yuliya Prihodko <107035036+pressayuliya@users.noreply.github.com> Date: Tue, 4 Jun 2024 14:55:08 +0300 Subject: [PATCH 2/3] EPMRPP-90963 || Vitest Test Framework Integration (#746) Co-authored-by: Yuliya_Prihodko --- .../JavaScript/Vitest.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 docs/log-data-in-reportportal/test-framework-integration/JavaScript/Vitest.md diff --git a/docs/log-data-in-reportportal/test-framework-integration/JavaScript/Vitest.md b/docs/log-data-in-reportportal/test-framework-integration/JavaScript/Vitest.md new file mode 100644 index 000000000..bc05d4fbd --- /dev/null +++ b/docs/log-data-in-reportportal/test-framework-integration/JavaScript/Vitest.md @@ -0,0 +1,14 @@ +--- +sidebar_position: 12 +sidebar_label: Vitest +--- + +# ReportPortal Vitest Integration + +There is an agent to integrate [Vitest](https://vitest.dev/) with ReportPortal. + +Vitest is fast open-source Vite-native testing framework. + +With Vitest, developers can execute tests within Node.js to speed up the testing process. + +[Installation guide](https://github.com/reportportal/agent-js-vitest#readme) From 56029586091f46ab4b12102e19961fdf4d8fb47c Mon Sep 17 00:00:00 2001 From: Yuliya Prihodko <107035036+pressayuliya@users.noreply.github.com> Date: Wed, 5 Jun 2024 11:31:21 +0300 Subject: [PATCH 3/3] EPMRPP-91548 || Update Installation docs (#747) --- .../AdditionalConfigurationParameters.md | 2 +- docs/installation-steps/DeployOnUbuntuOS.md | 2 +- .../DeployWithAWSECSFargate.md | 2 +- docs/installation-steps/DeployWithMinikube.md | 108 ++++++++++++++++ .../MaintainCommandsCheatSheet.md | 2 +- .../MigrateOneInstanceToAnother.md | 2 +- .../ReportPortal23.1FileStorageOptions.md | 2 +- .../ScalingUpReportPortalAPIService.md | 2 +- .../SetupTSLSSLInTraefik2.0.x.md | 2 +- .../AmazonALBNGINXIngressController.md | 4 +- .../QuickStartWithGCPGKE.md | 121 ++++++++++++++---- 11 files changed, 216 insertions(+), 33 deletions(-) create mode 100644 docs/installation-steps/DeployWithMinikube.md diff --git a/docs/installation-steps/AdditionalConfigurationParameters.md b/docs/installation-steps/AdditionalConfigurationParameters.md index a67e21c65..cc0ff8379 100644 --- a/docs/installation-steps/AdditionalConfigurationParameters.md +++ b/docs/installation-steps/AdditionalConfigurationParameters.md @@ -1,5 +1,5 @@ --- -sidebar_position: 8 +sidebar_position: 9 sidebar_label: Additional configuration parameters --- diff --git a/docs/installation-steps/DeployOnUbuntuOS.md b/docs/installation-steps/DeployOnUbuntuOS.md index e7c2313a5..0f2560903 100644 --- a/docs/installation-steps/DeployOnUbuntuOS.md +++ b/docs/installation-steps/DeployOnUbuntuOS.md @@ -1,5 +1,5 @@ --- -sidebar_position: 14 +sidebar_position: 15 sidebar_label: Deploy on Ubuntu OS --- diff --git a/docs/installation-steps/DeployWithAWSECSFargate.md b/docs/installation-steps/DeployWithAWSECSFargate.md index a2eed2f19..cb4db2b7d 100644 --- a/docs/installation-steps/DeployWithAWSECSFargate.md +++ b/docs/installation-steps/DeployWithAWSECSFargate.md @@ -1,5 +1,5 @@ --- -sidebar_position: 13 +sidebar_position: 14 sidebar_label: Deploy with AWS ECS Fargate --- diff --git a/docs/installation-steps/DeployWithMinikube.md b/docs/installation-steps/DeployWithMinikube.md new file mode 100644 index 000000000..54a165b92 --- /dev/null +++ b/docs/installation-steps/DeployWithMinikube.md @@ -0,0 +1,108 @@ +--- +sidebar_position: 7 +sidebar_label: Deploy with Minikube +--- + +## Prerequisites + +- [Minikube](https://kubernetes.io/docs/tasks/tools/install-minikube/) +- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) +- [Helm](https://helm.sh/docs/intro/install/) + +## Installation + +### Overview + +In this guide, we will install ReportPortal on Minikube using Helm with +ReportPortal's services and the following dependencies: + +- PostgreSQL +- OpenSearch +- RabbitMQ + +Instead of Minio, we will use a Persistent Volume as a filesystem storage. + +### Start Minikube + +```bash +minikube start --cpus 4 --memory 8192 --addons ingress +``` + +### Set up hostnames + +Add the following line to your `/etc/hosts` file: + +```bash +echo "$(minikube ip) minikube.local" | sudo tee -a /etc/hosts +``` + +### Install ReportPortal + +#### Install from Helm repo + +```bash +helm repo add reportportal https://reportportal.io/kubernetes && helm repo update reportportal +``` + +```bash +export SUPERADMIN_PASSWORD=superadmin + +helm install reportportal \ + reportportal/reportportal \ + --set uat.superadminInitPasswd.password=${SUPERADMIN_PASSWORD} \ + --set storage.type=filesystem \ + --set minio.install=false +``` + +If you want to use Minio as a storage: + +```bash +export SUPERADMIN_PASSWORD=superadmin + +helm install reportportal \ + reportportal/reportportal \ + --set uat.superadminInitPasswd.password=${SUPERADMIN_PASSWORD} +``` + +#### Install from GitHub repo + +Call the following commands from the downloaded +[kubernetes](https://github.com/reportportal/kubernetes/) repository. + +```bash +# Download the chart dependencies +helm dependency build ./reportportal +``` + +```bash +# Install ReportPortal from ./reportportal/Chart.yaml +export SUPERADMIN_PASSWORD=superadmin + +helm install reportportal \ + ./reportportal \ + --set uat.superadminInitPasswd.password=${SUPERADMIN_PASSWORD} \ + --set storage.type=filesystem \ + --set minio.install=false +``` + +If you want to use Minio as a storage: + +```bash +helm install reportportal \ + ./reportportal \ + --set uat.superadminInitPasswd.password=${SUPERADMIN_PASSWORD} +``` + +### Access ReportPortal + +Open your browser and navigate to [http://reportportal.local](http://minikube.local). + +## Clean up + +```bash +helm uninstall reportportal +``` + +```bash +minikube stop && minikube delete +``` diff --git a/docs/installation-steps/MaintainCommandsCheatSheet.md b/docs/installation-steps/MaintainCommandsCheatSheet.md index f3f252657..dacab8d70 100644 --- a/docs/installation-steps/MaintainCommandsCheatSheet.md +++ b/docs/installation-steps/MaintainCommandsCheatSheet.md @@ -1,5 +1,5 @@ --- -sidebar_position: 7 +sidebar_position: 8 sidebar_label: Maintain commands Cheat sheet --- diff --git a/docs/installation-steps/MigrateOneInstanceToAnother.md b/docs/installation-steps/MigrateOneInstanceToAnother.md index b3f0ca307..4dc6a4257 100644 --- a/docs/installation-steps/MigrateOneInstanceToAnother.md +++ b/docs/installation-steps/MigrateOneInstanceToAnother.md @@ -1,5 +1,5 @@ --- -sidebar_position: 10 +sidebar_position: 11 sidebar_label: Migrate one instance to another --- diff --git a/docs/installation-steps/ReportPortal23.1FileStorageOptions.md b/docs/installation-steps/ReportPortal23.1FileStorageOptions.md index 9ab624fbb..c02238d67 100644 --- a/docs/installation-steps/ReportPortal23.1FileStorageOptions.md +++ b/docs/installation-steps/ReportPortal23.1FileStorageOptions.md @@ -1,5 +1,5 @@ --- -sidebar_position: 11 +sidebar_position: 12 sidebar_label: ReportPortal 23.1 File storage options --- diff --git a/docs/installation-steps/ScalingUpReportPortalAPIService.md b/docs/installation-steps/ScalingUpReportPortalAPIService.md index d2f9201ea..d19a0b197 100644 --- a/docs/installation-steps/ScalingUpReportPortalAPIService.md +++ b/docs/installation-steps/ScalingUpReportPortalAPIService.md @@ -1,5 +1,5 @@ --- -sidebar_position: 12 +sidebar_position: 13 sidebar_label: Scaling Up the ReportPortal Service API --- diff --git a/docs/installation-steps/SetupTSLSSLInTraefik2.0.x.md b/docs/installation-steps/SetupTSLSSLInTraefik2.0.x.md index 9582ec261..e46c377b0 100644 --- a/docs/installation-steps/SetupTSLSSLInTraefik2.0.x.md +++ b/docs/installation-steps/SetupTSLSSLInTraefik2.0.x.md @@ -1,5 +1,5 @@ --- -sidebar_position: 9 +sidebar_position: 10 sidebar_label: Setup TLS(SSL) in Traefik 2.0.x --- diff --git a/docs/installation-steps/deploy-with-kubernetes/AmazonALBNGINXIngressController.md b/docs/installation-steps/deploy-with-kubernetes/AmazonALBNGINXIngressController.md index f664710e9..5732be1fa 100644 --- a/docs/installation-steps/deploy-with-kubernetes/AmazonALBNGINXIngressController.md +++ b/docs/installation-steps/deploy-with-kubernetes/AmazonALBNGINXIngressController.md @@ -36,7 +36,9 @@ This will set up the NGINX Ingress controller with NodePort service type, using ## Request/Import SSL certificate in AWS Certificate Manager -> **Note:** Before requesting the certificate, you probably need to create a domain name in AWS. If you haven't done this before, follow this guide to create a Hosted Zone in Route 53: [Creating a public hosted zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingHostedZone.html) +:::note +Before requesting the certificate, you probably need to create a domain name in AWS. If you haven't done this before, follow this guide to create a Hosted Zone in Route 53: [Creating a public hosted zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingHostedZone.html) +::: To request a certificate provided by ACM for a domain name: diff --git a/docs/installation-steps/deploy-with-kubernetes/QuickStartWithGCPGKE.md b/docs/installation-steps/deploy-with-kubernetes/QuickStartWithGCPGKE.md index 45f1920ae..ef0a55c09 100644 --- a/docs/installation-steps/deploy-with-kubernetes/QuickStartWithGCPGKE.md +++ b/docs/installation-steps/deploy-with-kubernetes/QuickStartWithGCPGKE.md @@ -31,7 +31,8 @@ gcloud init Set up environment variables: ```bash -export LOCATION=us-central1 +export REPO_LOCATION=us-central1 +export CLUSTER_LOCATION=us-central1-a export PROJECT_ID={your_project_id} export CLUSTER_NAME={reportportal_cluster_name} export REPO_NAME={reportportal_helm_repo_name} @@ -41,7 +42,7 @@ export SUPERADMIN_PASSWORD={your_superadmin_password} ``` :::note -Here and below we use `us-central1` region as a location for GKE cluster.
+Here and below we use `us-central1` region as a location for GKE cluster.
However, you can use any other region. ::: @@ -53,17 +54,17 @@ Just perform the following commands: ```bash gcloud auth login -gcloud auth configure-docker ${LOCATION}-docker.pkg.dev +gcloud auth configure-docker ${REPO_LOCATION}-docker.pkg.dev ``` -Find more information about [gcloud credential helper](https://cloud.google.com/artifact-registry/docs/docker/authentication#gcloud-helper). +You can find more information about [gcloud credential helper](https://cloud.google.com/artifact-registry/docs/docker/authentication#gcloud-helper). ## Adjust Google Cloud IAM Installation of ReportPortal requires setting up access to your GKE cluster for creating a service account in GKE and providing permissions for some services to access Kubernetes API. -For adjusting access, you can do it using both [Identity and Access Management (IAM) +For adjusting access, you can do it using [both Identity and Access Management (IAM) and Kubernetes RBAC](https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control#iam-interaction). You can use [Predefined GKE Roles](https://cloud.google.com/kubernetes-engine/docs/how-to/iam#predefined) and update @@ -86,7 +87,7 @@ of GKE clusters: - [Standard](https://cloud.google.com/kubernetes-engine/docs/concepts/choose-cluster-mode#why-standard) :::note -We recommend to use Autopilot mode.
+We recommend to use Autopilot mode.
It is a managed Kubernetes environment that reduces the operational cost. ::: @@ -96,34 +97,60 @@ It's pretty simple to create a cluster in Autopilot mode: ```bash gcloud container clusters create-auto ${CLUSTER_NAME} \ - --location=${LOCATION} + --location=${REPO_LOCATION} ``` +:::note +You can use the Google Filestore CSI driver for the Autopilot cluster.
+It is enabled by default.
+Minimal storage size for Google Filestore is 1 TB.
+Check the [pricing](https://cloud.google.com/filestore/pricing). +::: + More information about [creating a cluster in Autopilot mode](https://cloud.google.com/kubernetes-engine/docs/how-to/creating-an-autopilot-cluster). ### Create a cluster in Standard mode For a standard cluster you need to specify a machine type and a number of nodes. -ReportPortal requires at least 3 nodes with 2 vCPU and 4 GB memory for each. -We recommend using `e2-standard-2` machine type with 2 vCPU and 8 GB memory: +ReportPortal requires at least 3 nodes with 4 vCPU and 6 GB memory for each in +the Kubernetes with infrastructure dependencies. +We recommend using `custom-4-6144` machine type with 4 vCPU and 6 GB memory +as a minimal configuration. + +If you want avoid using MinIO or Google Cloud Storage, you can use a filesystem storage type +and Google Filestore as a storage class. + +For this, you need to enable the `Google Filestore CSI driver` when creating a cluster: ```bash -export MACHINE_TYPE=e2-standard-2 +export MACHINE_TYPE=custom-4-6144 gcloud container clusters create ${CLUSTER_NAME} \ - --zone=${LOCATION} \ - --machine-type=${MACHINE_TYPE} \ - --num-nodes=3 + --addons=GcpFilestoreCsiDriver \ + --zone=${ZONE} \ + --machine-type=${MACHINE_TYPE} ``` -More information about [creating a cluster in Standard mode](https://cloud.google.com/kubernetes-engine/docs/how-to/creating-a-zonal-cluster#gcloud). +or you can enable it after the cluster creation: + +```bash +gcloud container clusters update ${CLUSTER_NAME} \ + --update-addons=GcpFilestoreCsiDriver=ENABLED +``` + +:::note +Minimal storage size for Google Filestore is 1 TB.
+Check the [pricing](https://cloud.google.com/filestore/pricing). +::: + +More information about creating a [cluster in Standard mode](https://cloud.google.com/kubernetes-engine/docs/how-to/creating-a-zonal-cluster#gcloud). ### Get cluster credentials for kubectl ```bash gcloud container clusters get-credentials ${CLUSTER_NAME} \ - --location=${LOCATION} + --location=${CLUSTER_LOCATION} ``` ### Verify the cluster mode @@ -132,7 +159,7 @@ You can verify the cluster: ```bash gcloud container clusters describe ${CLUSTER_NAME} \ - --location=${LOCATION} + --location=${CLUSTER_LOCATION} ``` ## Prepare Helm package for installation @@ -146,7 +173,7 @@ Create a repository in Artifact Registry for ReportPortal Helm charts: ```bash gcloud artifacts repositories create ${REPO_NAME} --repository-format=docker \ - --location=${LOCATION} --description="ReportPortal Helm repository" + --location=${REPO_LOCATION} --description="ReportPortal Helm repository" ``` More information about [Store Helm charts in the Artifact Registry](https://cloud.google.com/artifact-registry/docs/helm/store-helm-charts). @@ -161,7 +188,7 @@ gcloud artifacts repositories list ```bash gcloud auth print-access-token | helm registry login -u oauth2accesstoken \ - --password-stdin https://${LOCATION}-docker.pkg.dev + --password-stdin https://${REPO_LOCATION}-docker.pkg.dev ``` ### Build and push Helm chart @@ -179,7 +206,7 @@ and your project id: cd kubernetes/reportportal helm dependency update helm package . -helm push reportportal-${VERSION}.tgz oci://${LOCATION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME} +helm push reportportal-${VERSION}.tgz oci://${REPO_LOCATION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME} ``` ## Install ReportPortal from Artifact Registry @@ -196,7 +223,7 @@ By default, ReportPortal Helm chart install with infrastructure dependencies in You can disable an installation of some components via Helm chart values, but you have to provide new credentials for your standalone components. -More information about it you can find here: [Install the chart with dependencies](https://github.com/reportportal/kubernetes#install-the-chart-with-dependencies). +More information about [Installing the chart with dependencies](https://github.com/reportportal/kubernetes#install-the-chart-with-dependencies). For installing ReportPortal on GKE Autopilot Cluster, you need to set the: @@ -213,10 +240,35 @@ helm install \ --set serviceapi.resources.requests.memory="2Gi" \ --set serviceanalyzer.resources.requests.memory="1Gi" \ ${RELEASE_NAME} \ - oci://${LOCATION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME}/reportportal \ + oci://${REPO_LOCATION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME}/reportportal \ + --version ${VERSION} +``` + +If you want to use Google Filestore instead of MinIO, you need to set +the `storage.type` to `filesystem`, `storage.volume.storageClassName` +to `standard-rwx`, and disable MinIO installation: + +```bash +helm install \ + --set ingress.class="gce" \ + --set uat.superadminInitPasswd.password=${SUPERADMIN_PASSWORD} \ + --set uat.resources.requests.memory="1Gi" \ + --set serviceapi.resources.requests.cpu="1000m" \ + --set serviceapi.resources.requests.memory="2Gi" \ + --set serviceanalyzer.resources.requests.memory="1Gi" \ + --set storage.type="filesystem" \ + --set storage.volume.storageClassName="standard-rwx" \ + --set minio.install=false \ + ${RELEASE_NAME} \ + oci://${REPO_LOCATION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME}/reportportal \ --version ${VERSION} ``` +:::note +Minimal storage size for Google Filestore is 1 TB.
+Check the [pricing](https://cloud.google.com/filestore/pricing). +::: +> ### Install Helm chart on GKE Standard Cluster For installing ReportPortal on GKE Standard Cluster you need to set: @@ -229,10 +281,31 @@ helm install \ --set ingress.class="gce" \ --set uat.superadminInitPasswd.password=${SUPERADMIN_PASSWORD} \ ${RELEASE_NAME} \ - oci://${LOCATION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME}/reportportal \ + oci://${REPO_LOCATION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME}/reportportal \ --version ${VERSION} ``` +If you want to use Google Filestore instead of MinIO, you need to set +the `storage.type` to `filesystem`, `storage.volume.storageClassName` +to `standard-rwx`, and disable MinIO installation: + +```bash +helm install \ + --set ingress.class="gce" \ + --set uat.superadminInitPasswd.password=${SUPERADMIN_PASSWORD} \ + --set storage.type="filesystem" \ + --set storage.volume.storageClassName="standard-rwx" \ + --set minio.install=false \ + ${RELEASE_NAME} \ + oci://${REPO_LOCATION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME}/reportportal \ + --version ${VERSION} +``` + +:::note +Minimal storage size for Google Filestore is 1 TB.
+Check the [pricing](https://cloud.google.com/filestore/pricing). +::: + ## Ingress configuration You can add custom gce ingress annotations via `ingress.annotations.gce` parameter: @@ -281,13 +354,13 @@ You can use [Cert-Manager](https://github.com/reportportal/kubernetes/blob/maste To delete the cluster: ```bash -gcloud container clusters delete ${CLUSTER_NAME} --location=${LOCATION} +gcloud container clusters delete ${CLUSTER_NAME} --location=${CLUSTER_LOCATION} ``` To delete the artifacts repository: ```bash -gcloud artifacts repositories delete ${CLUSTER_NAME} --location=${LOCATION} +gcloud artifacts repositories delete ${CLUSTER_NAME} --location=${REPO_LOCATION} ``` ### Disable HTTP Load Balancing