Skip to main content

Install with Helm

Installation and deployment instructions for using Helm to deploy Enterprise self-hosted Tracetest and use the On-Prem Tracetest Control Plane/Dashboard.

Prerequisites​

  • A running Kubernetes cluster.
  • A Tracetest license key. If you don't have one, you can request a trial license key here.
  • Install kubectl.
  • Install Helm.

Install Tracetest On-Premises with Helm​

The main chart for this repository is called tracetest-onprem and contains all components necessary to run Enterprise self-hosted Tracetest on-premises in a cluster that fits the deployment architecture.

Terminal
helm repo add tracetestcloud https://kubeshop.github.io/tracetest-cloud-charts --force-update  && \

helm install <release-name> -n <namespace> tracetestcloud/tracetest-onprem \
--set global.licenseKey=<YOUR_TRACETEST_LICENSE> \
--values values.yaml

Configuration​

Configure the Helm installation with the values.yaml file. View the values.yaml default values, here.

Click to expand the values.yaml default values.
global:
# License Key provided by Tracetest team to run this instance. Default: `""`
licenseKey: ""

# This value defines if clients should expect a valid SSL certificate from the server. If you are using a self-signed certificate, you should set this to false. Default: `true`
validCertificate: true

# Pull secrets name used to fetch images from a private registry if needed. If set empty, this chart will use the public registry. For more details see: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ Default: `""`
imagePullSecret: ""
# Registry name used to fetch images. If set empty, this chart will use the public registry. For more details see: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ Default: `""`
tracetestImageRegistry: ""

sso:
google:
# Google OAuth2 client ID. You can get these from the Google Developer Console. Default: `""`
clientID: ""
# Google OAuth2 secret. You can get these from the Google Developer Console. Default: `""`
clientSecret: ""
github:
# Github OAuth2 client ID. You can get these from the Github Developer Console. Default: `"example client ID"`
clientID: "Ov23li8WMwQlvjFNNiCy"
# Github OAuth2 secret. You can get these from the Github Developer Console. Default: `"example client secret"`
clientSecret: "e317c15e43909757d1e75e78373d130c374f6601"

# If you don't want to use the default NATS server, you can specify your own NATS server here
# natsEndpointOverride: "://nats:4222"

postgresql:
auth:
# Postgres host address. Default: `""`
host: ""
# Postgres username that Tracetest APIs will use. Default: `""`
username: ""
# Postgres password that Tracetest APIs will use. Default: `""`
password: ""
# Postgres database name for Tracetest OnPrem. Default: `"tracetest"`
database: "tracetest"
# Postgres port. Default: `"5432"`
port: "5432"

mongodb:
auth:
# MongoDB connection protocol. Default: `"mongodb"`
protocol: "mongodb"
# MongoDB host address. Default: `""`
host: ""
# MongoDB username that Tracetest APIs will use. Default: `""`
username: ""
# MongoDB password that Tracetest APIs will use. Default: `""`
password: ""
# MongoDB database name for Tracetest OnPrem. Default: `"tracetest"`
database: ""
# MongoDB connection options as a key-value object. Default: `"{}"`
options: {}


# URLs section with addresses used by clients to connect to the Tracetest OnPrem instance
urls:
protocol: &protocol "https"
port: &port "30000"
rootDomain: &rootDomain "tracetest.localdev"
cookieDomain: *rootDomain

web:
protocol: *protocol
hostname: *rootDomain
port: *port
path: "/"

api:
protocol: *protocol
hostname: *rootDomain
port: *port
path: "/api"

auth:
protocol: *protocol
hostname: *rootDomain
port: *port
path: "/auth"

agents:
domain: *rootDomain
port: *port

controlPlane:
protocol: *protocol
hostname: *rootDomain
port: *port
path: "/"

nats:
enabled: true

config:
jetstream:
enabled: true
fileStore:
enabled: true
dir: /data
pvc:
enabled: true
size: 10Gi
memoryStore:
enabled: true
maxSize: 1Gi

natsBox:
container:
env:
# different from k8s units, suffix must be B, KiB, MiB, GiB, or TiB
# should be ~90% of memory limit
GOMEMLIMIT: 900MiB
merge:
# recommended limit is at least 2 CPU cores and 8Gi Memory for production JetStream clusters
resources:
requests:
cpu: 250m # one entire CPU
memory: 1Gi
limits:
memory: 1Gi
Click to expand the values.yaml with SSO and a database.
global:
validCertificate: false # defines if the certificate is generated by an external issuer of if the self-signed issuer is used

urls:
protocol: &protocol "https"
port: &port "30000"
rootDomain: &rootDomain "tracetest.mydomain.com" # DNS that the users will use to access the Tracetest
cookieDomain: *rootDomain

web:
protocol: *protocol
hostname: *rootDomain
port: *port

api:
protocol: *protocol
hostname: *rootDomain
port: *port

auth:
protocol: *protocol
hostname: *rootDomain
port: *port

agents:
domain: *rootDomain
port: *port

controlPlane:
protocol: *protocol
hostname: *rootDomain
port: *port

postgresql:
auth:
host: "path.to.my.postgres.instance"
username: "some-pg-user"
password: "some-pg-password"
database: "tracetest"

mongodb:
auth:
protocol: "mongodb"
host: "path.to.my.mongodb.instance"
username: "some-mongo-user"
password: "some-mongo-password"
database: "tracetest"
options:
retryWrites: "true"
authSource: admin