Skip to content

Tricentis/qTest.Charts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Helm Repository for qTest Manager and qTest Applications

License Chart Publish

Tricentis qTest is a centralized test management platform to help unify, manage, and rapidly scale testing across the enterprise, so teams can collaborate to ship faster with less risk.

Introduction

This repository includes the following charts:

  • clamav
  • clamav-mirror
  • qTest API Gateway
  • qTest L2C Integration
  • qTest Manager
  • qTest Scenario
  • qTest Launch
  • qTest Automation Host
  • qTest Session
  • qTest Parameters
  • qTest Pulse
  • qTest Insights
  • qTest Insights ETL
  • qTest Swagger-UI
  • qTest Test Config

Prerequisites

  • Helm 3
  • Kubernetes 1.24+
  • PV provisioner support in the underlying infrastructure

Authentication

qTest uses private Docker images and requires authentication via Docker.

docker login

When prompted, enter your Docker ID and access token. The login process creates or updates a config.json file that holds an authorization token, typically located under $HOME/.docker/config.json.

Next, create a corresponding Kubernetes secret named regcred. This can be created from you existing credentials:

kubectl create secret generic regcred \
    --from-file=.dockerconfigjson=<path/to/.docker/config.json> \
    --type=kubernetes.io/dockerconfigjson

If you do not wish to use the Docker config.json file, the secret can also be created directly from the command line:

kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>

where:

  • <your-registry-server> is your Private Docker Registry FQDN. Use https://index.docker.io/v1/ for DockerHub.
  • <your-name> is your Docker username.
  • <your-pword> is your Docker access token.
  • <your-email> is your Docker email.

Installation

Add the qTest Helm repo:

helm repo add qtest https://tricentis.github.io/qTest.Charts
helm repo update

(End-to-End) Helm Chart Integrity Verification

To verify the integrity of the qTest Helm Chart for public consumption (highly advised, however OPTIONAL), the qTest Helm Charts follow the Helm Provenance Security Packaging Guidelines to 100% guarantee the qTest Helm Chart consumers download and deploy to their Kubernetes Clusters a 100% integrity (anti-highjacked) version of the Helm Chart. For a full-description and step-for-step guideline on how to issue the verification process see Helm Provenance.

Install the qTest Manager chart with the release name qtest-manager in qtest namespace:

helm install qtest-manager qtest/qtest-mgr -f <values.yaml> -n qtest --create-namespace

Note that qTest Manager chart should be the first chart to be installed. All other qTest charts may be installed subsequently in the similar manner. For example, to install qTest Parameters with the release name qtest-parameters:

helm install qtest-parameters qtest/qtest-parameters -n qtest

Uninstallation

Removal is the reverse of installation. Start removal of the apps first and then Manager. Example:

helm uninstall qtest-parameters
helm uninstall qtest-manager

Configurations

The following table lists the configurable parameters for qTest Manager and its applications.

Ingress Controller

qTest relies an IngressController to route ingress traffic into the cluster. We recommend SSL offloading/termination be done at the IngressController. Specific TLS setup instructions depend on the IngressController you have.

qTest includes a sample NginX IngressController YAML file to demonstrate how qTest services may be exposed via an IngressController. Additional TLS configuration for the NginX IngressController can be found here.

Common properties

Every chart has a set of common properties which influence deployment-related behavior.

Parameter Description Default
namespace.name K8s namespace where to deploy the chart qtest
image.repository Docker repository where to get the image(s) from varies by a chart
image.pullPolicy Docker image pull policy IfNotPresent
deployment.annotations Annotations to add to the k8s Deployment empty
deployment.singlePodPerNode Whether to add the podAntiAffinity to not have multiple pods on a single Node, the affinity parameter takes precedence over generated podAntiAffinity empty
podAnnotations Annotations to add to the k8s Pods empty
resources K8s resources block, documentation here
requests:
cpu: 1
memory: 1Gi
limits:
cpu: 1
memory: 1Gi
nodeSelector K8s Node selector to add to the Deployment, documentation here empty
tolerations K8s Tolerations to add to the Deployment, documentation here empty
affinity K8s Affinity to add to the Deployment, documentation here empty

