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 use this tutorial to set up a Perforator deployment with all databases inside your Kubernetes cluster

Adding Helm Repository

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

Installing Helm Chart

Create file my-values.yaml and add necessary values:

my-values.yaml example

databases:
  postgresql:
    migrations:
      enabled: true # Creates necessary migrations in your PostgreSQL database.
    endpoints:
      - host: "<host>"
        port: <port>
    db: "<db>"
    user: "<user>"
    password: "<password>"
  clickhouse:
    migrations:
      enabled: true # Creates necessary migrations in your Clickhouse database.
    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>"
proxy:
  url_prefix: https://<address>/static/results/

Warning

Suggested proxy.url_prefix value is based on the following assumptions:

  • Your installation includes web component (i.e. you do not explicitly set web.enabled to false)
  • <address> is a DNS name or IP address pointing to web
  • TLS is enabled (use http:// otherwise)

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