Installing openQA on Kubernetes with Helm Charts
All checks were successful
Build / build (push) Successful in 19s
All checks were successful
Build / build (push) Successful in 19s
This commit is contained in:
parent
93c77ebd48
commit
c311b67b04
@ -0,0 +1,126 @@
|
||||
+++
|
||||
title = "Installing openQA on Kubernetes with Helm Charts"
|
||||
date = 2025-06-04
|
||||
|
||||
[taxonomies]
|
||||
categories = ["Linux"]
|
||||
|
||||
[extra]
|
||||
author = "Emil Miler"
|
||||
+++
|
||||
|
||||
Recently, I experimented with Kubernetes by installing [openQA](https://open.qa/) using Helm Charts. This article is a simple guide on how to do the same locally on your computer, with minimal effort.
|
||||
|
||||
<!-- more -->
|
||||
|
||||
You need a working cluster. There are several single-node management tools that let you run a Kubernetes cluster locally on your machine, such as [k3d](https://k3d.io/), [kind](https://kind.sigs.k8s.io/), or [minikube](https://minikube.sigs.k8s.io/). They provide a cluster entirely isolated within a container.
|
||||
|
||||
I will be using minikube.
|
||||
|
||||
|
||||
## Installation of Tools
|
||||
|
||||
Install minikube -- or any other management tool -- along with *helm*. For example, on Void Linux:
|
||||
|
||||
```
|
||||
xbps-install -S minikube kubernetes-helm
|
||||
```
|
||||
|
||||
You also have to have a running container engine, such as [Podman](https://podman.io/) or [Docker](https://www.docker.com/). Configuring a container engine is outside the scope of this article.
|
||||
|
||||
|
||||
## Preparing the Cluster
|
||||
|
||||
|
||||
|
||||
Since I am using minikube, I can simply start it like so:
|
||||
|
||||
|
||||
```
|
||||
minikube start
|
||||
```
|
||||
|
||||
This might take a while during the initial setup. If you want, you can also run a web-based dashboard for better visualization and debugging.
|
||||
|
||||
```
|
||||
minikube dashboard
|
||||
```
|
||||
|
||||
The dashboard will open in your default browser.
|
||||
|
||||
|
||||
## Downloading openQA Charts
|
||||
|
||||
The official charts are available in the [openQA source code repository](https://github.com/os-autoinst/openQA), which can be cloned with the following command:
|
||||
|
||||
|
||||
```
|
||||
git clone https://github.com/os-autoinst/openQA.git
|
||||
```
|
||||
|
||||
If you have GitHub setup properly with SSH, you might use this instead:
|
||||
|
||||
```
|
||||
git clone git@github.com:os-autoinst/openQA.git
|
||||
```
|
||||
|
||||
The charts themselves are stored in `container/helm`. You can change your working directory to that location:
|
||||
|
||||
```
|
||||
cd openQA/container/helm
|
||||
```
|
||||
|
||||
### Chart Structure
|
||||
|
||||
The `charts` folder contains several different charts:
|
||||
|
||||
- `openqa` -- Parent chart.
|
||||
- `webui` -- Web interface and API for openQA.
|
||||
- `worker` -- openQA worker that performs the actual test execution.
|
||||
|
||||
We will be working with the parent chart `openqa`. Since it references the other charts, they will be handled automatically by the parent.
|
||||
|
||||
|
||||
## Installing openQA
|
||||
|
||||
By default, the openQA WebUI template only exposes ports to the local network inside minikube, which makes the WebUI inaccessible from the host system. We need to add `type: NodePort` to the port specification under `spec:` in `charts/webui/templates/svc.yml`:
|
||||
|
||||
```
|
||||
sed -i '/^[[:space:]]*spec:/a\ type: NodePort' charts/webui/templates/svc.yml
|
||||
```
|
||||
|
||||
We then have to update dependencies and install openQA:
|
||||
|
||||
```
|
||||
$ helm dependency update charts/openqa/
|
||||
$ helm install openqa charts/openqa/
|
||||
```
|
||||
|
||||
We can also list installed releases to confirm that openQA was deployed:
|
||||
|
||||
```
|
||||
$ helm list
|
||||
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
|
||||
openqa default 1 2025-06-04 12:39:08.150021755 +0200 CEST deployed openqa-0.1.0
|
||||
```
|
||||
|
||||
The minikube dashboard also lists all running pods:
|
||||
|
||||

|
||||
|
||||
|
||||
### Accessing openQA WebUI
|
||||
|
||||
Minikube provides a convenient way to list services and their exposed NodePorts:
|
||||
|
||||
```
|
||||
$ minikube service openqa-webui --url
|
||||
http://192.168.49.2:30765
|
||||
http://192.168.49.2:30134
|
||||
http://192.168.49.2:30333
|
||||
http://192.168.49.2:31258
|
||||
```
|
||||
|
||||
The openQA WebUI is running on port *30765*, which is now accessible directly from your browser.
|
||||
|
||||

|
Binary file not shown.
After Width: | Height: | Size: 102 KiB |
Binary file not shown.
After Width: | Height: | Size: 37 KiB |
Loading…
x
Reference in New Issue
Block a user