qTest Manager

At a minimum, the postgres and elasticSearch parameters should be provided to match your environment.

Parameter Description Default
attachment.folder.path qTest attachement folder path /mnt/data/qtest/attachments
blobstorage.type qTest Manager attachements folder type disk_storage (Accepted values disk_storage, amazon_s3_access_key)
blobstorage.region S3 bucket region us-east-1 (Needed when blobstorage.type is amazon_s3_access_key)
blobstorage.sharedBucket S3 bucket name qtest (Needed when blobstorage.type is amazon_s3_access_key)
client.jdbc.postgresUrl PSQL database URL jdbc:postgresql://host.docker.internal/qtest
client.jdbc.postgresUserName PSQL username postgres
client.jdbc.postgresPassword PSQL password cG9zdGdyZXM= (postgres, base64-encoded)
client.jdbc.sslEnable Enable ssl connections false
client.jdbc.postgres.readonly.url PSQL readonly database URL jdbc:postgresql://host.docker.internal/qtest
client.jdbc.postgres.readonly.username PSQL username postgres
client.jdbc.postgres.readonly.password PSQL password cG9zdGdyZXM= (postgres, base64-encoded)
client.jdbc.sslMountPath Postgresql ssl certificate mount directory \etc\ssl
client.jdbc.sslPath Postgresql ssl connection string ?ssl=true&sslmode=verify-full&sslrootcert=/etc/ssl/root.crt (please chnage only cert path)
client.jdbc.cert Postgresql client certificate `` (postgres client certificate, base64-encoded)
cors.allowed.all cors allowed true
cors.allowed.domains cors allowed domains ``
elasticSearch.host Elasticsearch host host.docker.internal
elasticSearch.port Elasticsearch port 9200
elasticSearch.scheme Elasticsearch port http
license.folder.path qTest Manager license folder path /mnt/data/qtest/license
mail.host SMTP host name smtp.local
mail.port SMTP port number 465
mail.username SMTP username qtest
mail.password SMTP password cG9zdGdyZXM= (postgres, base64-encoded)
mail.supportEmailAddress qTest Support email address supports@tricentis.com
notification.urlExternal Notification URL https://nephele.qtest.local
preUrl qTest Manager URL http://<sitename>.qtest.local
preUrlHttps qTest Manager URL https://<sitename>.qtest.local
qtest.request.nonce.disabled qTest request nonce disabled true
qtest.request.nonce.mode qTest request nonce mode HighPrecision
s3.accessKey S3 access key ""
s3.secretKey S3 secret key ""
s3.region S3 region ""
s3.bucketName S3 bucket name ""
s3.folder S3 folder ""
security.csrf.source.trust.pattern qTest Manager csrf security pattern ``
vera.auto.testrun.beta.clients SMTP port number -1
autoscaling.enabled Minimum replicas true
autoscaling.minReplicas.ui Minimum replicas 1
autoscaling.maxReplicas.ui Maximum replicas 3
autoscaling.minReplicas.api Minimum replicas 1
autoscaling.maxReplicas.api Maximum replicas 3
autoscaling.minReplicas.notification Minimum replicas 1
autoscaling.maxReplicas.notification Maximum replicas 1
autoscaling.minReplicas.poller Minimum replicas 1
autoscaling.maxReplicas.poller Maximum replicas 1
ingress.enabled Is Ingress enabled? false
ingress.class Name of IngressClass nginx
ingress.host qTest Manager hostname nephele.qtest.local
ingress.tls.hosts Configuration for TLS on the Ingress mgr.qtest.local
limitRange.enabled Set resource limits false
limitRange.limits.max.cpu Max CPU 2
limitRange.limits.max.memory Max memory 16Gi
limitRange.limits.default.cpu Default CPU 2
limitRange.limits.default.memory Default memory 16Gi
limitRange.limits.defaultRequest.cpu Requested CPU 2
limitRange.limits.defaultRequest.memory Requested memory 4Gi
resources.limits.cpu Set CPU limits for all deployments. Can be overidden with '[component].resources.limits.cpu'
resources.limits.memory Set Memory limits for all deployments. Can be overidden with '[component].resources.limits.memory'
resources.requests.cpu Set CPU requests for all deployments. Can be overidden with '[component].resources.requests.cpu'
resources.requests.memory Set Memory requests for all deployments. Can be overidden with '[component].resources.requests.memory'
persistence.enabled Is PersistentVolume enabled? true
persistence.existingClaim Existing PersistentVolumeClaim ""
persistence.storageClass Existing StorageClass ""
persistence.accessMode Storage Access Mode ReadWriteOnce
persistence.size Storage size 10Gi
service.port Port on service for other pods to talk to 8080
service.targetPort Port on container to serve traffic 8080
service.port Port on service for other pods to talk to 8080
service.targetPort Port on container to serve traffic 8080
testconductor.environment.singleInstance Runs in qTest Manager in a single pod true
serverAppSSLRequired Runs pod of qTest Manager on SSL false
serverAppSSLCipherSuites Cipher suites for SSL/TLS connection []
server.sslMountPath Pod certificate mounting path /mnt/secrets/tls

