Tracardi Commercial Installation (Quick Start Guide)
This guide will help you perform a fast commercial installation of Tracardi on a Kubernetes (K8s) cluster.
Prerequisites
Before proceeding, ensure you have the following:
- A DockerHub access token (provided by the Tracardi vendor)
- A gzipped Helm chart (
.tgz
) of the Tracardi application
Installing Dependencies
We recommend that your team installs dependencies manually to better understand the system configuration and behavior. However, if you want to get up and running quickly, you can request pre-packaged .zip
files from the vendor—one for each dependency. These include short installation scripts for deploying each component into your K8s cluster.
Once you receive the packages:
- Unzip the files
-
Follow the instructions provided in each dependency’s guide:
- Redis Helm Chart Installation
- Apache Pulsar Helm Chart Installation
- MySQL Helm Chart Installation
Configuration File
After installing the dependencies, create a YAML configuration file (e.g., values.yaml
) for your installation. Below is a list of values that must be replaced with your own infrastructure and credentials:
Values to Replace
Path | Description |
---|---|
elastic.host |
Hostname of your Elasticsearch service |
redis.host |
Hostname of your Redis instance |
pulsar.host |
Internal Pulsar service address (binary protocol) |
pulsar.api |
Internal Pulsar HTTP API endpoint |
mysql.host |
Hostname of your MySQL service (e.g., Percona cluster) |
tmsApi.host |
Hostname of your internal TMS API service |
secrets.installation.token |
Token provided by Tracardi vendor for installation |
secrets.dockerHub |
DockerHub organization/repo name (usually tracardi-dockerhub ) |
secrets.license.licenseKey |
Your Tracardi license key (commercial) |
secrets.tms.secretKey |
TMS internal secret key for secure communication (random string) |
secrets.tms.apiKey |
API key used for authenticating with TMS (random string) |
secrets.redis.password |
Password for connecting to Redis |
secrets.pulsar.token |
Pulsar access token |
secrets.mysql.username |
MySQL username (e.g., root ) |
secrets.mysql.password |
MySQL user password |
config.primaryId |
Primary profile ID prefix, often based on domain or project (e.g., emm- ) |
⚠️ Note: If your services are running outside the Kubernetes cluster, update hostnames accordingly to point to the external services.
Example values.yaml
# Dependencies
elastic:
host: elastic-std-svc.elastic-standalone.svc.cluster.local
schema: http
authenticate: true
redis:
host: redis-master.redis.svc.cluster.local
schema: "redis://"
authenticate: true
pulsar:
host: pulsar-proxy.pulsar.svc.cluster.local:6650
api: http://pulsar-proxy.pulsar.svc.cluster.local:80
schema: "pulsar://"
authenticate: true
mysql:
host: percona-db-pxc-db-haproxy.percona.svc.cluster.local
schema: "mysql+aiomysql://"
database: "tracardi"
tmsApi:
host: be-fa-tms-svc.tracardi-com-090.svc.cluster.local
# Secrets
secrets:
installation:
token: "XXXX" # Any random string
dockerHub: "tracardi-dockerhub"
license:
licenseKey: "XXXX" # License
tms:
secretKey: "XXXX" # Any random string
apiKey: "XXXX" # Any random string
redis:
password: "XXXX" # Redis password (obtained during redis installation)
pulsar:
token: "XXXX" # Apache Pulsar token (obtained during installation)
mysql:
username: "XXXX" # Mysql User (obtained during installation)
password: "XXXX" # Mysql Password (obtained during installation)
# Networking
digitalOcean:
loadBalancer: true
# Configuration
config:
multiTenant:
multi: "yes"
primaryId: "emm-" # Set this only once during installation.
# Images and Versions
api:
image:
tag: 1.1.6
private:
replicas: 1
service:
port: 8686
public:
replicas: 1
service:
port: 8585
gui:
image:
tag: 1.1.6
console:
service:
port: 8787
config:
mode: "no-deployment"
allowUpdatesOnProduction: "true"
tms:
image:
tag: 1.1.6
docker:
replicas: 1
service:
port: 8383
# Workers
worker:
background:
enabled: true
image:
tag: 1.1.6
replicas: 1
apm:
image:
tag: 1.1.6
profile:
enabled: true
replicas: 1
upgrade:
image:
tag: 1.1.6
docker:
enabled: true
replicas: 1
Setting Up DockerHub Access (Required Before Installation)
Before installing Tracardi using Helm, you must configure DockerHub access in your Kubernetes cluster. This allows the cluster to pull private container images from Tracardi's DockerHub account.
📬 The Tracardi vendor will provide you with a DockerHub token. Keep this token secure and do not commit it to version control.
Create the DockerHub Secret
Replace the variables below with your actual values:
# Define your namespace and values file
NS="tracardi"
# DockerHub token provided by vendor
DOCKERHUB="YOUR_DOCKERHUB_TOKEN_HERE"
# Create the namespace if it doesn't exist
kubectl create namespace $NS
# Create the DockerHub registry secret
kubectl create secret docker-registry tracardi-dockerhub \
--docker-server=index.docker.io/v1/ \
--docker-username=tracardi \
--docker-password=$DOCKERHUB \
-n $NS
The secret must be named exactly
tracardi-dockerhub
to match the Helm chart's expected configuration.
Installing the Tracardi Helm Chart
Once your values.yaml
file is ready and you’ve received the Helm chart archive (tracardi-chart-1.1.6.tgz
), follow these steps:
1. Create or Use a Namespace
Create a dedicated namespace if it doesn’t exist yet:
2. Run Helm Install Command
Use the following command to deploy the chart:
To Upgrade Later
If you update values.yaml
or receive a new version of the chart, you can upgrade your deployment:
To Uninstall
To remove the deployment: