From dc395f749866056a52a6c874cdf0878c5996441d Mon Sep 17 00:00:00 2001 From: Reingold Shekhtel <13565058+raikbitters@users.noreply.github.com> Date: Wed, 3 Jul 2024 11:09:49 +0200 Subject: [PATCH 01/29] Update chart version --- reportportal/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reportportal/Chart.yaml b/reportportal/Chart.yaml index d913065..ff0f2cb 100644 --- a/reportportal/Chart.yaml +++ b/reportportal/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 appVersion: "24.1" description: ReportPortal.io AI-powered Test Automation Dashboard name: reportportal -version: 24.1.1 +version: 24.1.2 sources: - https://github.com/reportportal/kubernetes keywords: From 4324a2dd7c913e0b39a54770e61710a68541eea1 Mon Sep 17 00:00:00 2001 From: piotr-smietana-kaseya Date: Fri, 5 Jul 2024 11:27:25 +0000 Subject: [PATCH 02/29] feat: allow parametrization of db password key --- reportportal/templates/service-api/api-deployment.yaml | 2 +- .../templates/service-authorization/uat-deployment.yaml | 2 +- reportportal/templates/service-jobs/jobs-deployment.yaml | 2 +- reportportal/templates/service-migrations/migrations-job.yaml | 2 +- .../statefullset-auto-analyzer/metrics-gatherer-deployment.yaml | 2 +- reportportal/values.yaml | 1 + 6 files changed, 6 insertions(+), 5 deletions(-) diff --git a/reportportal/templates/service-api/api-deployment.yaml b/reportportal/templates/service-api/api-deployment.yaml index 201456a..b66fc4a 100644 --- a/reportportal/templates/service-api/api-deployment.yaml +++ b/reportportal/templates/service-api/api-deployment.yaml @@ -133,7 +133,7 @@ spec: valueFrom: secretKeyRef: name: "{{ .Values.database.secretName }}" - key: "postgresql-password" + key: "{{ .Values.database.passwordKeyName }}" {{- else }} value: "{{ .Values.database.password }}" {{- end }} diff --git a/reportportal/templates/service-authorization/uat-deployment.yaml b/reportportal/templates/service-authorization/uat-deployment.yaml index 4f80f43..a2faf7f 100644 --- a/reportportal/templates/service-authorization/uat-deployment.yaml +++ b/reportportal/templates/service-authorization/uat-deployment.yaml @@ -115,7 +115,7 @@ spec: valueFrom: secretKeyRef: name: "{{ .Values.database.secretName }}" - key: "postgresql-password" + key: "{{ .Values.database.passwordKeyName }}" {{- else }} value: "{{ .Values.database.password }}" {{- end }} diff --git a/reportportal/templates/service-jobs/jobs-deployment.yaml b/reportportal/templates/service-jobs/jobs-deployment.yaml index 1fc3ea5..63c0f8d 100644 --- a/reportportal/templates/service-jobs/jobs-deployment.yaml +++ b/reportportal/templates/service-jobs/jobs-deployment.yaml @@ -136,7 +136,7 @@ spec: valueFrom: secretKeyRef: name: "{{ .Values.database.secretName }}" - key: "postgresql-password" + key: "{{ .Values.database.passwordKeyName }}" {{- else }} value: "{{ .Values.database.password }}" {{- end }} diff --git a/reportportal/templates/service-migrations/migrations-job.yaml b/reportportal/templates/service-migrations/migrations-job.yaml index 8a92683..04bc5d6 100644 --- a/reportportal/templates/service-migrations/migrations-job.yaml +++ b/reportportal/templates/service-migrations/migrations-job.yaml @@ -38,7 +38,7 @@ spec: valueFrom: secretKeyRef: name: "{{ .Values.database.secretName }}" - key: "postgresql-password" + key: "{{ .Values.database.passwordKeyName }}" {{ else }} value: "{{ .Values.database.password }}" {{ end }} diff --git a/reportportal/templates/statefullset-auto-analyzer/metrics-gatherer-deployment.yaml b/reportportal/templates/statefullset-auto-analyzer/metrics-gatherer-deployment.yaml index 1a5c8c5..076fd13 100644 --- a/reportportal/templates/statefullset-auto-analyzer/metrics-gatherer-deployment.yaml +++ b/reportportal/templates/statefullset-auto-analyzer/metrics-gatherer-deployment.yaml @@ -106,7 +106,7 @@ spec: valueFrom: secretKeyRef: name: "{{ .Values.database.secretName }}" - key: "postgresql-password" + key: "{{ .Values.database.passwordKeyName }}" {{- else }} value: "{{ .Values.database.password }}" {{- end }} diff --git a/reportportal/values.yaml b/reportportal/values.yaml index fd63bb1..0c44b79 100644 --- a/reportportal/values.yaml +++ b/reportportal/values.yaml @@ -494,6 +494,7 @@ migrations: database: secretName: "" + passwordKeyName: "postgresql-password" ## @param database.endpoint by default {{ .Release.Name }}-postgresql.{{ .Release.Namespace }}.svc.cluster.local endpoint: port: &dbport 5432 From 80e5c61dc591242a07bc79cbb46c5f5b68de4675 Mon Sep 17 00:00:00 2001 From: "hleb_kanonik@epam.com" Date: Fri, 5 Jul 2024 15:40:20 +0200 Subject: [PATCH 03/29] chore: Update RabbitMQ chart and image versions --- reportportal/Chart.yaml | 2 +- reportportal/values.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/reportportal/Chart.yaml b/reportportal/Chart.yaml index ff0f2cb..47cc212 100644 --- a/reportportal/Chart.yaml +++ b/reportportal/Chart.yaml @@ -19,7 +19,7 @@ dependencies: # If you update version, please update also rabbitmq.image.tag in values.yaml - name: rabbitmq - version: 14.1.5 + version: 14.4.4 repository: https://charts.bitnami.com/bitnami condition: rabbitmq.install diff --git a/reportportal/values.yaml b/reportportal/values.yaml index 0c44b79..57085ae 100644 --- a/reportportal/values.yaml +++ b/reportportal/values.yaml @@ -712,7 +712,7 @@ rabbitmq: image: registry: docker.io repository: bitnami/rabbitmq - tag: 3.13.2 + tag: 3.13.3-debian-12-r0 auth: username: *msgbrokerUser password: *msgbrokerPass From 75d870347c9a71f18281d06eccd0927dc4f1f19f Mon Sep 17 00:00:00 2001 From: millerick Date: Mon, 8 Jul 2024 10:45:58 -0700 Subject: [PATCH 04/29] Update README.md --- reportportal/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reportportal/README.md b/reportportal/README.md index 1872d4a..9b3600d 100644 --- a/reportportal/README.md +++ b/reportportal/README.md @@ -57,7 +57,7 @@ These dependencies are integrated into the distribution by default. To deactivat ```bash helm install my-release \ - --set postgresql.install=fasle \ + --set postgresql.install=false \ --set database.endpoint=my-postgresql.host.local \ --set database.port=5432 \ --set database.user=my-user \ From fe057ef96228994b708056720f1c74792f9af9d4 Mon Sep 17 00:00:00 2001 From: Hleb Kanonik Date: Wed, 10 Jul 2024 15:22:24 +0200 Subject: [PATCH 05/29] Global Values & Custom RBAC (#401) * Refactoring comments * Image registry as global parameter #389 * Improper k8s RBAC API Groups #373 --- reportportal/templates/_helpers.tpl | 24 +- .../templates/authorization/role.yaml | 15 +- .../templates/service-api/api-deployment.yaml | 8 +- .../service-authorization/uat-deployment.yaml | 6 +- .../service-index/index-deployment.yaml | 4 +- .../service-jobs/jobs-deployment.yaml | 6 +- .../service-migrations/migrations-job.yaml | 4 +- .../templates/service-ui/ui-deployment.yaml | 4 +- .../analyzer-statefulset.yaml | 6 +- .../analyzertrain-statefulset.yaml | 6 +- .../metrics-gatherer-deployment.yaml | 6 +- reportportal/values.yaml | 480 +++++++++++------- 12 files changed, 361 insertions(+), 208 deletions(-) diff --git a/reportportal/templates/_helpers.tpl b/reportportal/templates/_helpers.tpl index 0ee2339..8b6d82f 100644 --- a/reportportal/templates/_helpers.tpl +++ b/reportportal/templates/_helpers.tpl @@ -3,7 +3,7 @@ Expand the name of the chart. */}} {{- define "reportportal.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- default .Chart.Name .Values.global.nameOverride | trunc 63 | trimSuffix "-" -}} {{- end -}} {{/* @@ -13,9 +13,9 @@ If release name contains chart name it will be used as a full name. */}} {{- define "reportportal.fullname" -}} {{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- .Values.global.fullnameOverride | trunc 63 | trimSuffix "-" -}} {{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- $name := default .Chart.Name .Values.global.nameOverride -}} {{- if contains $name .Release.Name -}} {{- .Release.Name | trunc 63 | trimSuffix "-" -}} {{- else -}} @@ -51,3 +51,21 @@ Create the name of the service account to use {{ default "default" .Values.serviceAccount.name }} {{- end -}} {{- end -}} + +{{/* +Create image name +*/}} +{{- define "reportportal.image" -}} +{{- $service := .service -}} +{{- $globalRegistry := .Values.global.imageRegistry -}} +{{- $imageRepository := index .Values $service "image" "repository" -}} +{{- $imageTag := index .Values $service "image" "tag" -}} +{{- if $globalRegistry }} +{{- printf "%s/%s:%s" $globalRegistry $imageRepository $imageTag -}} +{{- else -}} +{{- printf "%s:%s" $imageRepository $imageTag -}} +{{- end -}} +{{- end -}} + + + diff --git a/reportportal/templates/authorization/role.yaml b/reportportal/templates/authorization/role.yaml index c499d04..1a39d87 100644 --- a/reportportal/templates/authorization/role.yaml +++ b/reportportal/templates/authorization/role.yaml @@ -2,10 +2,15 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: - name: {{ include "reportportal.fullname" . }}-service-reader - namespace: {{ .Release.Namespace }} + name: {{ include "reportportal.fullname" . }}-service-reader + namespace: {{ .Release.Namespace }} rules: - - apiGroups: ["", "batch"] - resources: ["pods","services", "jobs"] - verbs: ["get", "list", "watch"] + {{- if .Values.rbac.rules }} + {{- toYaml .Values.rbac.rules | nindent 4 }} + {{- else }} + - apiGroups: ["", "batch"] + resources: ["pods","services", "jobs"] + verbs: ["get", "list", "watch"] + {{- end}} + {{- end }} \ No newline at end of file diff --git a/reportportal/templates/service-api/api-deployment.yaml b/reportportal/templates/service-api/api-deployment.yaml index b66fc4a..1158468 100644 --- a/reportportal/templates/service-api/api-deployment.yaml +++ b/reportportal/templates/service-api/api-deployment.yaml @@ -31,13 +31,13 @@ spec: {{- end }} {{- end }} {{- end }} - {{- with .Values.imagePullSecrets }} + {{- with .Values.global.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} initContainers: - name: migrations-waiting-init - image: "{{ .Values.k8sWaitFor.image.repository }}:{{ .Values.k8sWaitFor.image.tag }}" + image: "{{ include "reportportal.image" (dict "Values" .Values "service" "k8sWaitFor") }}" imagePullPolicy: IfNotPresent args: - "job-wr" @@ -54,7 +54,7 @@ spec: {{- end }} containers: - name: "{{ $.Values.serviceapi.name | default "api" }}" - image: "{{ .Values.serviceapi.image.repository }}:{{ .Values.serviceapi.image.tag }}" + image: "{{ include "reportportal.image" (dict "Values" .Values "service" "serviceapi") }}" imagePullPolicy: "{{ .Values.serviceapi.pullPolicy }}" ports: - containerPort: 8585 @@ -220,7 +220,7 @@ spec: {{- end }} {{- if .Values.serviceapi.auditLogs.enable }} - name: auditlogstreamer - image: "{{ .Values.serviceapi.auditLogs.sidecar.image.repository }}:{{ .Values.serviceapi.auditLogs.sidecar.image.tag }}" + image: "{{ if .Values.global.imageRegistry }}{{ .Values.global.imageRegistry }}/{{ .Values.serviceapi.auditLogs.sidecar.image.repository }}:{{ .Values.serviceapi.auditLogs.sidecar.image.tag }}{{ else }}{{ .Values.serviceapi.auditLogs.sidecar.image.repository }}:{{ .Values.serviceapi.auditLogs.sidecar.image.tag }}{{ end }}" command: - /bin/sh args: diff --git a/reportportal/templates/service-authorization/uat-deployment.yaml b/reportportal/templates/service-authorization/uat-deployment.yaml index a2faf7f..e943c5a 100644 --- a/reportportal/templates/service-authorization/uat-deployment.yaml +++ b/reportportal/templates/service-authorization/uat-deployment.yaml @@ -32,13 +32,13 @@ spec: {{- end }} {{- end }} {{- end }} - {{- with .Values.imagePullSecrets }} + {{- with .Values.global.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} initContainers: - name: migrations-waiting-init - image: "{{ .Values.k8sWaitFor.image.repository }}:{{ .Values.k8sWaitFor.image.tag }}" + image: "{{ include "reportportal.image" (dict "Values" .Values "service" "k8sWaitFor") }}" imagePullPolicy: IfNotPresent args: - "job-wr" @@ -55,7 +55,7 @@ spec: {{- end }} containers: - name: "{{ $.Values.uat.name | default "uat" }}" - image: "{{ .Values.uat.image.repository }}:{{ .Values.uat.image.tag }}" + image: "{{ include "reportportal.image" (dict "Values" .Values "service" "uat") }}" imagePullPolicy: "{{ .Values.uat.pullPolicy }}" ports: - containerPort: 9999 diff --git a/reportportal/templates/service-index/index-deployment.yaml b/reportportal/templates/service-index/index-deployment.yaml index c406de1..33647f7 100644 --- a/reportportal/templates/service-index/index-deployment.yaml +++ b/reportportal/templates/service-index/index-deployment.yaml @@ -22,7 +22,7 @@ spec: {{ $key }}: {{ $value | quote }} {{- end }} spec: - {{- with .Values.imagePullSecrets }} + {{- with .Values.global.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} @@ -33,7 +33,7 @@ spec: serviceAccountName: {{ .Values.serviceindex.serviceAccountName | default (include "reportportal.serviceAccountName" .) }} containers: - name: {{ $.Values.serviceindex.name | default "index" }} - image: "{{ .Values.serviceindex.image.repository }}:{{ .Values.serviceindex.image.tag }}" + image: "{{ include "reportportal.image" (dict "Values" .Values "service" "serviceindex") }}" imagePullPolicy: "{{ .Values.serviceindex.pullPolicy }}" env: - name: K8S_MODE diff --git a/reportportal/templates/service-jobs/jobs-deployment.yaml b/reportportal/templates/service-jobs/jobs-deployment.yaml index 63c0f8d..43857dc 100644 --- a/reportportal/templates/service-jobs/jobs-deployment.yaml +++ b/reportportal/templates/service-jobs/jobs-deployment.yaml @@ -20,13 +20,13 @@ spec: {{ $key }}: {{ $value | quote }} {{- end }} spec: - {{- with .Values.imagePullSecrets }} + {{- with .Values.global.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} initContainers: - name: migrations-waiting-init - image: "{{ .Values.k8sWaitFor.image.repository }}:{{ .Values.k8sWaitFor.image.tag }}" + image: "{{ include "reportportal.image" (dict "Values" .Values "service" "k8sWaitFor") }}" imagePullPolicy: IfNotPresent args: - "job-wr" @@ -43,7 +43,7 @@ spec: {{- end }} containers: - name: "{{ $.Values.servicejobs.name | default "jobs" }}" - image: "{{ .Values.servicejobs.image.repository }}:{{ .Values.servicejobs.image.tag }}" + image: "{{ include "reportportal.image" (dict "Values" .Values "service" "servicejobs") }}" imagePullPolicy: "{{ .Values.servicejobs.pullPolicy }}" ports: - containerPort: 8686 diff --git a/reportportal/templates/service-migrations/migrations-job.yaml b/reportportal/templates/service-migrations/migrations-job.yaml index 04bc5d6..76f167a 100644 --- a/reportportal/templates/service-migrations/migrations-job.yaml +++ b/reportportal/templates/service-migrations/migrations-job.yaml @@ -17,7 +17,7 @@ spec: {{- end }} spec: restartPolicy: OnFailure - {{- with .Values.imagePullSecrets }} + {{- with .Values.global.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} @@ -65,7 +65,7 @@ spec: - name: OS_PASSWORD value: "{{ .Values.searchengine.password }}" {{- end }} - image: "{{ .Values.migrations.image.repository }}:{{ .Values.migrations.image.tag }}" + image: "{{ include "reportportal.image" (dict "Values" .Values "service" "migrations") }}" imagePullPolicy: "{{ .Values.migrations.pullPolicy }}" name: migrations resources: diff --git a/reportportal/templates/service-ui/ui-deployment.yaml b/reportportal/templates/service-ui/ui-deployment.yaml index 586f3ff..b215d89 100644 --- a/reportportal/templates/service-ui/ui-deployment.yaml +++ b/reportportal/templates/service-ui/ui-deployment.yaml @@ -20,7 +20,7 @@ spec: {{ $key }}: {{ $value | quote }} {{- end }} spec: - {{- with .Values.imagePullSecrets }} + {{- with .Values.global.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} @@ -30,7 +30,7 @@ spec: {{- end }} containers: - name: {{ $.Values.serviceui.name | default "ui" }} - image: "{{ .Values.serviceui.image.repository }}:{{ .Values.serviceui.image.tag }}" + image: "{{ include "reportportal.image" (dict "Values" .Values "service" "serviceui") }}" imagePullPolicy: "{{ .Values.serviceui.pullPolicy }}" env: - name: RP_SERVER_PORT diff --git a/reportportal/templates/statefullset-auto-analyzer/analyzer-statefulset.yaml b/reportportal/templates/statefullset-auto-analyzer/analyzer-statefulset.yaml index ccf4e3c..fb2ca8d 100644 --- a/reportportal/templates/statefullset-auto-analyzer/analyzer-statefulset.yaml +++ b/reportportal/templates/statefullset-auto-analyzer/analyzer-statefulset.yaml @@ -21,13 +21,13 @@ spec: {{ $key }}: {{ $value | quote }} {{- end }} spec: - {{- with .Values.imagePullSecrets }} + {{- with .Values.global.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} initContainers: - name: migrations-waiting-init - image: "{{ .Values.k8sWaitFor.image.repository }}:{{ .Values.k8sWaitFor.image.tag }}" + image: "{{ include "reportportal.image" (dict "Values" .Values "service" "k8sWaitFor") }}" imagePullPolicy: IfNotPresent args: - "pod-wr" @@ -44,7 +44,7 @@ spec: {{- end }} containers: - name: "{{ $.Values.serviceanalyzer.name | default "analyzer" }}" - image: "{{ .Values.serviceanalyzer.image.repository }}:{{ .Values.serviceanalyzer.image.tag }}" + image: "{{ include "reportportal.image" (dict "Values" .Values "service" "serviceanalyzer") }}" imagePullPolicy: "{{ .Values.serviceanalyzer.pullPolicy }}" ports: - containerPort: 5001 diff --git a/reportportal/templates/statefullset-auto-analyzer/analyzertrain-statefulset.yaml b/reportportal/templates/statefullset-auto-analyzer/analyzertrain-statefulset.yaml index 3072111..7a9dc8d 100644 --- a/reportportal/templates/statefullset-auto-analyzer/analyzertrain-statefulset.yaml +++ b/reportportal/templates/statefullset-auto-analyzer/analyzertrain-statefulset.yaml @@ -21,13 +21,13 @@ spec: {{ $key }}: {{ $value | quote }} {{- end }} spec: - {{- with .Values.imagePullSecrets }} + {{- with .Values.global.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} initContainers: - name: migrations-waiting-init - image: "{{ .Values.k8sWaitFor.image.repository }}:{{ .Values.k8sWaitFor.image.tag }}" + image: "{{ include "reportportal.image" (dict "Values" .Values "service" "k8sWaitFor") }}" imagePullPolicy: IfNotPresent args: - "pod-wr" @@ -44,7 +44,7 @@ spec: {{- end }} containers: - name: "{{ $.Values.serviceanalyzertrain.name | default "analyzer-train" }}" - image: "{{ .Values.serviceanalyzer.image.repository }}:{{ .Values.serviceanalyzer.image.tag }}" + image: "{{ include "reportportal.image" (dict "Values" .Values "service" "serviceanalyzer") }}" imagePullPolicy: "{{ .Values.serviceanalyzertrain.pullPolicy }}" ports: - containerPort: 5001 diff --git a/reportportal/templates/statefullset-auto-analyzer/metrics-gatherer-deployment.yaml b/reportportal/templates/statefullset-auto-analyzer/metrics-gatherer-deployment.yaml index 076fd13..31596a0 100644 --- a/reportportal/templates/statefullset-auto-analyzer/metrics-gatherer-deployment.yaml +++ b/reportportal/templates/statefullset-auto-analyzer/metrics-gatherer-deployment.yaml @@ -20,13 +20,13 @@ spec: {{ $key }}: {{ $value | quote }} {{- end }} spec: - {{- with .Values.imagePullSecrets }} + {{- with .Values.global.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} initContainers: - name: migrations-waiting-init - image: "{{ .Values.k8sWaitFor.image.repository }}:{{ .Values.k8sWaitFor.image.tag }}" + image: "{{ include "reportportal.image" (dict "Values" .Values "service" "k8sWaitFor") }}" imagePullPolicy: IfNotPresent args: - "pod-wr" @@ -43,7 +43,7 @@ spec: {{- end }} containers: - name: metrics-gatherer - image: "{{ .Values.metricsgatherer.image.repository }}:{{ .Values.metricsgatherer.image.tag }}" + image: "{{ include "reportportal.image" (dict "Values" .Values "service" "metricsgatherer") }}" imagePullPolicy: "{{ .Values.metricsgatherer.pullPolicy }}" ports: - containerPort: 5000 diff --git a/reportportal/values.yaml b/reportportal/values.yaml index 57085ae..b530549 100644 --- a/reportportal/values.yaml +++ b/reportportal/values.yaml @@ -1,10 +1,22 @@ ## ReportPortal.io AI-powered Test Automation Dashboard +## -## @param nameOverride expand the name of the chart -## @param fullnameOverride expand the fully qualified app name -nameOverride: "" -fullnameOverride: "" +## @section Global configuration +## +## @param global.imageRegistry Global image registry +## @param global.imagePullSecrets Global registry secret names as an array +## @param global.nameOverride expand the name of the chart +## @param global.fullnameOverride expand the fully qualified app name +## +global: + imageRegistry: "" + imagePullSecrets: [] + nameOverride: "" + fullnameOverride: "" + +## @param serviceindex Core ReportPortal service for the indexing +## serviceindex: name: index image: @@ -27,6 +39,7 @@ serviceindex: ## Use cloud.google.com/compute-class: "COMPUTE_CLASS" for specific GKE Autopilot compute class. ## Use kubernetes.io/arch: "ARCHITECTURE" for specific GKE Autopilot CPU architecture. ## Use disktype: "ssd" for specific disk type. + ## nodeSelector: {} service: type: "" @@ -35,6 +48,8 @@ serviceindex: extraPorts: [] annotations: {} +## @param serviceui Core ReportPortal service +## serviceui: name: ui image: @@ -55,6 +70,7 @@ serviceui: ## You can choose compute classes for GKE Autopilot Pods https://cloud.google.com/kubernetes-engine/docs/concepts/autopilot-compute-classes ## Use cloud.google.com/compute-class: "COMPUTE_CLASS" for specific GKE Autopilot compute class. ## Use kubernetes.io/arch: "ARCHITECTURE" for specific GKE Autopilot CPU architecture. + ## nodeSelector: {} serviceAccountName: "" service: @@ -64,6 +80,8 @@ serviceui: extraPorts: [] annotations: {} +## @param serviceapi Core ReportPortal +## serviceapi: name: api image: @@ -91,14 +109,15 @@ serviceapi: cpu: 1000m memory: 2Gi - ## Configure Audit logs to be written to the API container's directory /var/log/reportportal/audit.log + ## @param serviceapi.auditLogs.enable enable sidecar container logs to write audit logs in the core container /var/log/reportportal/audit.log. + ## @param serviceapi.auditLogs.loglevel define log level + ## auditLogs: - ## Enable or disable the sidecar log streamer container enable: false - ## Set the log level for audit logs (info, debug, etc.) loglevel: info - # Configure sidecar container settings for Audit logs + ## @param serviceapi.auditLogs.sidecar define sidecar container configuration + ## sidecar: image: repository: busybox @@ -110,43 +129,50 @@ serviceapi: limits: cpu: 100m memory: 100Mi - - ## "Delete Account" button in UI - allowDeleteAccount: true ## set `false` to disable feature - - ## CRON Jobs + + ## @param serviceapi.allowDeleteAccount enable or disable "Delete Account" button in UI + ## + allowDeleteAccount: true + + ## @param serviceapi.cronJobs define the configuration for the cron jobs + ## cronJobs: - ## ISO 8601 duration format - interruptBrockenLaunches: PT1H + interruptBrockenLaunches: PT1H ## ISO8601 duration format - ## Pattern Analysis and Immediate IA configuration + ## @param serviceapi.patternAnalysis define the configuration for the pattern analysis and Immediate IA + ## @paran serviceapi.patternAnalysis.batchSize define the number of logs to be processed in one batch + ## @param serviceapi.patternAnalysis.prefetchCount define of the prefetch count for 'analysis.pattern.string' and 'analysis.pattern.regex' queues. + ## @param serviceapi.patternAnalysis.consumersCount define of the 'analysis.pattern.string' and 'analysis.pattern.regex' queues. Consumers count per each queue + ## patternAnalysis: batchSize: 100 - ## @param patternAnalysis.prefetchCount define of the prefetch count for 'analysis.pattern.string' and 'analysis.pattern.regex' queues. prefetchCount: 1 - ## @param patternAnalysis.consumersCount define of the 'analysis.pattern.string' and 'analysis.pattern.regex' queues. Consumers count per each queue consumersCount: 1 - ## JAVA_OPTS - ## If you need to use a custom java keystore you can use it through jvmArgs (e.g. jvmArgs: -Djavax.net.ssl.trustStore=/etc/secret-volume/custom-pki.jks) - - jvmArgs: "-Djava.security.egd=file:/dev/./urandom -XX:+UseG1GC -XX:MinRAMPercentage=60.0 -XX:InitiatingHeapOccupancyPercent=70 -XX:MaxRAMPercentage=90.0 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp" + ## @param serviceapi.javaArgs define the configuration for the JVM. + ## For custom java keystore add parameter: -Djavax.net.ssl.trustStore=/etc/secret-volume/custom-pki.jks ## - ## Number of queues - ## Where "totalNumber" is the total number of queues. Сalculation formula: perPodNumber = totalNumber / serviceapi.replicaCount + jvmArgs: "-Djava.security.egd=file:/dev/./urandom -XX:+UseG1GC -XX:MinRAMPercentage=60.0 -XX:InitiatingHeapOccupancyPercent=70 -XX:MaxRAMPercentage=90.0 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp" + + ## @param serviceapi.queues define the number for the queues + ## @param serviceapi.queues.totalNumber define the total number of queues + ## @param serviceapi.queues.perPodNumber define the number of queues per pod + ## How to calculate: @param serviceapi.queues.perPodNumber = @param serviceapi.queues.totalNumber / @ param serviceapi.replicaCount ## queues: totalNumber: 10 perPodNumber: 10 - ## Extra environment variables + + ## @param serviceapi.extraEnvs define the extra environment variables + ## extraEnvs: [] - ## - name: EXTRA_ENV - ## value: "TRUE" - ## - name: EXTRA_ENV_SECRET - ## valueFrom: - ## secretKeyRef: - ## name: "additional-credentials" - ## key: username + # - name: EXTRA_ENV + # value: "TRUE" + # - name: EXTRA_ENV_SECRET + # valueFrom: + # secretKeyRef: + # name: "additional-credentials" + # key: username podLabels: {} podAnnotations: {} securityContext: {} @@ -155,6 +181,7 @@ serviceapi: ## You can choose compute classes for GKE Autopilot Pods https://cloud.google.com/kubernetes-engine/docs/concepts/autopilot-compute-classes ## Use cloud.google.com/compute-class: COMPUTE_CLASS for specific GKE Autopilot compute class. ## Use kubernetes.io/arch: ARCHITECTURE for specific GKE Autopilot CPU architecture. + ## nodeSelector: {} serviceAccountName: "" service: @@ -164,32 +191,35 @@ serviceapi: extraPorts: [] annotations: {} - ## Provide a secret containing sensitives data + ## @param serviceapi.secret define the secret configuration ## e.g. provide a custom java keystore used in jvmArgs: ## keytool -genkeypair -storetype jks -alias todelete -keypass changeit -storepass changeit -keystore custom-pki.jks -dname "CN=Developer, OU=Department, O=Company, L=City, ST=State, C=CA" ## keytool -delete -alias todelete -storepass changeit -keystore custom-pki.jks ## keytool -list -keystore custom-pki.jks -storepass changeit ## Generate base64 data and paste it in your values.yaml: ## cat custom-pki.jks | base64 -w + ## secret: enabled: false mountPath: /etc/secret-volume readOnly: true data: {} - ## custom-pki.jks: + # custom-pki.jks: ## @param serviceapi.hostAliases define the hosts and IP addresses for the Pod's /etc/hosts file. + ## hostAliases: [] - # - ip: "127.0.0.1" - # hostnames: - # - "foo.local" - # - "bar.local" - # - ip: "10.1.2.3" - # hostnames: - # - "foo.remote" - # - "bar.remote" - - + # - ip: "127.0.0.1" + # hostnames: + # - "foo.local" + # - "bar.local" + # - ip: "10.1.2.3" + # hostnames: + # - "foo.remote" + # - "bar.remote" + +## @param serviceapi Core ReportPortal service for the authorization +## uat: name: uat image: @@ -218,52 +248,55 @@ uat: sessionLiveTime: 86400 samlSessionLiveTime: 4320 - ## RP_INITIAL_ADMIN_PASSWORD - the initial password of the superadmin user for the first launch. This value can't change the password on redeployments. - ## Create a K8S Secret and set the name to @param superadminInitPasswd.secretName for future redeplyments or upgrades. - + ## @param uat.superadminInitPasswd define the initial password of the superadmin user for the first launch. This value can't change the password on redeployments + ## @param uat.superadminInitPasswd.secretName define the secret name for the superadmin password + ## superadminInitPasswd: secretName: "" passwordKeyName: "superadmin-password" password: "" - podLabels: {} - podAnnotations: {} - - ## JAVA_OPTS - ## If you need to use a custom java keystore you can use it through jvmArgs (e.g. jvmArgs: -Djavax.net.ssl.trustStore=/etc/secret-volume/custom-pki.jks) + ## @param serviceapi.javaArgs define the configuration for the JVM. + ## For custom java keystore add parameter: -Djavax.net.ssl.trustStore=/etc/secret-volume/custom-pki.jks + ## jvmArgs: "-Djava.security.egd=file:/dev/./urandom -XX:MinRAMPercentage=60.0 -XX:MaxRAMPercentage=90.0" - ## Extra environment variables + + ## @param uat.extraEnvs define the extra environment variables + ## extraEnvs: [] - ## - name: EXTRA_ENV - ## value: "TRUE" - ## - name: EXTRA_ENV_SECRET - ## valueFrom: - ## secretKeyRef: - ## name: "additional-credentials" - ## key: username + # - name: EXTRA_ENV + # value: "TRUE" + # - name: EXTRA_ENV_SECRET + # valueFrom: + # secretKeyRef: + # name: "additional-credentials" + # key: username + podLabels: {} + podAnnotations: {} securityContext: {} - ## @param uat.nodeSelector define which Nodes the Pods are scheduled on. + ## @param uat.nodeSelector define which Nodes the Pods are scheduled on ## You can choose compute classes for GKE Autopilot Pods https://cloud.google.com/kubernetes-engine/docs/concepts/autopilot-compute-classes ## Use cloud.google.com/compute-class: "COMPUTE_CLASS" for specific GKE Autopilot compute class. ## Use kubernetes.io/arch: "ARCHITECTURE" for specific GKE Autopilot CPU architecture. + ## nodeSelector: {} serviceAccountName: "" - ## Provide a secret containing sensitives data + ## @param uat.secret define the secret configuration ## e.g. provide a custom java keystore used in jvmArgs: ## keytool -genkeypair -storetype jks -alias todelete -keypass changeit -storepass changeit -keystore custom-pki.jks -dname "CN=Developer, OU=Department, O=Company, L=City, ST=State, C=CA" ## keytool -delete -alias todelete -storepass changeit -keystore custom-pki.jks ## keytool -list -keystore custom-pki.jks -storepass changeit ## Generate base64 data and paste it in your values.yaml: ## cat custom-pki.jks | base64 -w - + ## secret: enabled: false mountPath: /etc/secret-volume readOnly: true data: {} - ## custom-pki.jks: + # custom-pki.jks: service: type: "" portName: "" @@ -272,16 +305,19 @@ uat: annotations: {} ## @param uat.hostAliases define the hosts and IP addresses for the Pod's /etc/hosts file. + ## hostAliases: [] - # - ip: "127.0.0.1" - # hostnames: - # - "foo.local" - # - "bar.local" - # - ip: "10.1.2.3" - # hostnames: - # - "foo.remote" - # - "bar.remote" - + # - ip: "127.0.0.1" + # hostnames: + # - "foo.local" + # - "bar.local" + # - ip: "10.1.2.3" + # hostnames: + # - "foo.remote" + # - "bar.remote" + +## @param serviceapi Core ReportPortal service for the CRON jobs to clean the database and storage +## servicejobs: name: jobs image: @@ -300,6 +336,17 @@ servicejobs: periodSeconds: 40 timeoutSeconds: 5 failureThreshold: 10 + + ## @param servicejobs.coreJobs define the configuration for the core jobs that clean the database and storage + ## @param servicejobs.cleanEventsRetention define the number of days to keep events in the database + ## @param servicejobs.cleanEventsCron define the cron expression for the clean events job + ## @param servicejobs.cleanAttachmentCron define the cron expression for the clean attachments job from database + ## @param servicejobs.cleanLogCron define the cron expression for the clean logs job + ## @param servicejobs.cleanLaunchCron define the cron expression for the clean launches job + ## @param servicejobs.cleanStorageCron define the cron expression for the clean storage job the binary storage + ## @param servicejobs.storageProjectCron define the cron expression for the calculating average project attachments storage job + ## @param servicejobs.chunksize define the number of binaries to be removed from binary storage by servicejobs.storageProjectCron within one job execution + ## coreJobs: cleanEventsRetention: 365 cleanEventsCron: 0 0 */24 * * * @@ -310,8 +357,9 @@ servicejobs: storageProjectCron: 0 */5 * * * * chunksize: 200000 - ## Double Entry purposes. The Jobs service processes logs at a rate of one log per millisecond. - ## Ref: https://reportportal.io/blog/double-entry-in-5.7.2 + ## @param servicejobs.logProcessing define the configuration for the log processing (a rate of one log per millisecond) + ## Use the double entry to move test logs from PostgreSQL to Elastic-type engines. Ref: https://reportportal.io/blog/double-entry-in-5.7.2 + ## logProcessing: maxBatchSize: 2000 maxBatchTimeout: 6000 @@ -324,24 +372,28 @@ servicejobs: memory: 512Mi jvmArgs: "-Djava.security.egd=file:/dev/./urandom -XX:+UseG1GC -XX:+UseStringDeduplication -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=60 -XX:MaxRAMPercentage=70.0 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp" - ## Extra environment variables + ## @param servicejobs.extraEnvs define the extra environment variables + ## extraEnvs: [] - ## - name: EXTRA_ENV - ## value: "TRUE" - ## - name: EXTRA_ENV_SECRET - ## valueFrom: - ## secretKeyRef: - ## name: "additional-credentials" - ## key: username + # - name: EXTRA_ENV + # value: "TRUE" + # - name: EXTRA_ENV_SECRET + # valueFrom: + # secretKeyRef: + # name: "additional-credentials" + # key: username podLabels: {} podAnnotations: {} securityContext: {} + ## @param servicejobs.nodeSelector define which Nodes the Pods are scheduled on. ## You can choose compute classes for GKE Autopilot Pods https://cloud.google.com/kubernetes-engine/docs/concepts/autopilot-compute-classes ## Use cloud.google.com/compute-class: COMPUTE_CLASS for specific GKE Autopilot compute class. ## Use kubernetes.io/arch: ARCHITECTURE for specific GKE Autopilot CPU architecture. + ## nodeSelector: {} serviceAccountName: "" + service: type: "" portName: "" @@ -349,6 +401,8 @@ servicejobs: extraPorts: [] annotations: {} +## @param serviceanalyzer Core ReportPortal service for the analysis of test results +## serviceanalyzer: name: analyzer image: @@ -366,19 +420,23 @@ serviceanalyzer: podLabels: {} podAnnotations: {} securityContext: {} - ## Extra environment variables + + ## @param serviceanalyzer.extraEnvs define the extra environment variables + ## extraEnvs: [] - ## - name: EXTRA_ENV - ## value: "TRUE" - ## - name: EXTRA_ENV_SECRET - ## valueFrom: - ## secretKeyRef: - ## name: "additional-credentials" - ## key: username + # - name: EXTRA_ENV + # value: "TRUE" + # - name: EXTRA_ENV_SECRET + # valueFrom: + # secretKeyRef: + # name: "additional-credentials" + # key: username + ## @param serviceanalyzer.nodeSelector define which Nodes the Pods are scheduled on. ## You can choose compute classes for GKE Autopilot Pods https://cloud.google.com/kubernetes-engine/docs/concepts/autopilot-compute-classes ## Use cloud.google.com/compute-class: "COMPUTE_CLASS" for specific GKE Autopilot compute class. ## Use kubernetes.io/arch: "ARCHITECTURE" for specific GKE Autopilot CPU architecture. + ## nodeSelector: {} serviceAccountName: "" service: @@ -388,6 +446,8 @@ serviceanalyzer: extraPorts: [] annotations: {} +## @param serviceanalyzertrain Core ReportPortal service for the training of the analysis of test results +## serviceanalyzertrain: name: analyzer-train pullPolicy: Always @@ -402,19 +462,22 @@ serviceanalyzertrain: podLabels: {} podAnnotations: {} securityContext: {} - ## Extra environment variables + + ## @param serviceanalyzertrain.extraEnvs define the extra environment variables extraEnvs: [] - ## - name: EXTRA_ENV - ## value: "TRUE" - ## - name: EXTRA_ENV_SECRET - ## valueFrom: - ## secretKeyRef: - ## name: "additional-credentials" - ## key: username + # - name: EXTRA_ENV + # value: "TRUE" + # - name: EXTRA_ENV_SECRET + # valueFrom: + # secretKeyRef: + # name: "additional-credentials" + # key: username + ## @param serviceanalyzertrain.nodeSelector define which Nodes the Pods are scheduled on. ## You can choose compute classes for GKE Autopilot Pods https://cloud.google.com/kubernetes-engine/docs/concepts/autopilot-compute-classes ## Use cloud.google.com/compute-class: "COMPUTE_CLASS" for specific GKE Autopilot compute class. ## Use kubernetes.io/arch: "ARCHITECTURE" for specific GKE Autopilot CPU architecture. + ## nodeSelector: {} serviceAccountName: "" service: @@ -424,6 +487,8 @@ serviceanalyzertrain: extraPorts: [] annotations: {} +## @param serviceanalyzerpredict Core ReportPortal service for the prediction of the analysis of test results +## metricsgatherer: name: metrics-gatherer image: @@ -446,19 +511,22 @@ metricsgatherer: podLabels: {} podAnnotations: {} securityContext: {} - ## Extra environment variables + + ## @param metricsgatherer.extraEnvs define the extra environment variables extraEnvs: [] - ## - name: EXTRA_ENV - ## value: "TRUE" - ## - name: EXTRA_ENV_SECRET - ## valueFrom: - ## secretKeyRef: - ## name: "additional-credentials" - ## key: username + # - name: EXTRA_ENV + # value: "TRUE" + # - name: EXTRA_ENV_SECRET + # valueFrom: + # secretKeyRef: + # name: "additional-credentials" + # key: username + ## @param metricsgatherer.nodeSelector define which Nodes the Pods are scheduled on. ## You can choose compute classes for GKE Autopilot Pods https://cloud.google.com/kubernetes-engine/docs/concepts/autopilot-compute-classes ## Use cloud.google.com/compute-class: "COMPUTE_CLASS" for specific GKE Autopilot compute class. ## Use kubernetes.io/arch: "ARCHITECTURE" for specific GKE Autopilot CPU architecture. + ## nodeSelector: {} serviceAccountName: "" service: @@ -483,36 +551,49 @@ migrations: podLabels: {} podAnnotations: {} securityContext: {} + ## @param migrations.nodeSelector define which Nodes the Pods are scheduled on. ## You can choose compute classes for GKE Autopilot Pods https://cloud.google.com/kubernetes-engine/docs/concepts/autopilot-compute-classes ## Use cloud.google.com/compute-class: COMPUTE_CLASS for specific GKE Autopilot compute class. ## Use kubernetes.io/arch: ARCHITECTURE for specific GKE Autopilot CPU architecture. + ## nodeSelector: {} serviceAccountName: "" + ## @section Infrastructure configuration database: secretName: "" passwordKeyName: "postgresql-password" - ## @param database.endpoint by default {{ .Release.Name }}-postgresql.{{ .Release.Namespace }}.svc.cluster.local + ## @param database.endpoint by default "{{ .Release.Name }}-postgresql.{{ .Release.Namespace }}.svc.cluster.local" + ## endpoint: port: &dbport 5432 user: &dbuser postgres dbName: &dbname reportportal - ssl: disable ## set @param database.endpoint.ssl to `require` if database connection use SSL + ## @param database.endpoint.ssl configure SSL connection to the database + ## Incoming parameters: require, disable + ## + ssl: disable password: &dbpassword rppassword - ## Number of database connections + ## @param database.connections define the number of connections to the database + ## connections: &dbconnections "" msgbroker: secretName: "" - ## Virtual hosts provide logical grouping and separation of resources. Ref: https://www.rabbitmq.com/vhosts.html + ## @param msgbroker.vhost Virtual hosts provide logical grouping and separation of resources + ## Ref: https://www.rabbitmq.com/vhosts.html + ## vhost: analyzer analyzerExchangeName: analyzer-default - ## @param msgbroker.ssl set to `true` if you want to use HTTPS and AMQPS + ## @param msgbroker.ssl configure SSL connection to the message broker + ## Incoming parameters: true (HTTPS and AMQPS), false (HTTP and AMQP) + ## ssl: false - ## @param msgbroker.endpoint by default {{ .Release.Name }}-rabbitmq.{{ .Release.Namespace }}.svc.cluster.local + ## @param msgbroker.endpoint by default "{{ .Release.Name }}-rabbitmq.{{ .Release.Namespace }}.svc.cluster.local" + ## endpoint: port: &msgbrokerPort 5672 user: &msgbrokerUser rabbitmq @@ -522,33 +603,40 @@ msgbroker: searchengine: secretName: "" - ## - ## Double entry moves test logs from PostgreSQL to Elastic-type engines. Ref: https://reportportal.io/blog/double-entry-in-5.7.2 - ## ElasticSearch Performance tuning - ## Ref: https://reportportal.io/docs/installation-steps/OptimalPerformanceHardwareSetup/#7-elasticsearch-performance-tuning + ## @param searchengine.doubleEntry enable double entry moves test logs from PostgreSQL to Elastic-type engines + ## Ref: https://reportportal.io/blog/double-entry-in-5.7.2 ## doubleEntry: enable: false ## @param searchengine.endpoint URL without protocol and port. By default opensearch-cluster-master.{{ .Release.Namespace }}.svc.cluster.local + ## endpoint: - ## ref. to @param searchengine.protocol - ssl: false ## set to `true` if use HTTPS + ## @param searchengine.ssl configure SSL connection to the search engine + ## Incoming parameters: true (HTTPS), false (HTTP) + ## + ssl: false port: &searchenginePort 9200 user: password: storage: ## @param storage.type Possible storage types: minio, s3, filesystem + ## type: minio secretName: "" ## @param storage.accesskeyName and @param storage.secretkeyName pass to the env[].valueFrom.secretKeyRef.key + ## accesskeyName: "access-key" secretkeyName: "secret-key" accesskey: &storageAccessKey rpuser secretkey: &storageSecretKey miniopassword ## @param storage.endpoint URL without protocol and port + ## endpoint: - ssl: false ## set to `true` if use HTTPS + ## @param storage.ssl configure SSL connection to the storage + ## Incoming parameters: true (HTTPS), false (HTTP) + ## + ssl: false port: 9000 region: "" bucket: @@ -556,55 +644,67 @@ storage: ## If you are upgrading an already installed Report Portal, a migration is required. ## Ref: https://github.com/reportportal/migrations-complex/tree/master/charts ## - type: multi - ## type: multi / single - ## + ## Incoming parameters: single, multi ## When @param storage.bucket.type=multi @param storage.bucket.bucketDefaultName defines plugins bucket ## When @param storage.bucket.type=single @param storage.bucket.bucketDefaultName' defines default single bucket name ## + type: multi bucketDefaultName: "rp-bucket" - ## Multi-bucket values + ## Use when @param storage.bucket.type=multi + ## bucketMultiPrefix: "prj-" bucketMultiPostfix: "" ## @param storage.bucket.bucketMultiSaltName storing auth keystore + ## bucketMultiSaltName: "keystore" - ## @param storage.volume defines the persistent volume claim properties - ## for the filesystem storage type. + ## @param storage.volume defines the persistent volume claim properties for the filesystem storage type + ## volume: - ## @param storage.volume.capacity defines the size of the storage. + ## @param storage.volume.capacity defines the size of the storage + ## capacity: 5Gi - ## @param storage.volume.storageClassName defines the storage class name. + ## @param storage.volume.storageClassName defines the storage class name + ## storageClassName: "standard" - ## @param storage.volume.annotations defines the common annotations. + ## @param storage.volume.annotations defines the common annotations + ## annotations: {} - ## @param storage.volume.volumeConfig contains configuration for creating - ## a persistent volume. + ## @param storage.volume.volumeConfig contains configuration for creating a persistent volume + ## volumeConfig: - ## @param storage.volume.volumeConfig.type defines the Persistent Volume type. - ## Possible values: hostPath, local, csi. If empty, PV is not created. + ## @param storage.volume.volumeConfig.type defines the Persistent Volume type + ## Incoming parameters: hostPath, local, csi. If empty, PV is not created + ## type: "" hostPath: {} local: nodeSelectorNames: [] ## @param storage.volume.volumeConfig.csi defines - ## the Container Storage Interface (CSI) properties. + ## the Container Storage Interface (CSI) properties + ## csi: ## @param storage.volume.volumeConfig.csi.driver defines - ## the CSI driver name. + ## the CSI driver name + ## driver: "" ## @param storage.volume.volumeConfig.csi.volumeHandle defines - ## the volume handle. + ## the volume handle + ## volumeHandle: "" ## @param storage.volume.volumeConfig.csi.fsType defines - ## the filesystem type. Provide ext4, xfs, etc. + ## the filesystem type. Provide ext4, xfs, etc + ## fsType: "" ## @param storage.volume.volumeConfig.csi.readOnly defines if - ## the volume is read-only. Provide true or false. + ## the volume is read-only. Provide true or false + ## readOnly: "" ## @param storage.volume.volumeConfig.csi.volumeAttributes defines - ## additional volume attributes. + ## additional volume attributes + ## volumeAttributes: {} + ## @section Ingress configuration ## If you have installed ingress controller and want to expose application - set @param ingress.enable to `true` @@ -626,10 +726,12 @@ storage: ## @param ingress.tls.certificate.privateKey provide a base64-encoded private key for TLS. ## @param ingress.tls.certificate.certificate provide a base64-encoded certificate for TLS. ## @param ingress.tls.certificate.gcpManaged set to `true` if you want to use Google Managed Certificate instead of providing your own certificate. +## ingress: enable: true - ## @param ingress.hosts can be a list or a single string. + ## @param ingress.hosts can be a list or a single string + ## hosts: null path: null class: nginx @@ -652,48 +754,79 @@ ingress: privateKey: null certificate: null + + ## @section Additional configuration +## -## tolerations for all components, if any (requires Kubernetes >= 1.6) +## @param tolerations for all components, if any (requires Kubernetes >= 1.6) ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ +## tolerations: [] - ## - key: "key" - ## operator: "Equal|Exists" - ## value: "value" - ## effect: "NoSchedule|PreferNoSchedule|NoExecute" + # - key: "key" + # operator: "Equal|Exists" + # value: "value" + # effect: "NoSchedule|PreferNoSchedule|NoExecute" serviceAccount: create: true name: reportportal ## @param serviceAccount.annotations For AWS IAM role association use the following annotations ## See: https://docs.aws.amazon.com/eks/latest/userguide/specify-service-account-role.html + ## annotations: {} - -## RBAC is required for service-index in order to collect status/info over all services +## Role Based Access +## ref: https://kubernetes.io/docs/admin/authorization/rbac/ +## rbac: + ## @param rbac is required for service-index in order to collect status/info over all services + ## create: true + ## @param rbac.rules define the rules for ReportPortal + ## + rules: [] + # - apiGroups: ["", "batch"] + # resources: ["pods","services", "jobs"] + # verbs: ["get", "list", "watch"] -imagePullSecrets: [] +## @param k8sWaitFor External k8s-wait-for Helm Chart as dependency +## +k8sWaitFor: + image: + repository: reportportal/k8s-wait-for + tag: latest -## Extra init containers (e.g. wait for minio) +## Networking between pods +## Set @param k8s.networking.ssl to `true` if SSL enabled between pods inside Kubernetes cluster +## +k8s: + networking: + ssl: false + +## @param extraInitContainers init containers (e.g. wait for minio) +## extraInitContainers: {} - ## - name: "wait-for-minio" - ## image: "busybox" - ## imagePullPolicy: "IfNotPresent" - ## command: - ## - sh - ## - "-c" - ## - "for i in `seq 1 300`; do sleep 1; if wget http://-minio.default.svc.cluster.local:9000/minio/health/live -q -O /dev/null ; then exit 0; fi; done; exit 1" + # - name: "wait-for-minio" + # image: "busybox" + # imagePullPolicy: "IfNotPresent" + # command: + # - sh + # - "-c" + # - "for i in `seq 1 300`; do sleep 1; if wget http://-minio.default.svc.cluster.local:9000/minio/health/live -q -O /dev/null ; then exit 0; fi; done; exit 1" + + ## @section External dependencies installation configuration +## ## @param postgresql External PostgreSQL Helm Chart as dependency +## postgresql: - ## set to `false` if using a Cloud/On-Premise managed database. + ## set to `false` if using a Cloud/On-Premise managed database + ## install: true image: - registry: docker.io repository: bitnami/postgresql tag: 16.3.0 auth: @@ -707,10 +840,11 @@ postgresql: postgresql: *dbport ## @param rabbitmq External RabbitMQ Helm Chart as dependency +## Set @param rabbitmq.install to `false` if using a Cloud/On-Premise managed RabbitMQ +## rabbitmq: - install: true ## set to `false` if using a Cloud/On-Premise managed RabbitMQ. + install: true image: - registry: docker.io repository: bitnami/rabbitmq tag: 3.13.3-debian-12-r0 auth: @@ -719,19 +853,24 @@ rabbitmq: containerPorts: amqp: *msgbrokerPort manager: *msgbrokerApiPort - ## @param rabbitmq.extraPlugins define additional RabbitMQ plugins to be enabled. - ## Consistent Hash Exchange is required for the ReportPortal. + ## @param rabbitmq.extraPlugins define additional RabbitMQ plugins to be enabled + ## Consistent Hash Exchange is required for the ReportPortal + ## extraPlugins: "rabbitmq_auth_backend_ldap rabbitmq_consistent_hash_exchange" ## @param opensearch External OpenSearch Helm Chart as dependency +## Set @param opensearch.install to `false` if using a Cloud/On-Premise managed OpenSearch +## opensearch: - install: true ## set to `false` if using a Cloud/On-Premise managed OpenSearch. + install: true image: repository: opensearchproject/opensearch tag: 2.14.0 ## @param opensearch.singleNode If "true", replicas will be forced from 3 to 1 + ## singleNode: true ## @param opensearch.httpPort Port for OpenSearch endpoint + ## httpPort: *searchenginePort startupProbe: initialDelaySeconds: 30 @@ -742,25 +881,16 @@ opensearch: value: "true" ## @param minio External MinIO Helm Chart +## Set @param minio.install to `false` if using a Cloud/On-Premise managed binary storage +## minio: install: true image: repository: bitnami/minio - registry: docker.io tag: 2024.6.26-debian-12-r0 auth: rootUser: *storageAccessKey rootPassword: *storageSecretKey persistence: annotations: - "helm.sh/resource-policy": "keep" - -k8sWaitFor: - image: - repository: reportportal/k8s-wait-for - tag: latest - -## Networking between pods -k8s: - networking: - ssl: false # set to `true` if SSL enabled between pods inside Kubernetes cluster + "helm.sh/resource-policy": "keep" \ No newline at end of file From 822dbfe540e581b1fc3262fe5b01ba735fc712b8 Mon Sep 17 00:00:00 2001 From: Hleb Kanonik Date: Thu, 11 Jul 2024 15:52:55 +0200 Subject: [PATCH 06/29] Update RabbitMQ plugin set (#402) chore: Update RabbitMQ plugin set --- reportportal/values.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/reportportal/values.yaml b/reportportal/values.yaml index b530549..1f5cbd9 100644 --- a/reportportal/values.yaml +++ b/reportportal/values.yaml @@ -854,9 +854,13 @@ rabbitmq: amqp: *msgbrokerPort manager: *msgbrokerApiPort ## @param rabbitmq.extraPlugins define additional RabbitMQ plugins to be enabled - ## Consistent Hash Exchange is required for the ReportPortal + ## Required for the ReportPortal to work ## - extraPlugins: "rabbitmq_auth_backend_ldap rabbitmq_consistent_hash_exchange" + extraPlugins: > + rabbitmq_auth_backend_ldap + rabbitmq_consistent_hash_exchange + rabbitmq_shovel + rabbitmq_shovel_management ## @param opensearch External OpenSearch Helm Chart as dependency ## Set @param opensearch.install to `false` if using a Cloud/On-Premise managed OpenSearch From 8ff681f52585e9340c3576ee7531658e07ecb4a9 Mon Sep 17 00:00:00 2001 From: Hleb Kanonik Date: Thu, 11 Jul 2024 17:40:07 +0200 Subject: [PATCH 07/29] Feature/92628-rmq-shovel-plugin (#403) * chore: Update RabbitMQ plugin set * chore: > join multiple lines into a single line * chore: Update AMQP settings in api-deployment.yaml --- reportportal/templates/service-api/api-deployment.yaml | 6 ++---- reportportal/values.yaml | 7 +------ 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/reportportal/templates/service-api/api-deployment.yaml b/reportportal/templates/service-api/api-deployment.yaml index 1158468..99647ac 100644 --- a/reportportal/templates/service-api/api-deployment.yaml +++ b/reportportal/templates/service-api/api-deployment.yaml @@ -96,10 +96,8 @@ spec: value: "{{ .Values.serviceapi.jvmArgs }}" {{- end }} # AMQP settings - - name: RP_AMQP_QUEUES - value: {{ .Values.serviceapi.queues.totalNumber | default "10" | quote }} - - name: RP_AMQP_QUEUESPERPOD - value: {{ .Values.serviceapi.queues.perPodNumber | default "10" | quote }} + - name: REPORTING_QUEUES_COUNT + value: "{{ .Values.serviceapi.queues }}" - name: RP_AMQP_ANALYZER-VHOST value: "{{ .Values.msgbroker.vhost }}" - name: RP_AMQP_PASS diff --git a/reportportal/values.yaml b/reportportal/values.yaml index 1f5cbd9..7076819 100644 --- a/reportportal/values.yaml +++ b/reportportal/values.yaml @@ -155,13 +155,8 @@ serviceapi: jvmArgs: "-Djava.security.egd=file:/dev/./urandom -XX:+UseG1GC -XX:MinRAMPercentage=60.0 -XX:InitiatingHeapOccupancyPercent=70 -XX:MaxRAMPercentage=90.0 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp" ## @param serviceapi.queues define the number for the queues - ## @param serviceapi.queues.totalNumber define the total number of queues - ## @param serviceapi.queues.perPodNumber define the number of queues per pod - ## How to calculate: @param serviceapi.queues.perPodNumber = @param serviceapi.queues.totalNumber / @ param serviceapi.replicaCount ## - queues: - totalNumber: 10 - perPodNumber: 10 + queues: 10 ## @param serviceapi.extraEnvs define the extra environment variables ## From d370972785b3496ab1ba84cd44a0f0780a21567b Mon Sep 17 00:00:00 2001 From: Reingold Shekhtel <13565058+raikbitters@users.noreply.github.com> Date: Mon, 22 Jul 2024 16:47:09 +0200 Subject: [PATCH 08/29] Add ttlSecondsAfterFinished value in migrations-job.yaml and values.yaml (#406) --- reportportal/templates/service-migrations/migrations-job.yaml | 1 + reportportal/values.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/reportportal/templates/service-migrations/migrations-job.yaml b/reportportal/templates/service-migrations/migrations-job.yaml index 76f167a..597efc8 100644 --- a/reportportal/templates/service-migrations/migrations-job.yaml +++ b/reportportal/templates/service-migrations/migrations-job.yaml @@ -4,6 +4,7 @@ metadata: name: {{ include "reportportal.fullname" . }}-migrations labels: {{ include "labels" . | indent 4 }} spec: + ttlSecondsAfterFinished: {{ .Values.migrations.ttlSecondsAfterFinished }} template: metadata: labels: diff --git a/reportportal/values.yaml b/reportportal/values.yaml index 7076819..24089d6 100644 --- a/reportportal/values.yaml +++ b/reportportal/values.yaml @@ -543,6 +543,7 @@ migrations: cpu: 100m memory: 128Mi pullPolicy: Always + ttlSecondsAfterFinished: 600 podLabels: {} podAnnotations: {} securityContext: {} From 4c94b326b46ec5711b8f7bb703dd52e051df9179 Mon Sep 17 00:00:00 2001 From: Reingold Shekhtel <13565058+raikbitters@users.noreply.github.com> Date: Fri, 26 Jul 2024 14:38:35 +0200 Subject: [PATCH 09/29] User pre-upgrade hook instead ttlSecondsAfterFinished (#407) * Change ttlSecondsAfterFinished with pre-upgrade hook * chore: Update service account permissions for service-manager role --- .../templates/authorization/role.yaml | 8 ++++-- .../templates/authorization/rolebinding.yaml | 16 +++++------ .../templates/hooks/pre-upgrade-hook.yaml | 28 +++++++++++++++++++ .../service-migrations/migrations-job.yaml | 1 - reportportal/values.yaml | 1 - 5 files changed, 42 insertions(+), 12 deletions(-) create mode 100644 reportportal/templates/hooks/pre-upgrade-hook.yaml diff --git a/reportportal/templates/authorization/role.yaml b/reportportal/templates/authorization/role.yaml index 1a39d87..610a4c0 100644 --- a/reportportal/templates/authorization/role.yaml +++ b/reportportal/templates/authorization/role.yaml @@ -2,15 +2,19 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: - name: {{ include "reportportal.fullname" . }}-service-reader + name: {{ include "reportportal.fullname" . }}-service-manager namespace: {{ .Release.Namespace }} rules: {{- if .Values.rbac.rules }} {{- toYaml .Values.rbac.rules | nindent 4 }} {{- else }} + # Allow the service account to get and list pods, services, and jobs - apiGroups: ["", "batch"] resources: ["pods","services", "jobs"] verbs: ["get", "list", "watch"] + # Allow the service account to delete jobs + - apiGroups: ["batch"] + resources: ["jobs"] + verbs: ["delete"] {{- end}} - {{- end }} \ No newline at end of file diff --git a/reportportal/templates/authorization/rolebinding.yaml b/reportportal/templates/authorization/rolebinding.yaml index fd215f9..99d9658 100644 --- a/reportportal/templates/authorization/rolebinding.yaml +++ b/reportportal/templates/authorization/rolebinding.yaml @@ -2,14 +2,14 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: - name: {{ include "reportportal.fullname" . }}-user-binding - namespace: {{ .Release.Namespace }} + name: {{ include "reportportal.fullname" . }}-user-binding + namespace: {{ .Release.Namespace }} roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: {{ include "reportportal.fullname" . }}-service-reader + apiGroup: rbac.authorization.k8s.io + kind: Role + name: {{ include "reportportal.fullname" . }}-service-manager subjects: - - kind: ServiceAccount - name: {{ template "reportportal.serviceAccountName" . }} - namespace: {{ .Release.Namespace }} + - kind: ServiceAccount + name: {{ template "reportportal.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} {{- end }} \ No newline at end of file diff --git a/reportportal/templates/hooks/pre-upgrade-hook.yaml b/reportportal/templates/hooks/pre-upgrade-hook.yaml new file mode 100644 index 0000000..cb97ab5 --- /dev/null +++ b/reportportal/templates/hooks/pre-upgrade-hook.yaml @@ -0,0 +1,28 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "reportportal.fullname" . }}-pre-upgrade-delete-job + labels: + {{ include "labels" . | indent 4 }} + annotations: + "helm.sh/hook": pre-upgrade + "helm.sh/hook-delete-policy": hook-succeeded +spec: + template: + metadata: + labels: + {{- range $key, $value := .Values.migrations.podLabels }} + {{ $key }}: {{ $value | quote }} + {{- end }} + component: {{ include "reportportal.fullname" . }}-pre-upgrade-delete-job + spec: + serviceAccountName: {{ template "reportportal.serviceAccountName" . }} + restartPolicy: OnFailure + containers: + - name: delete-job + image: bitnami/kubectl:latest + command: + - /bin/sh + - -c + - | + kubectl delete job {{ include "reportportal.fullname" . }}-migrations --ignore-not-found=true \ No newline at end of file diff --git a/reportportal/templates/service-migrations/migrations-job.yaml b/reportportal/templates/service-migrations/migrations-job.yaml index 597efc8..76f167a 100644 --- a/reportportal/templates/service-migrations/migrations-job.yaml +++ b/reportportal/templates/service-migrations/migrations-job.yaml @@ -4,7 +4,6 @@ metadata: name: {{ include "reportportal.fullname" . }}-migrations labels: {{ include "labels" . | indent 4 }} spec: - ttlSecondsAfterFinished: {{ .Values.migrations.ttlSecondsAfterFinished }} template: metadata: labels: diff --git a/reportportal/values.yaml b/reportportal/values.yaml index 24089d6..7076819 100644 --- a/reportportal/values.yaml +++ b/reportportal/values.yaml @@ -543,7 +543,6 @@ migrations: cpu: 100m memory: 128Mi pullPolicy: Always - ttlSecondsAfterFinished: 600 podLabels: {} podAnnotations: {} securityContext: {} From 2196dd74ce11b539fd20fcb31d1004d291086fa6 Mon Sep 17 00:00:00 2001 From: Reingold Shekhtel <13565058+raikbitters@users.noreply.github.com> Date: Fri, 16 Aug 2024 15:01:32 +0200 Subject: [PATCH 10/29] Update analyzer images (#410) Update service-auto-analyzer and service-metrics-gatherer image tags to 5.11.0-r2 --- reportportal/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reportportal/values.yaml b/reportportal/values.yaml index 7076819..6966dd0 100644 --- a/reportportal/values.yaml +++ b/reportportal/values.yaml @@ -402,7 +402,7 @@ serviceanalyzer: name: analyzer image: repository: reportportal/service-auto-analyzer - tag: 5.11.0 + tag: 5.11.0-r2 pullPolicy: Always uwsgiWorkers: 2 resources: @@ -488,7 +488,7 @@ metricsgatherer: name: metrics-gatherer image: repository: reportportal/service-metrics-gatherer - tag: 5.11.0 + tag: 5.11.0-r2 pullPolicy: Always loggingLevel: debug timeManagement: From 9860025eb3296f2b01579eabc06a6dc77a090b1c Mon Sep 17 00:00:00 2001 From: Reingold Shekhtel <13565058+raikbitters@users.noreply.github.com> Date: Fri, 16 Aug 2024 16:15:01 +0200 Subject: [PATCH 11/29] Update Chart.yaml --- reportportal/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reportportal/Chart.yaml b/reportportal/Chart.yaml index 47cc212..f1ab258 100644 --- a/reportportal/Chart.yaml +++ b/reportportal/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 appVersion: "24.1" description: ReportPortal.io AI-powered Test Automation Dashboard name: reportportal -version: 24.1.2 +version: 24.1.3 sources: - https://github.com/reportportal/kubernetes keywords: From 098af6f4fd7e69e8defb20bd8d31e93f9ee921ac Mon Sep 17 00:00:00 2001 From: Reingold Shekhtel Date: Fri, 16 Aug 2024 16:42:13 +0200 Subject: [PATCH 12/29] Update dependencies in Chart.yaml and values.yaml --- reportportal/Chart.yaml | 8 ++++---- reportportal/values.yaml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/reportportal/Chart.yaml b/reportportal/Chart.yaml index f1ab258..695c817 100644 --- a/reportportal/Chart.yaml +++ b/reportportal/Chart.yaml @@ -13,22 +13,22 @@ maintainers: dependencies: # If you update version, please update also postgresql.image.tag in values.yaml - name: postgresql - version: 15.3.5 + version: 15.5.22 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: 14.4.4 + version: 14.6.6 repository: https://charts.bitnami.com/bitnami condition: rabbitmq.install - name: opensearch - version: 2.20.0 + version: 2.22.1 repository: https://opensearch-project.github.io/helm-charts/ condition: opensearch.install - name: minio - version: 14.6.13 + version: 14.7.0 repository: https://charts.bitnami.com/bitnami condition: minio.install diff --git a/reportportal/values.yaml b/reportportal/values.yaml index 6966dd0..f595038 100644 --- a/reportportal/values.yaml +++ b/reportportal/values.yaml @@ -823,7 +823,7 @@ postgresql: install: true image: repository: bitnami/postgresql - tag: 16.3.0 + tag: 16.4.0 auth: postgresPassword: *dbpassword username: *dbuser @@ -841,7 +841,7 @@ rabbitmq: install: true image: repository: bitnami/rabbitmq - tag: 3.13.3-debian-12-r0 + tag: 3.13.6 auth: username: *msgbrokerUser password: *msgbrokerPass @@ -864,7 +864,7 @@ opensearch: install: true image: repository: opensearchproject/opensearch - tag: 2.14.0 + tag: 2.16.0 ## @param opensearch.singleNode If "true", replicas will be forced from 3 to 1 ## singleNode: true @@ -886,7 +886,7 @@ minio: install: true image: repository: bitnami/minio - tag: 2024.6.26-debian-12-r0 + tag: 2024.8.3 auth: rootUser: *storageAccessKey rootPassword: *storageSecretKey From 4355784744f758ddd7c3fb817b879ed9d1b20d52 Mon Sep 17 00:00:00 2001 From: Reingold Shekhtel <13565058+raikbitters@users.noreply.github.com> Date: Fri, 16 Aug 2024 16:49:21 +0200 Subject: [PATCH 13/29] Update dependency versions (#412) (#413) * Update dependencies in Chart.yaml and values.yaml From 976b8f5659be23111c86cf3f61f236427b25d4ed Mon Sep 17 00:00:00 2001 From: Reingold Shekhtel Date: Mon, 19 Aug 2024 13:18:08 +0200 Subject: [PATCH 14/29] Update postgresql and minio versions for fixing CVE-2023-45853 --- reportportal/Chart.yaml | 10 +++++----- reportportal/values.yaml | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/reportportal/Chart.yaml b/reportportal/Chart.yaml index 695c817..c623bcc 100644 --- a/reportportal/Chart.yaml +++ b/reportportal/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 appVersion: "24.1" description: ReportPortal.io AI-powered Test Automation Dashboard name: reportportal -version: 24.1.3 +version: 24.1.4 sources: - https://github.com/reportportal/kubernetes keywords: @@ -10,14 +10,14 @@ keywords: maintainers: - name: reportportal email: support@reportportal.io + +# If you update dependencies version, please update also *.image.tag in values.yaml dependencies: - # If you update version, please update also postgresql.image.tag in values.yaml - name: postgresql - version: 15.5.22 + version: 15.5.23 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: 14.6.6 repository: https://charts.bitnami.com/bitnami @@ -29,6 +29,6 @@ dependencies: condition: opensearch.install - name: minio - version: 14.7.0 + version: 14.7.1 repository: https://charts.bitnami.com/bitnami condition: minio.install diff --git a/reportportal/values.yaml b/reportportal/values.yaml index f595038..0976a9a 100644 --- a/reportportal/values.yaml +++ b/reportportal/values.yaml @@ -823,7 +823,7 @@ postgresql: install: true image: repository: bitnami/postgresql - tag: 16.4.0 + tag: 16.4.0-debian-12-r2 auth: postgresPassword: *dbpassword username: *dbuser @@ -886,7 +886,7 @@ minio: install: true image: repository: bitnami/minio - tag: 2024.8.3 + tag: 2024.8.17-debian-12-r0 auth: rootUser: *storageAccessKey rootPassword: *storageSecretKey From 3e143064c6a195bde23f5b41a43989941bf27215 Mon Sep 17 00:00:00 2001 From: Reingold Shekhtel <13565058+raikbitters@users.noreply.github.com> Date: Mon, 19 Aug 2024 16:25:25 +0200 Subject: [PATCH 15/29] Add toggles for pre-upgrade and test hooks (#414) --- reportportal/templates/hooks/pre-upgrade-hook.yaml | 6 +++++- reportportal/templates/tests/readiness-test.yaml | 4 ++++ reportportal/values.yaml | 7 ++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/reportportal/templates/hooks/pre-upgrade-hook.yaml b/reportportal/templates/hooks/pre-upgrade-hook.yaml index cb97ab5..f8d3dff 100644 --- a/reportportal/templates/hooks/pre-upgrade-hook.yaml +++ b/reportportal/templates/hooks/pre-upgrade-hook.yaml @@ -1,3 +1,5 @@ +{{- if and .Values.hooks.enabled .Values.hooks.preUpgrade.enabled }} + apiVersion: batch/v1 kind: Job metadata: @@ -25,4 +27,6 @@ spec: - /bin/sh - -c - | - kubectl delete job {{ include "reportportal.fullname" . }}-migrations --ignore-not-found=true \ No newline at end of file + kubectl delete job {{ include "reportportal.fullname" . }}-migrations --ignore-not-found=true + +{{- end }} \ No newline at end of file diff --git a/reportportal/templates/tests/readiness-test.yaml b/reportportal/templates/tests/readiness-test.yaml index d81aafa..79d05c3 100644 --- a/reportportal/templates/tests/readiness-test.yaml +++ b/reportportal/templates/tests/readiness-test.yaml @@ -1,3 +1,5 @@ +{{- if and .Values.hooks.enabled .Values.hooks.test.enabled }} + apiVersion: v1 kind: Pod metadata: @@ -31,3 +33,5 @@ spec: done; echo "All health checks passed."; restartPolicy: Never + +{{- end }} \ No newline at end of file diff --git a/reportportal/values.yaml b/reportportal/values.yaml index 0976a9a..a945204 100644 --- a/reportportal/values.yaml +++ b/reportportal/values.yaml @@ -810,7 +810,12 @@ extraInitContainers: {} # - "-c" # - "for i in `seq 1 300`; do sleep 1; if wget http://-minio.default.svc.cluster.local:9000/minio/health/live -q -O /dev/null ; then exit 0; fi; done; exit 1" - +hooks: + enabled: true + test: + enabled: true + preUpgrade: + enabled: true ## @section External dependencies installation configuration ## From 69da1a5250565ce1be77d8066071ae828ccf9fc0 Mon Sep 17 00:00:00 2001 From: Reingold Shekhtel Date: Tue, 27 Aug 2024 14:41:30 +0200 Subject: [PATCH 16/29] Update PROJECT_ID environment variable to use gcloud config value --- docs/gke-install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/gke-install.md b/docs/gke-install.md index bbf2c10..0328166 100644 --- a/docs/gke-install.md +++ b/docs/gke-install.md @@ -52,7 +52,7 @@ Set up environment variables: ```bash export REPO_LOCATION=us-central1 export CLUSTER_LOCATION=us-central1-a -export PROJECT_ID={your_project_id} +export PROJECT_ID=$(gcloud config get-value project | tr ':' '/') export CLUSTER_NAME={reportportal_cluster_name} export REPO_NAME={reportportal_helm_repo_name} export RELEASE_NAME={reportportal_release_name} From 256bb2e38633070908cadd6c3a7c73c7de1b6196 Mon Sep 17 00:00:00 2001 From: "hleb_kanonik@epam.com" Date: Mon, 9 Sep 2024 10:53:59 +0200 Subject: [PATCH 17/29] Update api-deployment.yaml and values.yaml - Add COM_TA_REPORTPORTAL_JOB_LOAD_PLUGINS_CRON environment variable to api-deployment.yaml - Update values.yaml to include configuration for cron job durations --- reportportal/templates/service-api/api-deployment.yaml | 2 ++ reportportal/values.yaml | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/reportportal/templates/service-api/api-deployment.yaml b/reportportal/templates/service-api/api-deployment.yaml index 99647ac..bb455b6 100644 --- a/reportportal/templates/service-api/api-deployment.yaml +++ b/reportportal/templates/service-api/api-deployment.yaml @@ -67,6 +67,8 @@ spec: {{- end }} - name: SERVER_SERVLET_CONTEXT_PATH value: "{{ $path }}/api" + - name: COM_TA_REPORTPORTAL_JOB_LOAD_PLUGINS_CRON + value: "{{ .Values.serviceapi.cronJobs.loadPlugins }}" - name: RP_JOBS_BASEURL value: {{ ternary "https" "http" .Values.k8s.networking.ssl }}://{{ include "reportportal.fullname" . }}-jobs{{ printf ".%s.svc.cluster.local" .Release.Namespace }}:8686/jobs - name: COM_TA_REPORTPORTAL_JOB_INTERRUPT_BROKEN_LAUNCHES_CRON diff --git a/reportportal/values.yaml b/reportportal/values.yaml index a945204..b41db5c 100644 --- a/reportportal/values.yaml +++ b/reportportal/values.yaml @@ -137,7 +137,14 @@ serviceapi: ## @param serviceapi.cronJobs define the configuration for the cron jobs ## cronJobs: - interruptBrockenLaunches: PT1H ## ISO8601 duration format + ## @param serviceapi.cronJobs.interruptBrockenLaunches define the duration for the cron job to interrupt broken launches + ## ISO8601 duration format + ## + interruptBrockenLaunches: PT1H + ## @param serviceapi.cronJobs.loadPlugins define the duration for the cron job to load plugins + ## ISO8601 duration format + ## + loadPlugins: PT10S ## @param serviceapi.patternAnalysis define the configuration for the pattern analysis and Immediate IA ## @paran serviceapi.patternAnalysis.batchSize define the number of logs to be processed in one batch From 938dcc9b7b00a9aa8dd5706796d868c51fd7e7aa Mon Sep 17 00:00:00 2001 From: "hleb_kanonik@epam.com" Date: Mon, 9 Sep 2024 13:59:16 +0200 Subject: [PATCH 18/29] Update jvmArgs for UAT in values.yaml --- reportportal/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reportportal/values.yaml b/reportportal/values.yaml index b41db5c..82f6bcb 100644 --- a/reportportal/values.yaml +++ b/reportportal/values.yaml @@ -261,7 +261,7 @@ uat: ## @param serviceapi.javaArgs define the configuration for the JVM. ## For custom java keystore add parameter: -Djavax.net.ssl.trustStore=/etc/secret-volume/custom-pki.jks ## - jvmArgs: "-Djava.security.egd=file:/dev/./urandom -XX:MinRAMPercentage=60.0 -XX:MaxRAMPercentage=90.0" + jvmArgs: "-Djava.security.egd=file:/dev/./urandom -XX:MinRAMPercentage=60.0 -XX:MaxRAMPercentage=90.0 --add-opens=java.base/java.lang=ALL-UNNAMED" ## @param uat.extraEnvs define the extra environment variables ## From 27337c9121d512f734888895e914a9fc77d637a4 Mon Sep 17 00:00:00 2001 From: "hleb_kanonik@epam.com" Date: Tue, 10 Sep 2024 10:59:25 +0200 Subject: [PATCH 19/29] Update values.yaml to add configuration for AMQP in serviceapi --- reportportal/values.yaml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/reportportal/values.yaml b/reportportal/values.yaml index 82f6bcb..b73ca89 100644 --- a/reportportal/values.yaml +++ b/reportportal/values.yaml @@ -161,9 +161,18 @@ serviceapi: ## jvmArgs: "-Djava.security.egd=file:/dev/./urandom -XX:+UseG1GC -XX:MinRAMPercentage=60.0 -XX:InitiatingHeapOccupancyPercent=70 -XX:MaxRAMPercentage=90.0 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp" - ## @param serviceapi.queues define the number for the queues + ## @param serviceapi.amqp define the configuration for the AMQP ## - queues: 10 + amqp: + ## @param serviceapi.amqp.queues define the number for the queues + ## + queues: 10 + ## @param serviceapi.amqp.prefetchCount define the prefetch count per consumer + ## + prefetchCount: 10 + ## @param serviceapi.amqp.consumersCount define time to live in parking lot queue + ## + parkingLotTtlDays: 7 ## @param serviceapi.extraEnvs define the extra environment variables ## From f2542ab73dea0d79a3a8c39cf31f4fc3c2387a3a Mon Sep 17 00:00:00 2001 From: "hleb_kanonik@epam.com" Date: Tue, 10 Sep 2024 11:02:09 +0200 Subject: [PATCH 20/29] Update api-deployment.yaml to add AMQP configuration in serviceapi --- reportportal/templates/service-api/api-deployment.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/reportportal/templates/service-api/api-deployment.yaml b/reportportal/templates/service-api/api-deployment.yaml index bb455b6..c71bef7 100644 --- a/reportportal/templates/service-api/api-deployment.yaml +++ b/reportportal/templates/service-api/api-deployment.yaml @@ -99,7 +99,11 @@ spec: {{- end }} # AMQP settings - name: REPORTING_QUEUES_COUNT - value: "{{ .Values.serviceapi.queues }}" + value: "{{ .Values.serviceapi.amqp.queues }}" + - name: REPORTING_PARKINGLOT_TTL_DAYS + value: "{{ .Values.serviceapi.amqp.parkingLotTtlDays }}" + - name: REPORTING_CONSUMER_PREFETCHCOUNT + value: "{{ .Values.serviceapi.amqp.prefetchCount }}" - name: RP_AMQP_ANALYZER-VHOST value: "{{ .Values.msgbroker.vhost }}" - name: RP_AMQP_PASS From 8b1177249dc16e5807c5e8106d284b18b6e76a02 Mon Sep 17 00:00:00 2001 From: Reingold Shekhtel Date: Wed, 11 Sep 2024 17:16:18 +0200 Subject: [PATCH 21/29] Add helm pre upgrade hook documentation --- docs/helm-pre-upgrade.md | 69 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 docs/helm-pre-upgrade.md diff --git a/docs/helm-pre-upgrade.md b/docs/helm-pre-upgrade.md new file mode 100644 index 0000000..fe47c1c --- /dev/null +++ b/docs/helm-pre-upgrade.md @@ -0,0 +1,69 @@ +# HELM pre upgrade hook + +Starting from version 24.1.3 we added the helm pre-upgrade hook to the chart. +This hook is used to delete the old jobs to resolve a kubernetes issue with the job name. +This hook doesn't work with the additional roles and role bindings. + +Before performing the helm upgrade you need to create the roles and role bindings manually: + +```yaml +# role.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: HELM_RELEASE_NAME-service-manager + namespace: default + labels: + app.kubernetes.io/managed-by: Helm + annotations: + meta.helm.sh/release-name: HELM_RELEASE_NAME + meta.helm.sh/release-namespace: default +rules: + - apiGroups: ["", "batch"] + resources: ["pods", "services", "jobs"] + verbs: ["get", "list", "watch"] + - apiGroups: ["batch"] + resources: ["jobs"] + verbs: ["delete"] +``` + +After that, you can apply the roles: + +```shell +kubectl apply -f role.yaml && \ +``` + +```yaml +# role-binding.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: HELM_RELEASE_NAME-user-binding + namespace: default + labels: + app.kubernetes.io/managed-by: Helm + annotations: + meta.helm.sh/release-name: HELM_RELEASE_NAME + meta.helm.sh/release-namespace: default +subjects: + - kind: ServiceAccount + name: HELM_RELEASE_NAME + namespace: default +roleRef: + kind: Role + name: HELM_RELEASE_NAME-service-manager + apiGroup: rbac.authorization.k8s.io +``` + +Delete the old bindings and apply the new ones: + +```shell +kubectl delete rolebinding HELM_RELEASE_NAME-user-binding -n default +kubectl apply -f role-binding.yaml +``` + +Then you can upgrade the helm release: + +```shell +helm upgrade ${HELM_RELEASE_NAME} +``` From 67bcc65d0de784984cc633fb323586692c08095e Mon Sep 17 00:00:00 2001 From: "hleb_kanonik@epam.com" Date: Thu, 12 Sep 2024 15:56:19 +0200 Subject: [PATCH 22/29] Remove double entry --- .../templates/service-api/api-deployment.yaml | 4 --- .../service-jobs/jobs-deployment.yaml | 25 ------------------- reportportal/values.yaml | 11 -------- 3 files changed, 40 deletions(-) diff --git a/reportportal/templates/service-api/api-deployment.yaml b/reportportal/templates/service-api/api-deployment.yaml index c71bef7..1a04e67 100644 --- a/reportportal/templates/service-api/api-deployment.yaml +++ b/reportportal/templates/service-api/api-deployment.yaml @@ -85,10 +85,6 @@ spec: {{- end }} - name: RP_ENVIRONMENT_VARIABLE_ALLOW_DELETE_ACCOUNT value: "{{ .Values.serviceapi.allowDeleteAccount }}" - {{- if .Values.searchengine.doubleEntry.enable }} - - name: RP_ELASTICSEARCH_HOST - value: "{{ ternary "https" "http" .Values.searchengine.ssl }}://{{ .Values.searchengine.endpoint | default (printf "opensearch-cluster-master.%s.svc.cluster.local" .Release.Namespace) }}:{{ .Values.searchengine.port }}" - {{- end }} - name: LOGGING_LEVEL_ORG_HIBERNATE_SQL value: "info" - name: RP_REQUESTLOGGING diff --git a/reportportal/templates/service-jobs/jobs-deployment.yaml b/reportportal/templates/service-jobs/jobs-deployment.yaml index 43857dc..d121cad 100644 --- a/reportportal/templates/service-jobs/jobs-deployment.yaml +++ b/reportportal/templates/service-jobs/jobs-deployment.yaml @@ -61,27 +61,6 @@ spec: {{- end }} - name: SERVER_SERVLET_CONTEXT_PATH value: "/jobs" - {{- if .Values.searchengine.doubleEntry.enable }} - - name: RP_ELASTICSEARCH_HOST - value: "{{ ternary "https" "http" .Values.searchengine.ssl }}://{{ .Values.searchengine.endpoint | default (printf "opensearch-cluster-master.%s.svc.cluster.local" .Release.Namespace) }}:{{ .Values.searchengine.port }}" - {{- if .Values.searchengine.secretName }} - - name: RP_ELASTICSEARCH_USERNAME - valueFrom: - secretKeyRef: - name: "{{ .Values.searchengine.secretName }}" - key: "username" - - name: RP_ELASTICSEARCH_PASSWORD - valueFrom: - secretKeyRef: - name: "{{ .Values.searchengine.secretName }}" - key: "password" - {{- else }} - - name: RP_ELASTICSEARCH_USERNAME - value: "{{ .Values.searchengine.user }}" - - name: RP_ELASTICSEARCH_PASSWORD - value: "{{ .Values.searchengine.password }}" - {{- end}} - {{- end}} - name: RP_ENVIRONMENT_VARIABLE_CLEAN_ATTACHMENT_CRON value: "{{ .Values.servicejobs.coreJobs.cleanAttachmentCron }}" - name: RP_ENVIRONMENT_VARIABLE_CLEAN_LOG_CRON @@ -184,10 +163,6 @@ spec: - name: DATASTORE_DEFAULTBUCKETNAME value: "{{ .Values.storage.bucket.bucketDefaultName }}" {{- end }} - - name: RP_PROCESSING_LOG_MAXBATCHSIZE - value: "{{ .Values.servicejobs.logProcessing.maxBatchSize }}" - - name: RP_PROCESSING_LOG_MAXBATCHTIMEOUT - value: "{{ .Values.servicejobs.logProcessing.maxBatchTimeout }}" - name: RP_AMQP_MAXLOGCONSUMER value: "1" {{- if .Values.servicejobs.readinessProbe.enabled }} diff --git a/reportportal/values.yaml b/reportportal/values.yaml index b73ca89..b35d780 100644 --- a/reportportal/values.yaml +++ b/reportportal/values.yaml @@ -368,12 +368,6 @@ servicejobs: storageProjectCron: 0 */5 * * * * chunksize: 200000 - ## @param servicejobs.logProcessing define the configuration for the log processing (a rate of one log per millisecond) - ## Use the double entry to move test logs from PostgreSQL to Elastic-type engines. Ref: https://reportportal.io/blog/double-entry-in-5.7.2 - ## - logProcessing: - maxBatchSize: 2000 - maxBatchTimeout: 6000 resources: requests: cpu: 100m @@ -614,11 +608,6 @@ msgbroker: searchengine: secretName: "" - ## @param searchengine.doubleEntry enable double entry moves test logs from PostgreSQL to Elastic-type engines - ## Ref: https://reportportal.io/blog/double-entry-in-5.7.2 - ## - doubleEntry: - enable: false ## @param searchengine.endpoint URL without protocol and port. By default opensearch-cluster-master.{{ .Release.Namespace }}.svc.cluster.local ## endpoint: From 0756e145fcb22171035458520d51ef9e3a6cfea5 Mon Sep 17 00:00:00 2001 From: "hleb_kanonik@epam.com" Date: Thu, 12 Sep 2024 16:03:50 +0200 Subject: [PATCH 23/29] [Feature] Add replica count support to all deployments #405 --- .../templates/service-authorization/uat-deployment.yaml | 2 +- reportportal/templates/service-ui/ui-deployment.yaml | 2 +- reportportal/values.yaml | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/reportportal/templates/service-authorization/uat-deployment.yaml b/reportportal/templates/service-authorization/uat-deployment.yaml index e943c5a..9bed2d5 100644 --- a/reportportal/templates/service-authorization/uat-deployment.yaml +++ b/reportportal/templates/service-authorization/uat-deployment.yaml @@ -6,7 +6,7 @@ metadata: name: {{ include "reportportal.fullname" . }}-uat labels: {{ include "labels" . | indent 4 }} spec: - replicas: 1 + replicas: {{ .Values.uat.replicaCount | default 1 }} selector: matchLabels: component: {{ include "reportportal.fullname" . }}-uat diff --git a/reportportal/templates/service-ui/ui-deployment.yaml b/reportportal/templates/service-ui/ui-deployment.yaml index b215d89..99f254c 100644 --- a/reportportal/templates/service-ui/ui-deployment.yaml +++ b/reportportal/templates/service-ui/ui-deployment.yaml @@ -4,7 +4,7 @@ metadata: name: {{ include "reportportal.fullname" . }}-ui labels: {{ include "labels" . | indent 4 }} spec: - replicas: 1 + replicas: {{ .Values.serviceui.replicaCount | default 1 }} selector: matchLabels: component: {{ include "reportportal.fullname" . }}-ui diff --git a/reportportal/values.yaml b/reportportal/values.yaml index b35d780..55196ef 100644 --- a/reportportal/values.yaml +++ b/reportportal/values.yaml @@ -56,6 +56,7 @@ serviceui: repository: reportportal/service-ui tag: 5.11.1 pullPolicy: Always + replicaCount: 1 resources: requests: cpu: 100m @@ -237,6 +238,7 @@ uat: repository: reportportal/service-authorization tag: 5.11.2 pullPolicy: Always + replicaCount: 1 readinessProbe: enabled: true initialDelaySeconds: 60 From 7b0cb9cafd55d7cbf4282802ce6a4c0a9cf194c5 Mon Sep 17 00:00:00 2001 From: Hleb Kanonik Date: Fri, 13 Sep 2024 17:10:56 +0200 Subject: [PATCH 24/29] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a4b2de4..ebda0ca 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # [ReportPortal.io](http://ReportPortal.io) +[![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) From 5d7354780c2dfb8afc94cb6c95cf6184b29ded35 Mon Sep 17 00:00:00 2001 From: "hleb_kanonik@epam.com" Date: Mon, 16 Sep 2024 10:46:27 +0200 Subject: [PATCH 25/29] Update appVersion and description in Chart.yaml --- reportportal/Chart.yaml | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/reportportal/Chart.yaml b/reportportal/Chart.yaml index 9cc12ab..712b575 100644 --- a/reportportal/Chart.yaml +++ b/reportportal/Chart.yaml @@ -1,12 +1,29 @@ apiVersion: v2 -appVersion: "24.1" -description: ReportPortal.io AI-powered Test Automation Dashboard +appVersion: "24.1.0" +description: ReportPortal.io is a TestOps service, that provides increased capabilities to speed up results analysis and reporting through the use of built-in analytic features. + name: reportportal version: 24.1.5 sources: - - https://github.com/reportportal/kubernetes + - https://github.com/reportportal/kubernetes/tree/master/reportportal keywords: - reportportal + - report portal + - test results reporting service + - test report dashboard + - test automation reporting tools + - test automation results dashboard + - qa automation dashboard + - qa metrics dashboard + - automation test report + - test execution dashboard +home: https://reportportal.io +icon: https://reportportal.io/branding/logo/Logo_Symbol_Large_Ogriginal.svg + +annotations: + category: Infrastructure + licenses: Apache-2.0 + maintainers: - name: reportportal email: support@reportportal.io From 3983f1fde034e683cb9b0e4256f1b4d81e5af12b Mon Sep 17 00:00:00 2001 From: Reingold Shekhtel Date: Mon, 16 Sep 2024 13:15:52 +0200 Subject: [PATCH 26/29] Use public url for icon --- reportportal/Chart.yaml | 2 +- reportportal/logo.png | Bin 11580 -> 0 bytes 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 reportportal/logo.png diff --git a/reportportal/Chart.yaml b/reportportal/Chart.yaml index ecf3b61..1d8901b 100644 --- a/reportportal/Chart.yaml +++ b/reportportal/Chart.yaml @@ -19,7 +19,7 @@ keywords: - automation test report - test execution dashboard home: https://reportportal.io -icon: data:image/png;base64,{{ .Files.Get "logo.png" | b64enc }} +icon: https://raw.githubusercontent.com/reportportal/branding/a4e0ac59ff51e1081d4fa754f1a06f22ea6dcfe7/logo/Logo_Symbol_Large_Ogriginal.svg annotations: category: Infrastructure licenses: Apache-2.0 diff --git a/reportportal/logo.png b/reportportal/logo.png deleted file mode 100644 index 691253cf2a590be4a4f7e3f42db93dbba4a33fc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11580 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 F{|6>lBPsv@ From 7ac5596e1c574ac0cffe7e678f6821a76ccae726 Mon Sep 17 00:00:00 2001 From: "hleb_kanonik@epam.com" Date: Thu, 26 Sep 2024 11:48:03 +0200 Subject: [PATCH 27/29] Helm template reportportal.fullname refers to incorrect value #425 --- reportportal/templates/_helpers.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reportportal/templates/_helpers.tpl b/reportportal/templates/_helpers.tpl index 8b6d82f..d878a56 100644 --- a/reportportal/templates/_helpers.tpl +++ b/reportportal/templates/_helpers.tpl @@ -12,7 +12,7 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this If release name contains chart name it will be used as a full name. */}} {{- define "reportportal.fullname" -}} -{{- if .Values.fullnameOverride -}} +{{- if .Values.global.fullnameOverride -}} {{- .Values.global.fullnameOverride | trunc 63 | trimSuffix "-" -}} {{- else -}} {{- $name := default .Chart.Name .Values.global.nameOverride -}} From 482de0cf814e345b251ce095a51fc6f04a75a523 Mon Sep 17 00:00:00 2001 From: "hleb_kanonik@epam.com" Date: Thu, 26 Sep 2024 12:30:41 +0200 Subject: [PATCH 28/29] Update appVersion and version in Chart.yaml and update image tags in values.yaml --- reportportal/Chart.yaml | 4 ++-- reportportal/values.yaml | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/reportportal/Chart.yaml b/reportportal/Chart.yaml index 91f58df..8e02ca3 100644 --- a/reportportal/Chart.yaml +++ b/reportportal/Chart.yaml @@ -1,10 +1,10 @@ apiVersion: v2 -appVersion: "24.1.0" +appVersion: "24.2.0" description: | ReportPortal.io is a TestOps service, that provides increased capabilities to speed up results analysis and reporting through the use of built-in analytic features. name: reportportal -version: 24.1.7 +version: 24.2.0 sources: - https://github.com/reportportal/kubernetes/tree/master/reportportal keywords: diff --git a/reportportal/values.yaml b/reportportal/values.yaml index f632f26..431c36f 100644 --- a/reportportal/values.yaml +++ b/reportportal/values.yaml @@ -21,7 +21,7 @@ serviceindex: name: index image: repository: reportportal/service-index - tag: 5.11.2 + tag: 5.12.0 pullPolicy: Always resources: requests: @@ -54,7 +54,7 @@ serviceui: name: ui image: repository: reportportal/service-ui - tag: 5.11.1-r1 + tag: 5.12.0 pullPolicy: Always replicaCount: 1 resources: @@ -87,7 +87,7 @@ serviceapi: name: api image: repository: reportportal/service-api - tag: 5.11.3 + tag: 5.12.0 pullPolicy: Always replicaCount: 1 readinessProbe: @@ -236,7 +236,7 @@ uat: name: uat image: repository: reportportal/service-authorization - tag: 5.11.3 + tag: 5.12.0 pullPolicy: Always replicaCount: 1 readinessProbe: @@ -335,7 +335,7 @@ servicejobs: name: jobs image: repository: reportportal/service-jobs - tag: 5.11.1 + tag: 5.12.0 pullPolicy: Always readinessProbe: enabled: true @@ -414,7 +414,7 @@ serviceanalyzer: name: analyzer image: repository: reportportal/service-auto-analyzer - tag: 5.11.0-r4 + tag: 5.12.0 pullPolicy: Always uwsgiWorkers: 2 resources: @@ -500,7 +500,7 @@ metricsgatherer: name: metrics-gatherer image: repository: reportportal/service-metrics-gatherer - tag: 5.11.0-r4 + tag: 5.12.0 pullPolicy: Always loggingLevel: debug timeManagement: @@ -546,7 +546,7 @@ metricsgatherer: migrations: image: repository: reportportal/migrations - tag: 5.11.1 + tag: 5.12.1 resources: requests: cpu: 100m From cb1432f2fe00eccc3282e4e0fa3a737593adb886 Mon Sep 17 00:00:00 2001 From: "hleb_kanonik@epam.com" Date: Thu, 26 Sep 2024 13:15:18 +0200 Subject: [PATCH 29/29] Update image tags in values.yaml --- reportportal/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reportportal/values.yaml b/reportportal/values.yaml index 431c36f..afaf214 100644 --- a/reportportal/values.yaml +++ b/reportportal/values.yaml @@ -414,7 +414,7 @@ serviceanalyzer: name: analyzer image: repository: reportportal/service-auto-analyzer - tag: 5.12.0 + tag: 5.12.0-r1 pullPolicy: Always uwsgiWorkers: 2 resources: @@ -500,7 +500,7 @@ metricsgatherer: name: metrics-gatherer image: repository: reportportal/service-metrics-gatherer - tag: 5.12.0 + tag: 5.12.0-r1 pullPolicy: Always loggingLevel: debug timeManagement: