Skip to Content

Configuration

Last updated: May 29, 2026


Installation to an OpenShift cluster requires some custom configuration via the Helm chart’s values.yaml file.

The values.yaml below is a good starting point.

Pay special attention to:

  • nginx.resolver
  • git.repositories.fsGroup

The exact values depend on your setup, please check with your cluster administrator.

global: imagePullPolicy: Always registryCredentialsSecretName: xltrail-registry-credentials # If no storageClassName is provided, it uses the default storageClassName of your # Kubernetes provider as provided by: oc get storageclass storageClassName: xltrail: secretKeySecretName: xltrail-secret-key # baseUrl: /xltrail # authTokenExpiry: 30d # maxInvalidPasswordAttempts: 5 # passwordResetTokenExpiry: 600 # If you rely on CA Certificates to connect with your Git or LDAP provider, upload # them like this: # oc create secret generic xltrail-ca-certificates --from-file=<cert1>.crt --from-file=<cert2>.crt # Note that the extension must be ".crt". Then uncomment the next line: # caCertificatesSecretName: xltrail-ca-certificates # During startup, containers check every 5 seconds if the database is up and # running. Increase number of retries if the db-migration Job fails # dbCheckRetries: 60 # This is only relevant if you use the Git integration. If your Git repos sync # correctly when disabled (0), disable it for increased security, otherwise # leave it at 1. Sometimes 1 is required, e.g. if you're using a self-signed # certificate to serve Git repositories over HTTPS # gitSslNoVerify: 1 # LDAP settings, see: # https://docs.xltrail.com/self-hosting/compose/configuration#active-directory-ldap # authProvider: ldap # ldapUrl: # ldapBindDn: # ldapBindPasswordSecretName: xltrail-ldap-bind-password # ldapBaseDn: # ldapUserDn: # ldapUserEmailAttribute: mail # ldapUserDisplaynameAttribute: cn # ldapUserFilter: # ldapAdminFilter: # ldapRequireCert must be one of: OPT_X_TLS_DEMAND, OPT_X_TLS_NEVER # ldapRequireCert: OPT_X_TLS_NEVER # SMTP settings # smtpHost: # smtpPort: # smtpSenderEmail: # smtpSenderName: # smtpUsername: # smtpPassword: xltrail-smtp-password git: repositories: # This is where the Git repos are stored on disk fsGroup: 1000050000 # Common values may range from 1000000000 to 1000059999. check with your admin storageSize: 50Gi storageClassName: crontab: # This run "git gc" to prevent repos from growing - "15 0 * * * python /server/scripts/git_gc.py" nginx: imageRegistry: registry.gitlab.com imageRepository: xltrail/xltrail/nginx resolver: dns-default.openshift-dns.svc server: imageRegistry: registry.gitlab.com imageRepository: xltrail/xltrail/server redis: imageRegistry: registry.gitlab.com imageRepository: xltrail/xltrail/redis minio: # MinIO is an object storage used for diff caching and inter-container communication imageRegistry: docker.io imageRepository: minio/minio imageTag: RELEASE.2023-10-16T04-13-43Z storageSize: 10Gi storageClassName: accessKey: xltrail secretKeySecretName: xltrail-minio-secret-key # If minioBrowser is "on" (quotes required), MinIO will activate a web dashboard that is exposed via port-forwarding: # oc port-forward service/xt-minio 9001:9001 # Then you can access the UI at: http://localhost:9001 # Note: minio doesn't restart automatically when you change the minioBrowser setting. Therefore, run # "oc delete pod/xt-minio-0" to restart minioBrowser: "off" postgresql: external: false passwordSecretName: xltrail-postgresql-password imageRegistry: docker.io imageRepository: postgres imageTag: 14.1-alpine # The following 2 lines are only used with an internal database via "external: false" storageSize: 10Gi storageClassName: # The following lines are only required when using an external database via "external: true" # Uncomment them and MAKE SURE THEY HAVE THE SAME INDENTATION AS EVERYTHING ELSE UNDER postgresql # Supported sslMode: disable or require # host: # port: # sslMode: # database: # username: pgbouncer: # Optional. When enabled, a PgBouncer client-side connection pooler is used. enabled: false imageRegistry: docker.io imageRepository: bitnami/pgbouncer imageTag: 1.21.0-debian-11-r10 minPoolSize: 0 poolSize: 20 pgweb: # Optional. When enabled, provides a web UI for managing the PostgreSQL database # This is currently not exposed outside of the cluster but can be accessed # via port-forwarding (make sure to run this in the same namespace as you run xltrail): # oc port-forward service/xt-pgweb 8081:8081 # Then you can access the UI at: http://localhost:8081 enabled: false imageRegistry: docker.io imageRepository: sosedoff/pgweb imageTag: 0.14.1 ingress: # Ingress rules, requires an existing installation of ingress-nginx enabled: true host: annotations: cert-manager.io/cluster-issuer: xltrail-cert-issuer tls: # tls requires an existing installation of cert-manager with a certificate issuer that # matches the above annotation enabled: false secret: xltrail-tls differs: # To run the differs on a specific node, provide a label ("key": "value") nodeSelector: web: # To run the web server on a specific node, provide a label ("key": "value") nodeSelector:
Last updated on