Parameters app configurations to change in parameters-values-kind.yaml

Parameter Description Default
qTestParametersDBName PSQL database name of the parameters app parameters
qTestParametersDBUserName PSQL username postgres
qTestParametersDBHostName PSQL database host name host.docker.internal
qTestParametersDBSSLEnable Enable ssl connections false
qTestParametersDBSSLMountPath Postgresql ssl certificate mount directory \etc\ssl
qTestParametersDBSSL SSL Connection which appends for SSL Connection (only change cert name) ?ssl=true&sslmode=verify-full&sslrootcert=/etc/ssl/root.crt
qTestParametersDBRootCRT Postgresql client certificate `` (postgres client certificate, base64-encoded)
qTestParametersDBPort Postgresql database port 5432
qTestParametersSSLRequired Pod Level SSL Traffic Encryption false
qTestParametersSSLMountPath Pod client certificate /mnt/secrets/tls
qTestParametersSSLCipherSuites Cipher suites for SSL/TLS connection []

Launch app configurations to change in launch-values-kind.yaml

Parameter Description Default
qTestLaunchDBName PSQL database name of the qTest Manager qtest
qTestLaunchDBUserName PSQL username postgres
qTestLaunchDBHostName PSQL database host name host.docker.internal
qTestLaunchRootURL qTest Launch url https://launch.qtest.local
qTestLaunchDBSSLEnable Enable ssl connections false
qTestLaunchDBSSLMountPath Postgresql ssl certificate mount directory \etc\ssl
qTestLaunchDBSSL SSL Connection which appends for SSL Connection (only change cert name) ?ssl=true&sslmode=verify-full&sslrootcert=/etc/ssl/root.crt
qTestLaunchDBRootCRT Postgresql client certificate `` (postgres client certificate, base64-encoded)
qTestLaunchDBPort Postgresql database port 5432
qTestLaunchSSLRequired Pod Level SSL Traffic Encryption false
qTestLaunchSSLMountPath Pod client certificate /mnt/secrets/tls
qTestLaunchSSLCipherSuites Cipher suites for SSL/TLS connection []
qTestLaunchDeploymentEnv Type of deployment environment. Either SaaS or OP op

Automation Host app configurations to change in Charts/qtest-automation-host/values.yaml

Parameter Description Default
qTestAutomationHostName Name of the Automation Host in Launch UI AutomationHost
qTestAutomationHostPort Port of the Automation Host 6789
qTestAutomationHostManagerUrl URL of qTest Manager to which Automation Host should connect https://manager.dc

Pulse app configurations to change in pulse-values-kind.yaml

Helm chart values for Pulse service to set either in values-pulse.yaml or --set flag.

Installation command for pulse service:

