Perforator Helm Chart

This guide provides instructions on how to deploy Perforator on a Kubernetes cluster via the Helm package manager.

Prerequisites

  • Kubernetes cluster
  • Helm 3+
  • PostgreSQL database
  • ClickHouse database
  • S3 storage

Warning

Make sure you have necessary buckets in your S3 storage.

Note

For testing purposes, you can set up databases using docker compose.

Adding Helm Repository

helm repo add perforator https://perforator.tech/helm-charts
helm repo update

Installing Helm Chart

Create file my-values.yaml and add credentials for databases

my-values.yaml example

databases:
  postgresql:
    endpoints:
      - host: "<host>"
        port: <port>
    db: "<db>"
    user: "<user>"
    password: "<password>"
  clickhouse:
    replicas:
      - "<host>:<port>"
    db: "<db>"
    user: "<user>"
    password: "<password>"
  s3:
    buckets:
      # If buckets were created with recommended names
      profiles: "perforator-profile"
      binaries: "perforator-binary"
      taskResults: "perforator-task-results"
      binariesGSYM: "perforator-binary-gsym"
    endpoint: "<host>:<port>"
    accessKey: "<accessKey>"
    secretKey: "<secretKey>"

Note

Alternatively, you can use existing kubernetes secrets.

databases:
    secretName: "<kubernetes secret>"
    secretKey: "<key>"
  clickhouse:
    secretName: "<kubernetes secret>"
    secretKey: "<key>"
  s3:
    secretName: "<kubernetes secret>"

Use created values to install chart:

helm install perforator-release -n perforator perforator/perforator -f my-values.yaml

Connecting to Perforator UI

To access the Perforator UI, configure port forwarding to the local machine:

kubectl port-forward svc/perforator-release-perforator-web-service -n perforator 8080:80

Then open http://localhost:8080 in your browser

Uninstalling Helm Chart

helm uninstall perforator-release -n perforator

Upgrading Helm Chart

helm upgrade perforator-release -n perforator perforator/perforator -f my-values.yaml