Helm Chart for openQA inside Kubernetes
May 4, 2026 ยท View on GitHub
Prerequisites:
For more information, please consult the Helm documentation.
The chart consists of two separate sub-charts, worker and webui, and a parent chart, openqa.
Installation
Make sure first that a Kubernetes cluster is running:
minikube start
minikube status
Gateway API setup
The chart uses the Kubernetes Gateway API for external access. This has to be installed once before the provision of the cluster. Install the Gateway API CRDs and Envoy Gateway controller:
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/<GW_VERSION>/standard-install.yaml --server-side
helm install eg oci://docker.io/envoyproxy/gateway-helm \
-n envoy-gateway-system --create-namespace --skip-crds
Install the chart
Update helm dependencies (if needed) and install the parent chart from the
container/helm directory:
cd container/helm
helm dependency update openqa/
helm install openqa openqa/ --wait --timeout 5m
The dependency subcommand will build the manifests of the services, which can
be found under openqa/charts/.
The install will deploy the services in the cluster.
To uninstall and start over, use helm uninstall openqa and rerun
helm dependency update openqa/.
Check that everything is up and running:
helm status --show-resources openqa
Accessing the Web UI
Via Gateway API (recommended)
The chart creates a Gateway and HTTPRoute by default. For minikube, run
minikube tunnel in a separate terminal to assign an external IP to the
gateway's LoadBalancer service.
Find the gateway address:
kubectl get gateway
Add the gateway address to /etc/hosts, pointing to the hostname configured in values.yaml (baseUrl):
<GATEWAY_ADDRESS> openqa.internal
Then access the UI at http://openqa.internal.
Note: In production, the cloud provider (AWS, GCP, etc.) provisions the LoadBalancer automatically -- no tunnel or manual IP configuration is needed.
Via port-forward (quick testing)
No gateway setup needed. Forward the service port directly:
kubectl port-forward svc/openqa 8080:80
Then access the UI at http://localhost:8080.
Running a Test Job
The easiest way to run a job is to clone one from an existing openQA instance:
openqa-clone-job --from https://openqa.opensuse.org --host http://openqa.internal <JOB_ID>
Pick a job ID from https://openqa.opensuse.org. This copies the job settings and downloads the needed assets.
Alternatively, use openqa-cli to post a job directly:
openqa-cli api --host http://openqa.internal -X POST jobs \
DISTRI=opensuse VERSION=Tumbleweed FLAVOR=DVD ARCH=x86_64 TEST=minimalx
Configuration
It might be necessary to customize the charts by overriding some of the
variables inside openqa/values.yaml to suit your needs. For testing, it is also useful to create a my_values.yaml and run:
helm install openqa openqa/ -f my_values.yaml
Worker
The worker requires some basic configuration, as described in the documentation.