Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 24.1 #370

Merged
merged 34 commits into from
Mar 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
12f7991
Values for Release 23.3
hlebkanonik Dec 18, 2023
2bf5efe
changed api var
hlebkanonik Dec 19, 2023
63cb8cf
missing "
hlebkanonik Dec 19, 2023
ab33c37
missing ""
hlebkanonik Dec 19, 2023
a9dadf6
removed . from RP_JOBS_BASEURL
hlebkanonik Dec 19, 2023
becba58
missing {{}}
hlebkanonik Dec 19, 2023
850fb52
jobs path for api
hlebkanonik Dec 19, 2023
6db6357
RP_ELASTICSEARCH_HOST for API
hlebkanonik Dec 20, 2023
21eb9e9
SLACK badge updated
hlebkanonik Jan 15, 2024
6a51ddc
added log level for audit container
hlebkanonik Jan 19, 2024
b6c3779
Update interruptBrockenLaunches
hlebkanonik Jan 23, 2024
5a74376
Update release versions
hlebkanonik Jan 23, 2024
28bc3ab
Update README.md
hlebkanonik Jan 26, 2024
c1dbed3
Update README.md
hlebkanonik Jan 26, 2024
5c974a6
restructrue
hlebkanonik Feb 8, 2024
8e160bc
Add annotaion support to ingress services
igrigr Feb 11, 2024
f1f2132
Update README
raikbitters Feb 14, 2024
c9a4793
Update ingress configuration for GKE (#362)
raikbitters Feb 14, 2024
0e1031e
Merge branch 'develop' into release/24.1
hlebkanonik Feb 14, 2024
af838e1
Merge branch 'develop' into feature/add-service-annoations
igrigr Feb 18, 2024
3d281ae
Add annotations using the `with` keyword
igrigr Feb 19, 2024
7e45b4f
Support Google-managed SSL certificates (#366)
raikbitters Feb 19, 2024
6f04982
OpenSearch Secret added for Service Migrations #367
hlebkanonik Feb 28, 2024
a9dd4b1
Merge branch 'develop' into release/24.1
hlebkanonik Feb 28, 2024
60cbe88
fix merge conflict
hlebkanonik Feb 28, 2024
ac814d5
fix conflicts artifacts
hlebkanonik Feb 28, 2024
5296bf3
Merge pull request #365 from tomikonio/feature/add-service-annoations
hlebkanonik Mar 5, 2024
186aac3
annotations for k8s services improved
hlebkanonik Mar 5, 2024
b7d1c59
Merge branch 'develop' into release/24.1
hlebkanonik Mar 5, 2024
149359d
added imagePullsecret
hlebkanonik Mar 5, 2024
f2d33ab
Release 24.1
hlebkanonik Mar 5, 2024
932b662
double entry disabled by default
hlebkanonik Mar 5, 2024
70dcff7
helmignore changed
hlebkanonik Mar 6, 2024
58b4efc
Merge pull request #369 from reportportal/release/24.1
hlebkanonik Mar 6, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 15 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,14 +1,24 @@
*.xml
# Idea
/idea/*
/.idea/
*.iml

# VSCode
.vscode/

# Helm
charts/
/reportportal/charts/
/reportportal/Chart.lock

# Other
*.xml
*.iml
.DS_Store
*.old
*.backup
*.bak
*.orig
*.rej
charts/
Chart.lock
*.tgz
*.tgz
tmp/
temp/
4 changes: 0 additions & 4 deletions .helmignore

This file was deleted.

6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,21 @@
[![License](https://img.shields.io/badge/license-Apache-brightgreen.svg)](https://www.apache.org/licenses/LICENSE-2.0)
[![Build with Love](https://img.shields.io/badge/build%20with-❤%EF%B8%8F%E2%80%8D-lightgrey.svg)](http://reportportal.io?style=flat)


This repository houses the Helm chart for ReportPortal, a powerful and flexible TestOps service, that provides increased capabilities to speed up results analysis and reporting through the use of built-in analytic features.

## Prerequisites

* Kubernetes v1.26+
* Helm Package Manager v3.4+

## Documentation

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

## Community / Support

* [**Slack chat**](https://reportportal-slack-auto.herokuapp.com)
* [**Security Advisories**](https://github.com/reportportal/reportportal/blob/master/SECURITY_ADVISORIES.md)
* [GitHub Issues](https://github.com/reportportal/reportportal/issues)
Expand All @@ -29,5 +31,5 @@ This repository houses the Helm chart for ReportPortal, a powerful and flexible
* [YouTube Channel](https://www.youtube.com/channel/UCsZxrHqLHPJcrkcgIGRG-cQ)

## License
Report Portal is [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0).

Report Portal is [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0).
19 changes: 19 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Kubernetes installation guides

This directory contains installation guides for ReportPortal on Kubernetes.

- [Install ReportPortal on Minikube](minikube-install.md)
- [Install ReportPortal on GKE](gke-install.md)
- [Certificates Management](certificates-management.md)
- [Cert-Manager Configuration](cert-manager-config.md)
- [Google Managed Certificates Configuration](gcp-managed-cert-config.md)

## Google Kubernetes Engine (GKE) application

Here is a repository with a repository wrapper for Google Cloud Platform Marketplace:
[reportportal/gcp-k8s-app](https://github.com/reportportal/gcp-k8s-app)

## Feedback

You can provide feedback on these installation guides by
[opening an issue](https://github.com/reportportal/kubernetes/issues/new/choose).
90 changes: 90 additions & 0 deletions docs/cert-manager-config.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# Using Cert-Manager to manage certificates

- [Using Cert-Manager to manage certificates](#using-cert-manager-to-manage-certificates)
- [Overview](#overview)
- [Install Cert-Manager](#install-cert-manager)
- [Create an Issuer resource](#create-an-issuer-resource)
- [Configure the Ingress resource](#configure-the-ingress-resource)

## Overview

You can use [Cert-Manager](https://cert-manager.io/docs/) to manage certificates for your domain name.

Detailed instructions on how to install and configure Cert-Manager can be found in the [official documentation](https://cert-manager.io/docs/getting-started/).

## Install Cert-Manager

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

This will install the latest version of Cert-Manager.

Check the installation:

```bash
kubectl -n cert-manager get all
```

## Create an Issuer resource

Create a file called `letsencrypt.yaml` with the following content:

```yaml
# letsencrypt.yaml
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: letsencrypt
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: {EMAIL_ADDRESS} # Replace this with your email address
privateKeySecretRef:
name: letsencrypt
solvers:
- http01:
ingress:
name: {APP_NAME}-gateway-ingress
```

Apply the configuration:

```bash
kubectl apply -f letsencrypt.yaml
```

## Configure the Ingress resource

Open the Ingress resource for editing:

```bash
kubectl edit ingress {APP_NAME}-gateway-ingress
```

Add the following annotations:

```yaml
...
metadata:
annotations:
cert-manager.io/issuer: letsencrypt
...
```

Add the following tls section if it does not exist:

```yaml
spec:
tls:
- secretName: {APP_NAME}-gateway-tls
hosts:
- example.com
...
```

After saving the changes, Cert-Manager will automatically request a certificate from Let's Encrypt
and store it in the `APP_NAME-gateway-tls` secret.

Read more about Cert-Manager and Let's Encrypt integration in
the [official documentation](https://cert-manager.io/docs/configuration/acme/).
14 changes: 14 additions & 0 deletions docs/certificates-management.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Use certificates for secure HTTPS connections

Certificates are used to secure connections between clients and servers over HTTPS.
We provide built-in certificate managers to automatically provision, renew,
and manage certificates for your domain.

You must own a domain and opportunity to manage DNS records to use certificates.

There are two options for managing certificates:

- [Google-managed SSL certificates](./gcp-managed-cert-config.md)
are available only for use with Google Cloud Platform (GCP) services.
- [Cert-Manager](./cert-manager-config.md)
is vendor-agnostic and can be used with any Kubernetes cluster and Cloud providers.
158 changes: 158 additions & 0 deletions docs/gcp-managed-cert-config.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
# Use Google-managed SSL certificates

- [Use Google-managed SSL certificates](#use-google-managed-ssl-certificates)
- [Limitations](#limitations)
- [Before you begin](#before-you-begin)
- [Add a Google-managed SSL via Helm chart](#add-a-google-managed-ssl-via-helm-chart)
- [Manual adding a Google-managed SSL certificate](#manual-adding-a-google-managed-ssl-certificate)
- [Setting up a Google-managed certificate](#setting-up-a-google-managed-certificate)
- [Create a `ManagedCertificate` resource](#create-a-managedcertificate-resource)
- [Update the Ingress resource](#update-the-ingress-resource)
- [Check the status of the certificate](#check-the-status-of-the-certificate)
- [Using kubectl](#using-kubectl)
- [Using the Google Cloud CLI](#using-the-google-cloud-cli)
- [Disable HTTP Load Balancing](#disable-http-load-balancing)
- [Clean up](#clean-up)

You can use Google-managed SSL certificates to secure your custom domain with HTTPS.
Google-managed SSL certificates are provisioned, renewed, and managed for your domain by Google.
You can use Google-managed SSL certificates with Google Kubernetes Engine (GKE) and Google Cloud Load Balancing.

Comprehensive documentation is available at [Google-managed SSL certificates](https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs).

## Limitations

- Don't support wildcard domains.
- The domain name must be no longer than 63 characters.
- Your ingressClassName must be "gce".
- You must apply Ingress and ManagedCertificate resources in the same project and namespace.

## Before you begin

- [Install the Google Cloud CLI](https://cloud.google.com/sdk/docs/install).
- [Install kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/).
- [Set up default gcloud settings](https://cloud.google.com/sdk/gcloud/reference/init).
- [Set up Environment Variables](./quick-start-gcp-gke.md#set-up-environment-variables).
- [Get cluster credentials for kubectl](./quick-start-gcp-gke.md#get-cluster-credentials-for-kubectl)

## Add a Google-managed SSL via Helm chart

To add a Google-managed SSL certificate to your ReportPortal deployment,
you need to set the following parameters:

```bash
helm install \
...
--set ingress.tls.certificate.gcpManaged=true
--set ingress.hosts[0]="example.com"
...

```

Helm creates a `ManagedCertificate` resource and an `Ingress` resource that references the `ManagedCertificate` resource.

GKE automatically provisions the certificate and configures the load balancer to use it.

## Manual adding a Google-managed SSL certificate

### Setting up a Google-managed certificate

#### Create a `ManagedCertificate` resource

Create a `ManagedCertificate` resource in gcp-managed-cert.yaml to request a Google-managed SSL certificate for your domain.

```yaml
# gcp-managed-cert.yaml
apiVersion: networking.gke.io/v1
kind: ManagedCertificate
metadata:
name: gcp-managed-certificate
spec:
domains:
- FQDN_1
- FQDN_2
```

`FQDN_1`, `FQDN_2`: Fully-qualified domain names that you own. For example, example.com.

Apply the configuration:

```bash
kubectl apply -f gcp-managed-cert.yaml
```

#### Update the Ingress resource

> **Note:** Replace `{APP_NAME}` with your application name.

If you have tls section in your Ingress resource, remove it.

```bash
kubectl edit ingress ${APP_NAME}-gateway-ingress
```

Update the Ingress resource to reference the `ManagedCertificate` resource:

```bash
kubectl annotate ingress ${APP_NAME}-gateway-ingress networking.gke.io/manage-certificates=gcp-managed-certificate
```

## Check the status of the certificate

### Using kubectl

To check the status of the certificate, run the following command:

```bash
kubectl describe managedcertificate
```

In the output, look for the `Status`. The status contains `Certificate Status`.
`Certificate Name` is the GCP managed certificate name.

### Using the Google Cloud CLI

To check all GCP managed certificates, run the following command:

```bash
gcloud compute ssl-certificates list --global
```

You need to find the certificate by the Google generated name and check the `MANAGED_STATUS` column.

You can get Google generated name from the `Certificate Name` [using kubectl](#using-kubectl).

## Disable HTTP Load Balancing

If you want to disable HTTP Load Balancing, you can do it after the certificate
is attached to the Ingress resource:

```bash
kubectl annotate ingress ${APP_NAME}-gateway-ingress kubernetes.io/ingress.allow-http: "false"
```

## Clean up

To delete the `ManagedCertificate` resource:

```bash
kubectl delete managedcertificate gcp-managed-certificate
```

Remove the `ManagedCertificate` reference from the Ingress resource:

```bash
kubectl annotate ingress managed-cert-ingress networking.gke.io/gcp-managed-certificate-
```

Also, check that the certificate is removed from the Google Cloud Console

```bash
gcloud compute ssl-certificates list --global
```

If the certificate is still present, delete it:

```bash
gcloud compute ssl-certificates delete ${CERTIFICATE_NAME} --global
```
Loading