helm install qtest-pulse-executor qtest/qtest-pulse -n qtest -f values-pulse.yaml
Parameter Description Default
qTestPulseDBName PSQL database name of the pulse pulse
qTestPulseDBUserName PSQL username postgres
qTestPulseDBHostName PSQL database host name host.docker.internal
qTestPulseRootURL qTest Pulse url https://pulse.qtest.local
qTestPulseScenarioURL qTest Launch url https://scenario.qtest.local
qTestPulseDBSSLEnable Enable ssl connections false
qTestPulseDBSSLMountPath Postgresql ssl certificate mount directory \etc\ssl
qTestPulseDBSSL SSL Connection which appends for SSL Connection (only change cert name) ?ssl=true&sslmode=verify-full&sslrootcert=/etc/ssl/root.crt
qTestPulseDBRootCRT Postgresql client certificate (postgres client certificate, base64-encoded)
qTestPulseType The type of Pulse service that is running, can be qtest-pulse or executor qtest-pulse
qTestPulseExecutorUrl The URL of Pulse Executor, could be something like http://pulse-executor-service.<namespace> empty string
qTestPulseDBPort Postgresql database port 5432
qTestPulseSSLRequired Pod Level SSL Traffic Encryption false
qTestPulseSSLMountPath Pod client certificate /mnt/secrets/tls
qTestPulseSSLCipherSuites Cipher suites for SSL/TLS connection []
qtestPulseExecutorApiKey Pulse Executor API key - random string used as an authorization between pulse service and executor service '' empty string

Pulse Executor app configurations to change in pulse-executor-values-kind.yaml

Helm chart values for Pulse Executor service to set either in values-pulse.yaml or --set flag.

Installation command for executor service:

helm install qtest-pulse-executor qtest/qtest-pulse -n qtest -f values-pulse-executor.yaml
Parameter Description Default
qTestPulseType The type of Pulse service that is running, can be qtest-pulse or executor. Default is qtest-pulse for running executor should be change to executor qtest-pulse
qtestPulseExecutorApiKey Pulse Executor API key - random string used as an authorization between pulse service and executor, should be same as in pulse service '' empty string
nameOverride Pulse and executor use the same chart. To not conflicting resources value should be set to 'qtest-pulse-executor ''
service.serviceName To rename the k8s service. Value should be set to something like pulse-executor-service. value has to be the same like the one on Pulse app above. ''

Scenario app configurations to change in scenario-values-kind.yaml

Parameter Description Default
qTestScenarioDBName PSQL database name of the scenario scenario
qTestScenarioDBUserName PSQL username postgres
qTestScenarioDBHostName PSQL database host name host.docker.internal
qTestScenarioLocalBaseURL qTest Pulse url https://scenario.qtest.local
qTestScenarioQTestURL qTest Launch url https://nephele.qtest.local
qTestScenarioDBSSLEnable Enable ssl connections false
qTestScenarioDBSSLMountPath Postgresql ssl certificate mount directory \etc\ssl
qTestScenarioDBSSL SSL Connection which appends for SSL Connection (only change cert name) ?ssl=true&sslmode=verify-full&sslrootcert=/etc/ssl/root.crt
qTestScenarioDBRootCRT Postgresql client certificate `` (postgres client certificate, base64-encoded)
qTestScenarioDBPort Postgresql database port 5432
qTestScenarioSSLRequired Pod Level SSL Traffic Encryption false
qTestScenarioSSLMountPath Pod client certificate /mnt/secrets/tls
qTestScenarioSSLCipherSuites Cipher suites for SSL/TLS connection []
qTestScenarioDeploymentEnv Type of deployment environment. Either SaaS or OP op

Session app configurations to change in sessions-values-kind.yaml

