Skip to content

Commit

Permalink
Release 24.1.1 (#384)
Browse files Browse the repository at this point in the history
* Fix uat readiness values

* Ingress path configuration

* hostAliases added for uat service

* Add path variables

* Fix some comments

* Update uat-deployment.yaml (#377)

* Update minikube-install.md

* Add persistent volume storge support (#380)

* Update GKE installation guide

* Update Minikube installation guide

* Update all chart dependencies to the latest versions (#381)

* Add gcpManaged cert checking

* Add support for setting hosts as string or array

* Add ARM arch support for init containers (#382)

* Change k8sWaitFor repo

* Split uat-secret according to the Helm linter error

* Split LOCATION env in GKE Installation guide

* Update reportportal/migrations image tag to 5.11.1

* Add Helm readiness test

---------

Co-authored-by: Vadzim Hushchanskou <vadzim_hushchanskou@epam.com>
Co-authored-by: hlebkanonik <hleb_kanonik@epam.com>
Co-authored-by: Vadzim Hushchanskou <HardNorth@users.noreply.github.com>
Co-authored-by: Yuliya Prihodko <107035036+pressayuliya@users.noreply.github.com>
  • Loading branch information
5 people committed Jun 3, 2024
1 parent e8e8832 commit fe5afd9
Show file tree
Hide file tree
Showing 22 changed files with 893 additions and 446 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
fetch-depth: 0

- name: Setup git credentials
uses: oleksiyrudenko/gha-git-credentials@v2
uses: oleksiyrudenko/gha-git-credentials@v2-latest
with:
name: 'reportportal.io'
email: 'support@reportportal.io'
Expand Down
104 changes: 86 additions & 18 deletions docs/gke-install.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,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}
Expand All @@ -70,7 +71,7 @@ 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
```

You can find more information about gcloud credential helper
Expand Down Expand Up @@ -110,36 +111,59 @@ 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).
For more information about creating a cluster in Autopilot mode you can find
[here](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}
```

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 you can find
[here](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
Expand All @@ -148,7 +172,7 @@ You can verify the cluster:

```bash
gcloud container clusters describe ${CLUSTER_NAME} \
--location=${LOCATION}
--location=${CLUSTER_LOCATION}
```

## Prepare Helm package for installation
Expand All @@ -162,7 +186,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 you can find
Expand All @@ -178,7 +202,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
Expand All @@ -196,7 +220,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
Expand Down Expand Up @@ -231,10 +255,34 @@ 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:
Expand All @@ -247,10 +295,30 @@ 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:
Expand Down Expand Up @@ -297,13 +365,13 @@ You can use [Cert-Manager](./cert-manager-config.md) to manage certificates for
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
Expand Down
67 changes: 62 additions & 5 deletions docs/minikube-install.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,12 @@
- [Install ReportPortal on Minikube](#install-reportportal-on-minikube)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Overview](#overview)
- [Start Minikube](#start-minikube)
- [Set up hostnames](#set-up-hostnames)
- [Install ReportPortal](#install-reportportal)
- [Install from Helm repo](#install-from-helm-repo)
- [Install from GitHub repo](#install-from-github-repo)
- [Access ReportPortal](#access-reportportal)
- [Clean up](#clean-up)

Expand All @@ -17,37 +20,91 @@

## 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 4096 --addons ingress
minikube start --cpus 4 --memory 8192 --addons ingress
```

### Set up hostnames

Add the following line to your `/etc/hosts` file:

```bash
echo "$(minikube ip) reportportal.local" | sudo tee -a /etc/hosts
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 \
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} \
${RELEASE_NAME}
--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://reportportal.local).
Open your browser and navigate to [http://reportportal.local](http://minikube.local).

## Clean up

Expand Down
17 changes: 8 additions & 9 deletions reportportal/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: v2
appVersion: "24.1"
description: ReportPortal.io AI-powered Test Automation Dashboard
name: reportportal
version: 24.1.0
version: 24.1.1
sources:
- https://github.com/reportportal/kubernetes
keywords:
Expand All @@ -13,23 +13,22 @@ maintainers:
dependencies:
# If you update version, please update also postgresql.image.tag in values.yaml
- name: postgresql
version: 10.16.2
repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
version: 15.3.5
repository: https://charts.bitnami.com/bitnami
condition: postgresql.install

# If you update version, please update also rabbitmq.image.tag in values.yaml
- name: rabbitmq
version: 10.3.9
repository: https://charts.bitnami.com/bitnami
version: 14.1.5
repository: https://charts.bitnami.com/bitnami
condition: rabbitmq.install

- name: opensearch
version: 2.17.0
version: 2.20.0
repository: https://opensearch-project.github.io/helm-charts/
condition: opensearch.install

# MinIO with Apache 2.0 license
- name: minio
version: 6.7.7
repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
version: 14.5.0
repository: https://charts.bitnami.com/bitnami
condition: minio.install
2 changes: 1 addition & 1 deletion reportportal/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ helm install my-release \
## Documentation

* [General User Manual](https://reportportal.io/docs/)
* [Expert guide and hacks for deploying ReportPortal on Kubernetes](https://reportportal.io/docs/installation-steps/DeployWithKubernetes)
* [Expert guide and hacks for deploying ReportPortal on Kubernetes](https://reportportal.io/docs/installation-steps/deploy-with-kubernetes/)
* [Quick Start Guide for Google Cloud Platform GKE](./docs/quick-start-gcp-gke.md)

## Community / Support
Expand Down
2 changes: 2 additions & 0 deletions reportportal/templates/NOTES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@ CHART NAME: {{ .Chart.Name }}
CHART VERSION: {{ .Chart.Version }}
APP VERSION: {{ .Chart.AppVersion }}

{{- if .Values.ingress.hosts}}
ReportPortal is now available at:
{{ toYaml .Values.ingress.hosts | indent 4 }}
{{- end}}

Welcome to ReportPortal, a TestOps service, that provides increased capabilities to speed up results analysis and reporting through the use of built-in analytic features.

Expand Down
Loading

0 comments on commit fe5afd9

Please sign in to comment.