Install in GCP
Installation and deployment instructions for using Helm to deploy Enterprise self-hosted Tracetest in GCP (GKE) and use the On-Prem Tracetest Control Plane/Dashboard.
Prerequisites​
- A Kubernetes cluster running on GKE (installation instructions).
- Traefik installed in your cluster (installation instructions).
- A Cert Manager installed in your cluster (installation instructions).
- 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 in GCP (GKE) 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.
Cert Manager​
Make sure that you have a Cert Manager installed in your cluster with a valid issuer. If you don't have one, you can follow the cert-manager installation guide or use the following command to install it:
# create namespace for cert-manager in your cluster
kubectl create namespace cert-manager
# add the jetstack repository to helm
helm repo add jetstack https://charts.jetstack.io --force-update
# install cert-manager, setting the CRDs and leader election namespace (needed for GKE)
helm install cert-manager jetstack/cert-manager \
--namespace cert-manager \
--version v1.15.0 \
--set crds.enabled=true \
--set global.leaderElection.namespace=cert-manager
Traefik​
Also, you will need to have a Traefik proxy, that will handle all connections to the Tracetest services. You can install Traefik by creating a values-traefik.yaml
file with the following content:
dnsNames:
- "tracetest.localdev" # add here your DNS domain to access Tracetest
tls:
issuerRef:
... # add here your issuer reference
providers:
kubernetesCRD:
enabled: true
service:
type: NodePort
ports:
websecure:
port: 30000
exposedPort: 30000
nodePort: 30000
protocol: TCP
tls:
enabled: true
http2:
maxConcurrentStreams: 250
And then run the following commands:
# create namespace for traefik in your cluster
kubectl create namespace traefik
# add traefik charts in your machine
helm repo add traefik https://helm.traefik.io/traefik --force-update
# install traefik in your cluster
helm install traefik traefik/traefik \
--namespace traefik \
--values values-traefik.yaml
DNS​
After that, you will create a values.yaml
file that defines what is the DNS domain that you will use to access the Tracetest services and the connection details for Postgres and MongoDB.
You can see more details about the values.yaml
file here.
You can use the following template to create your values.yaml
file, where we are using the domain tracetest.localdev
as the DNS, tracetest-postgres-postgresql.external
as the Postgres and tracetest-dependencies-mongodb.external
MongoDB server:
global:
urls:
protocol: &protocol "https"
port: &port "30000"
rootDomain: &rootDomain "tracetest.localdev"
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: "tracetest-postgres-postgresql.external"
username: "tracetest"
password: "tracetest"
database: "tracetest"
mongodb:
auth:
protocol: "mongodb"
host: "tracetest-dependencies-mongodb.external"
username: "tracetest"
password: "tracetest"
database: "tracetest"
options:
retryWrites: "true"
authSource: admin
Helm Install​
And finally, run the helm install
command with your license key and the values.yaml
file:
# create namespace for tracetest cloud in your cluster
kubectl create namespace tracetestcloud
# add tracetest cloud charts in your machine
helm repo add tracetestcloud https://kubeshop.github.io/tracetest-cloud-charts --force-update
# and then install tracetest cloud in your cluster
helm install my-tracetest-cloud tracetestcloud/tracetest-onprem \
--namespace tracetestcloud \
--set global.licenseKey=<YOUR_LICENSE_KEY> \
--values values.yaml