This repository contains the Helm Charts for the Tracetest installation on-premises (i.e. in your infrastructure).
Helm must be installed to use the charts. Please refer to Helm's documentation to get started.
The main chart for this repository is called tracetest-onprem
and contains all components necessary to run Tracetest on-premises on a cluster that fits the prerequisites.
You will need to have a license key to install Tracetest On-prem. If you don't have one, you can request a trial license key here.
After you have a cluster that fits the prerequisites, you can install Tracetest On-prem by running the following command:
helm repo add tracetestcloud https://kubeshop.github.io/tracetest-cloud-charts --force-update
helm install my-tracetest tracetestcloud/tracetest-onprem \
--set global.licenseKey=YOUR-TRACETEST-LICENSE \
--values values.yaml
Here are the detailed instructions to install Tracetest On-prem in your cluster:
You can see the main configurable parameters of the Tracetest On-prem chart and their default values here: values.yaml.
Default values.yaml
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
Basic values.yaml with SSO and Database defined
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
Depending on the size of your organization, your deployment might require different sizes. We provide a small
and large
deployment sizing examples.
Use the following commands to select the size for your deployment:
# large cluster
helm install my-tracetest tracetestcloud/tracetest-onprem \
--set global.licenseKey=YOUR-TRACETEST-LICENSE \
--values <your-values.yaml> \
--values https://raw.githubusercontent.com/kubeshop/tracetest-cloud-charts/main/values-cluster-large.yaml
# small cluster
helm install my-tracetest tracetestcloud/tracetest-onprem \
--set global.licenseKey=YOUR-TRACETEST-LICENSE \
--values <your-values.yaml> \
--values https://raw.githubusercontent.com/kubeshop/tracetest-cloud-charts/main/values-cluster-small.yaml
Feel free to contact us at our Slack if you have any questions.