Parameter Description Default
qTestSessionDBName PSQL database name of the session sessions
qTestSessionDBUserName PSQL username postgres
qTestSessionDBHostName PSQL database host name host.docker.internal
qTestStorageBucketName Amazon S3 bucket name aws-session-bucket-name
qTestSessionClamavURL qTest clama url https://clam.qtest.local
qTestSessionStorageType Session storage type amazon_s3 disk_storage
qTestSessionDBSSLEnable Enable ssl connections false
qTestSessionDBSSLMountPath Postgresql ssl certificate mount directory \etc\ssl
qTestSessionDBSSL SSL Connection which appends for SSL Connection (only change cert name) ?ssl=true&sslmode=verify-full&sslrootcert=/etc/ssl/root.crt
qTestSessionDBRootCRT Postgresql client certificate `` (postgres client certificate, base64-encoded)`
qTestSessionDBPort Postgresql database port 5432
qTestSessionSSLRequired Pod Level SSL Traffic Encryption false
qTestSessionSSLMountPath Pod client certificate /mnt/secrets/tls
qTestSessionSSLCipherSuites Cipher suites for SSL/TLS connection []
qTestSessionDeploymentEnv Type of deployment environment. Either SaaS or OP op

Insights app configurations to change in insights-values-kind.yaml

Parameter Description Default
qTestInsightsDBName PSQL database name of the qTest manager qTest
qTestInsightsDBUser PSQL username postgres
qTestInsightsDBHost PSQL database host name host.docker.internal
qTestInsightsDBSchema Schema name for qTest Manager public
qTestInsightsWriteQTestDBName PSQL database name of the qTest manager qTest
qTestInsightsWriteQTestDBUser PSQL username postgres
qTestInsightsWriteQTestDBPassword PSQL password cG9zdGdyZXM= (postgres, base64-encoded)
qTestInsightsWriteQTestDBHost PSQL database host name host.docker.internal
qTestInsightsWriteQTestDBSchema Schema name of qtest manager public
qTestInsightsSessionDBName PSQL database name of the session sessions
qTestInsightsSessionDBSchema PSQL session schema name postgres
qTestInsightsSessionDBUser PSQL username postgres
qTestInsightsSessionDBPassword PSQL password cG9zdGdyZXM= (postgres, base64-encoded)
qTestInsightsSessionDBHost PSQL database host name host.docker.internal
serverAppSSLRequired Runs pod of Insights on SSL false
qTestInsightsWriteQTestDBPort Insights Postgresql database port 5432
qTestInsightsSessionDBPort Session Postgresql database port 5432
server.sslMountPath Pod Level SSL Traffic Encryption /mnt/secrets/tls
qTestInsightsSSLCipherSuites Cipher suites for SSL/TLS connection []

Insights etl app configurations to change in insights-etl-values-kind.yaml

Parameter Description Default
qTestInsightsEtlDBName PSQL database name of the qTest manager qTest
qTestInsightsEtlDBUser PSQL username postgres
qTestInsightsEtlDBHost PSQL database host name host.docker.internal
qTestInsightsEtlWriteQTestDBName PSQL database name of the qTest manager qTest
qTestInsightsEtlWriteQTestDBUser PSQL username postgres
qTestInsightsEtlWriteQTestDBHost PSQL database host name host.docker.internal
qTestInsightsEtlDBSchemaName qTest Manager schema name public
qTestInsightsEtlSessionDBName PSQL database name of the session sessions
qTestInsightsEtlSessionDBUser PSQL username postgres
qTestInsightsEtlSessionDBSchema PSQL sessions schema name postgres
qTestInsightsEtlSessionDBHost PSQL database host name host.docker.internal
qTestInsightsEtlDBPort Insights Postgresql database port 5432
qTestInsightsEtlWriteQTestDBPort qTest Postgresql database port 5432
writeSessionsDBPort Session Postgresql database port 5432
qTestInsightsEtlDeploymentEnv Deployment environment. saas or op op

For file persistence, only one of the following options is needed:

  • AWS S3. File attachments are stored into the specified S3 bucket/folder.
  • StorageClass. StorageClass used to carve out a PersistentVolumeClaim with the specified size and access mode. If empty, the default StorageClass will be used.
  • existingClaim. If specified, the PersistentVolumeClaim will be used as file persistence for qTest.

Uninstalling the qTest Manager Chart

To uninstall the qTest Manager chart with the release name qtestmanager:

$ helm uninstall qtestmanager