Skip to content

Commit

Permalink
Merge pull request #284 from reportportal/develop
Browse files Browse the repository at this point in the history
Release
  • Loading branch information
HardNorth committed Dec 22, 2022
2 parents d1517dc + 2caf83a commit bc04fdc
Show file tree
Hide file tree
Showing 17 changed files with 290 additions and 200 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0

Expand All @@ -22,7 +22,7 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }}

- name: Run chart-releaser
uses: helm/chart-releaser-action@6eec360873ca10c8e462c87ad50c38d1a4332638
uses: helm/chart-releaser-action@v1
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
with:
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ These charts bootstraps a ReportPortal deployment on a Kubernetes cluster using
The repo includes a number of Kubernetes and Helm configurations for installation ReportPortal v5

## Requirements
* Kubernetes v1.16-1.21
* Helm Package Manager v3.4.0
* Kubernetes v1.19-1.24
* Helm Package Manager v3.4+

## Usage notes and getting started
* [ReportPortal v5](https://github.com/reportportal/kubernetes/tree/master/reportportal)
Expand Down
27 changes: 23 additions & 4 deletions reportportal/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,13 +1,32 @@
apiVersion: v1
appVersion: "5.7.2"
apiVersion: v2
appVersion: "5.7.3"
description: ReportPortal.io AI-powered Test Automation Dashboard
name: reportportal
version: 5.7.2
version: 5.7.3
sources:
- https://github.com/reportportal/kubernetes
keywords:
- reportportal
maintainers:
- name: reportportal
email: support@reportportal.io
engine: gotpl
dependencies:
- name: postgresql
version: 10.9.4
repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
condition: postgresql.installdep.enable

- name: rabbitmq
version: 7.5.6
repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
condition: rabbitmq.installdep.enable

- name: elasticsearch
version: 7.10.2
repository: https://helm.elastic.co
condition: elasticsearch.installdep.enable

- name: minio
version: 7.1.9
repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
condition: minio.installdep.enable
39 changes: 34 additions & 5 deletions reportportal/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ Or you can istall an NGINX ingress controller using Helm.

```
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx && helm repo update
helm install nginx-ingress ingress-nginx/ingress-nginx --version 3.36.0
helm install nginx-ingress ingress-nginx/ingress-nginx --version 4.3.0
```

> If you go with AWS, then after your NGINX Ingress controller automatically creates a Load Balancer and assigns a cname (for example `a1b6b2345kj1113744944ea67hdfh21llbe7f-639623130.eu-central-1.elb.amazonaws.com`), please increase its idle timeout to 300 seconds
Expand Down Expand Up @@ -811,7 +811,7 @@ Set up a domain name you own at the domain registrar
In order to enable HTTPS, you need to get a SSL/TLS certificate from a Certificate Authority (CA)
As a free option, you can use Let's Encrypt - a non-profit TLS CA. Its purpose is to try to make a safer internet by making it easier and cheaper to use TLS

#### 2.1. Deploy the Cert Manager
#### 2.1. Deploy the Cert Manager for Kubernetes 1.15-1.19

[Cert-manager](https://github.com/jetstack/cert-manager/tree/master/deploy/charts/cert-manager) is a native Kubernetes certificate management controller
It can help with issuing certificates from a variety of sources, such as Let’s Encrypt, HashiCorp Vault, Venafi, a simple signing keypair, or self-signed
Expand All @@ -825,16 +825,45 @@ kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/relea
Add the Jetstack Helm repository

```sh
$ helm repo add jetstack https://charts.jetstack.io && helm repo update
helm repo add jetstack https://charts.jetstack.io && helm repo update
```

Install the cert-manager

```sh
helm install cert-manager jetstack/cert-manager --namespace cert-manager --version v1.0.3
helm install cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--version v1.0.3
```

#### 2.2. Create a Let's Encrypt CA ClusterIssuer Kubernetes resource:
#### 2.2. Deploy the Cert Manager for Kubernetes 1.20+

[Cert-manager](https://github.com/jetstack/cert-manager/tree/master/deploy/charts/cert-manager) is a native Kubernetes certificate management controller
It can help with issuing certificates from a variety of sources, such as Let’s Encrypt, HashiCorp Vault, Venafi, a simple signing keypair, or self-signed

Install the cert-manager CRDs **before** installing the cert-manager Helm

```sh
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.8.2/cert-manager.crds.yaml
```

Add the Jetstack Helm repository

```sh
helm repo add jetstack https://charts.jetstack.io && helm repo update
```

Install the cert-manager

```sh
helm install cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--version v1.8.2
```

#### 2.3. Create a Let's Encrypt CA ClusterIssuer Kubernetes resource:

ClusterIssuers (and Issuers) represent a certificate authority from which signed x509 certificates can be obtained, such as Let’s Encrypt. You will need at least one ClusterIssuer in order to begin issuing certificates within your cluster

Expand Down
20 changes: 0 additions & 20 deletions reportportal/requirements.yaml

This file was deleted.

21 changes: 12 additions & 9 deletions reportportal/templates/analyzer-statefulset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ spec:
template:
metadata:
labels:
{{- range $key, $value := .Values.serviceanalyzer.podLabels }}
{{ $key }}: {{ $value | quote }}
{{- end }}
component: {{ include "reportportal.fullname" . }}-analyzer
annotations:
{{- range $key, $value := .Values.serviceanalyzer.podAnnotations }}
Expand All @@ -27,12 +30,12 @@ spec:
{{- if .Values.serviceanalyzer.extraEnvs }}
{{ toYaml .Values.serviceanalyzer.extraEnvs | indent 8 }}
{{- end }}
{{ if .Values.minio.enabled }}
{{- if .Values.minio.enabled }}
- name: ANALYZER_BINARYSTORE_TYPE
value: "minio"
- name: MINIO_SHORT_HOST
value: "{{ .Values.minio.endpointshort }}"
{{ if .Values.minio.secretName }}
{{- if .Values.minio.secretName }}
- name: MINIO_ACCESS_KEY
valueFrom:
secretKeyRef:
Expand All @@ -43,24 +46,24 @@ spec:
secretKeyRef:
name: "{{ .Values.minio.secretName }}"
key: "{{ .Values.minio.secretkeyName }}"
{{ else }}
{{- else }}
- name: MINIO_ACCESS_KEY
value: "{{ .Values.minio.accesskey }}"
- name: MINIO_SECRET_KEY
value: "{{ .Values.minio.secretkey }}"
{{ end }}
{{ end }}
{{- end }}
{{- end }}
- name: RP_AMQP_PASS
{{ if .Values.rabbitmq.SecretName }}
{{- if .Values.rabbitmq.SecretName }}
valueFrom:
secretKeyRef:
name: "{{ .Values.rabbitmq.SecretName }}"
key: "rabbitmq-password"
{{ else }}
{{- else }}
value: "{{ .Values.rabbitmq.endpoint.password }}"
{{ end }}
{{- end }}
- name: AMQP_URL
value: "amqp://{{ .Values.rabbitmq.endpoint.user }}:$(RP_AMQP_PASS)@{{ .Values.rabbitmq.endpoint.address }}:{{ .Values.rabbitmq.endpoint.port }}/"
value: {{ ternary "amqps" "amqp" .Values.rabbitmq.endpoint.ssl }}://{{ .Values.rabbitmq.endpoint.user }}:$(RP_AMQP_PASS)@{{ .Values.rabbitmq.endpoint.address }}:{{ .Values.rabbitmq.endpoint.port }}/
- name: AMQP_EXCHANGE_NAME
value: "analyzer-default"
- name: AMQP_VIRTUAL_HOST
Expand Down
21 changes: 12 additions & 9 deletions reportportal/templates/analyzertrain-statefulset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ spec:
template:
metadata:
labels:
{{- range $key, $value := .Values.serviceanalyzertrain.podLabels }}
{{ $key }}: {{ $value | quote }}
{{- end }}
component: {{ include "reportportal.fullname" . }}-analyzer-train
annotations:
{{- range $key, $value := .Values.serviceanalyzertrain.podAnnotations }}
Expand All @@ -31,12 +34,12 @@ spec:
value: "train"
- name: UWSGI_WORKERS
value: "1"
{{ if .Values.minio.enabled }}
{{- if .Values.minio.enabled }}
- name: ANALYZER_BINARYSTORE_TYPE
value: "minio"
- name: MINIO_SHORT_HOST
value: "{{ .Values.minio.endpointshort }}"
{{ if .Values.minio.secretName }}
{{- if .Values.minio.secretName }}
- name: MINIO_ACCESS_KEY
valueFrom:
secretKeyRef:
Expand All @@ -47,24 +50,24 @@ spec:
secretKeyRef:
name: "{{ .Values.minio.secretName }}"
key: "{{ .Values.minio.secretkeyName }}"
{{ else }}
{{- else }}
- name: MINIO_ACCESS_KEY
value: "{{ .Values.minio.accesskey }}"
- name: MINIO_SECRET_KEY
value: "{{ .Values.minio.secretkey }}"
{{ end }}
{{ end }}
{{- end }}
{{- end }}
- name: RP_AMQP_PASS
{{ if .Values.rabbitmq.SecretName }}
{{- if .Values.rabbitmq.SecretName }}
valueFrom:
secretKeyRef:
name: "{{ .Values.rabbitmq.SecretName }}"
key: "rabbitmq-password"
{{ else }}
{{- else }}
value: "{{ .Values.rabbitmq.endpoint.password }}"
{{ end }}
{{- end }}
- name: AMQP_URL
value: "amqp://{{ .Values.rabbitmq.endpoint.user }}:$(RP_AMQP_PASS)@{{ .Values.rabbitmq.endpoint.address }}:{{ .Values.rabbitmq.endpoint.port }}/"
value: {{ ternary "amqps" "amqp" .Values.rabbitmq.endpoint.ssl }}://{{ .Values.rabbitmq.endpoint.user }}:$(RP_AMQP_PASS)@{{ .Values.rabbitmq.endpoint.address }}:{{ .Values.rabbitmq.endpoint.port }}/
- name: AMQP_EXCHANGE_NAME
value: "analyzer-default"
- name: AMQP_VIRTUAL_HOST
Expand Down
50 changes: 27 additions & 23 deletions reportportal/templates/api-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ spec:
template:
metadata:
labels:
{{- range $key, $value := .Values.serviceapi.podLabels }}
{{ $key }}: {{ $value | quote }}
{{- end }}
component: {{ include "reportportal.fullname" . }}-api
annotations:
{{- range $key, $value := .Values.serviceapi.podAnnotations }}
Expand Down Expand Up @@ -45,14 +48,8 @@ spec:
- name: JAVA_OPTS
value: "{{ .Values.serviceapi.jvmArgs }}"
{{- end }}
- name: RP_AMQP_HOST
value: "{{ .Values.rabbitmq.endpoint.address }}"
- name: RP_AMQP_PORT
value: "{{ .Values.rabbitmq.endpoint.port }}"
- name: RP_AMQP_ANALYZER-VHOST
value: "{{ .Values.rabbitmq.vhost }}"
- name: RP_AMQP_USER
value: "{{ .Values.rabbitmq.endpoint.user }}"
- name: RP_AMQP_PASS
{{- if .Values.rabbitmq.SecretName }}
valueFrom:
Expand All @@ -62,19 +59,10 @@ spec:
{{- else }}
value: "{{ .Values.rabbitmq.endpoint.password }}"
{{- end }}
- name: RP_AMQP_APIPORT
value: "{{ .Values.rabbitmq.endpoint.apiport }}"
- name: RP_AMQP_APIUSER
value: "{{ .Values.rabbitmq.endpoint.apiuser }}"
- name: RP_AMQP_APIPASS
{{- if .Values.rabbitmq.SecretName }}
valueFrom:
secretKeyRef:
name: "{{ .Values.rabbitmq.SecretName }}"
key: "rabbitmq-password"
{{- else }}
value: "{{ .Values.rabbitmq.endpoint.password }}"
{{- end }}
- name: RP_AMQP_API_ADDRESS
value: {{ ternary "https" "http" .Values.rabbitmq.endpoint.ssl }}://{{ .Values.rabbitmq.endpoint.apiuser }}:$(RP_AMQP_PASS)@{{ .Values.rabbitmq.endpoint.address }}:{{ .Values.rabbitmq.endpoint.apiport }}/api
- name: RP_AMQP_ADDRESSES
value: {{ ternary "amqps" "amqp" .Values.rabbitmq.endpoint.ssl }}://{{ .Values.rabbitmq.endpoint.user }}:$(RP_AMQP_PASS)@{{ .Values.rabbitmq.endpoint.address }}:{{ .Values.rabbitmq.endpoint.port }}
- name: RP_DB_HOST
value: "{{ .Values.postgresql.endpoint.address }}"
- name: RP_DB_PORT
Expand Down Expand Up @@ -149,14 +137,30 @@ spec:
limits:
cpu: {{ .Values.serviceapi.resources.limits.cpu }}
memory: {{ .Values.serviceapi.resources.limits.memory }}
{{- if .Values.serviceapi.readinessProbe }}
{{- if .Values.serviceapi.readinessProbe.enabled }}
readinessProbe:
httpGet:
path: "{{ .Values.rp.healthEndpoint }}"
port: 8585
initialDelaySeconds: {{ .Values.serviceapi.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.serviceapi.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.serviceapi.readinessProbe.timeoutSeconds }}
failureThreshold: {{ .Values.serviceapi.readinessProbe.failureThreshold }}
initialDelaySeconds: {{ .Values.serviceapi.readinessProbe.initialDelaySeconds | default 30 }}
periodSeconds: {{ .Values.serviceapi.readinessProbe.periodSeconds | default 20 }}
timeoutSeconds: {{ .Values.serviceapi.readinessProbe.timeoutSeconds | default 3 }}
failureThreshold: {{ .Values.serviceapi.readinessProbe.failureThreshold | default 20 }}
{{- end }}
{{- end }}
{{- if .Values.serviceapi.livenessProbe }}
{{- if .Values.serviceapi.livenessProbe.enabled }}
livenessProbe:
httpGet:
path: "{{ .Values.rp.healthEndpoint }}"
port: 8585
initialDelaySeconds: {{ .Values.serviceapi.livenessProbe.initialDelaySeconds | default 30 }}
periodSeconds: {{ .Values.serviceapi.livenessProbe.periodSeconds | default 20 }}
timeoutSeconds: {{ .Values.serviceapi.livenessProbe.timeoutSeconds | default 5 }}
failureThreshold: {{ .Values.serviceapi.livenessProbe.failureThreshold | default 5 }}
{{- end }}
{{- end }}
{{- if .Values.serviceapi.nodeSelector }}
nodeSelector:
{{- range $key, $value := .Values.serviceapi.nodeSelector }}
Expand Down
Loading

0 comments on commit bc04fdc

Please sign in to comment.