Installation
Last updated: May 26, 2026
1. Requirements
xltrail can be installed on an OpenShift cluster via Helm chart. You’ll need the following prerequisites:
This tutorial covers the installation of xltrail into your OpenShift cluster.
This guide does not cover setting up routes or ingress options.
2. Install xltrail
2.1 Namespace
Create a namespace for xltrail. We’ll be using xltrail throughout these instructions, but you may want to call it differently, e.g., xltrail-prod etc.
oc create namespace xltrailSince the remaining commands will have to be run in this namespace, the easiest way is to set your current context to this namespace:
oc config set-context --current --namespace=xltrailConfirm that the namespace has been correctly set:
oc config view --minify | grep namespace:Instead of changing the current context, you could also add the
--namespace=xltrailor-n=xltrailargument to the commands.
2.2 Secrets
Run the following commands to create the required secrets.
-
Docker Registry (make sure to replace both
<USERNAME>and<PASSWORD>with the actual values provided by email)oc create secret docker-registry xltrail-registry-credentials --docker-server=registry.gitlab.com --docker-username=<USERNAME> --docker-password=<PASSWORD>You also need to link the image pull secret (xltrail-registry-credentials) to the default service account in the xltrail namespace. This is necessary so that OpenShift can use the secret to authenticate when pulling the images during pod creation.
oc secrets link default xltrail-registry-credentials --for=pull -
Secret Key
oc create secret generic xltrail-secret-key --from-literal=SECRET_KEY=$(head -c 512 /dev/urandom | LC_ALL=C tr -cd 'a-zA-Z0-9' | head -c 64) -
Postgres
oc create secret generic xltrail-postgresql-password --from-literal=POSTGRES_PASSWORD=$(head -c 512 /dev/urandom | LC_ALL=C tr -cd 'a-zA-Z0-9' | head -c 64)In case you’re using an externally hosted PostgreSQL instance, provide the password instead of generating a random one.
-
Minio
oc create secret generic xltrail-minio-secret-key --from-literal=MINIO_SECRET_KEY=$(head -c 512 /dev/urandom | LC_ALL=C tr -cd 'a-zA-Z0-9' | head -c 64) -
LDAP (optional)
If you intend to use LDAP for authentication, set the Bind Password here.oc create secret generic xltrail-ldap-bind-password --from-literal=LDAP_BIND_PASSWORD=<PASSWORD> -
SMTP Password (optional)
If you intend to use an SMTP server to send password reset emails, set the SMTP Password here.oc create secret generic xltrail-smtp-password --from-literal=SMTP_PASSWORD=<PASSWORD>
You should back up the generated secrets, so you can move them to a new cluster if you have to. For example, if you want to retrieve the password of the Postgres user, you could do:
oc get secret xltrail-postgresql-password -ojsonpath='{.data.POSTGRES_PASSWORD}' | base64 --decode ; echo3. Install xltrail
With secrets created and values.yaml configured (see Configuration), install xltrail with the following Helm commands:
helm repo add xltrail https://xltrail.com/charts
helm repo update
helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version=<VERSION>Note that the installation will take a couple of minutes. Confirm that all pods show their status as Running by running the following command.
oc get pods