The Full Platform deployment provides complete control over the entire Traceloop stack, perfect for organizations with strict security requirements or air-gapped environments.

Infrastructure Requirements

Contact our team to get the CloudFormation templates and Terraform configurations for deploying the infrastructure components

Core Components

  1. ClickHouse Database

  2. Kafka Message Queue

  3. PostgreSQL Database

  4. Kubernetes Cluster

  5. S3 Object Storage

Deployment Process

1. Create Traceloop namespace

kubectl create namespace traceloop

2. Create required secrets under traceloop namespace

Docker Hub images pull secret.

Credentials will be provided by Traceloop via secure channel

kubectl create secret docker-registry regcred \
  --namespace traceloop \
  --docker-server=docker.io \
  --docker-username=<dockerhub-username-provided-by-traceloop> \
  --docker-password=<dockerhub-password-provided-by-traceloop>

Postgres Secret (if not already present)

kubectl create secret generic traceloop-postgres-secret \
  --namespace traceloop \
  --from-literal=POSTGRES_DATABASE_USERNAME=<postgres-username> \
  --from-literal=POSTGRES_DATABASE_PASSWORD=<postgres-password>

ClickHouse Secret (if not already present)

kubectl create secret generic traceloop-clickhouse-secret \
  --namespace traceloop \
  --from-literal=CLICKHOUSE_USERNAME=<clickhouse-username> \
  --from-literal=CLICKHOUSE_PASSWORD=<clickhouse-password>

Kafka Secret (if not already present)

kubectl create secret generic traceloop-kafka-secret \
  --namespace traceloop \
  --from-literal=KAFKA_API_KEY=<kafka-api-key> \
  --from-literal=KAFKA_API_SECRET=<kafka-api-secret>

3. Download the Traceloop Helm chart to your local environment

# Add Traceloop Helm repository
helm pull oci://registry-1.docker.io/traceloop/helm --untar

4. Run subcharts and dependency extractions script

chmod +x extract-subcharts.sh
./extract-subcharts.sh

5. Update values-customer.yaml with your domain & auth configuration:

Configure your deployment settings including gateway, authentication, and image support:

kong-gateway:
  service:
    type: NodePort # Or ClusterIP
    proxy:
      # port: 8000
      # targetPort: 8000
      nodePort: 30080
    status:
      # port: 8100
      # targetPort: 8100
      nodePort: 30081
  kong:
    domain: "user-provided"
    appSubdomain: "app" # Can be overridden by customer
    apiSubdomain: "api" # Can be overridden by customer
    realtimeSubdomain: "realtime" # Can be overridden by customer

helm-api-service:
  app:
    imagesSupport:
      enabled: false # Set to true to enable image storage and processing
      s3ImagesBucket: "" # S3 bucket name where images will be stored
      eksRegion: "" # AWS region where your EKS cluster and S3 bucket are located

customerConfig:
  propelauth:
    authURL: "traceloop-provided"
  launchDarkly:
    clientId: "" # OPTIONAL traceloop-provided

customerSecret:
  openai:
    key: "user-provided"
  launchDarkly:
    apiKey: "" # OPTIONAL traceloop-provided
  propelauth:
    verifierKey: "traceloop-provided"
    apiKey: "traceloop-provided"

6. Update the following files with relevant addresses

values-external-postgres.yaml

postgresql:
  enabled: false
  host: ""  # Example: "my-postgres-server.example.com"
  port: ""  # Example: "5432"
  database: ""  # Example: "traceloop"

values-external-clickhouse.yaml

clickhouse:
  enabled: false
  host: ""  # Example: "my-clickhouse-server.example.com"
  port: ""  # Example: "9440"
  httpPort: ""  # Example: "8443"
  database: ""  # Example: "default"
  sslMode: ""  # Example: "strict" or "none"
  sslEnabled: ""  # Example: "true" or "false"

values-external-kafka.yaml

kafka:
  enabled: false
  bootstrapServer: ""  # Example: "kafka-broker.example.com:9092"
  securityProtocol: ""  # Example: "SASL_SSL" or "PLAINTEXT"
  saslMechanisms: ""  # Example: "PLAIN" or "SCRAM-SHA-256"
  apiKey: ""  # Your Kafka API key if required
  apiSecret: ""  # Your Kafka API secret if required

7. Install Traceloop Helm chart

helm upgrade --install traceloop . \
  -n traceloop \
  --values values.yaml \
  --values values-customer.yaml \
  --values values-external-kafka.yaml \
  --values values-external-clickhouse.yaml \
  --values values-external-postgres.yaml \
  --values values-temporal.yaml \
  --values values-centrifugo.yaml \
  --create-namespace \
  --dependency-update

Verification

  1. Check all pods are running:
kubectl get pods -n traceloop
  1. Verify infrastructure connectivity:
kubectl logs -n traceloop deployment/traceloop-api
  1. Access the dashboard at your configured ingress host

Troubleshooting