Skip to main content
Planned release. Self-hosted Asymptote is in development and offered to design partners through a Private Deployment engagement; the Helm chart and Terraform modules described in this section are not generally available yet. This section describes the planned release: chart names, values keys and paths may change before it ships. Today’s Asymptote Cloud dashboard uses hosted services for sign-in and product analytics; the self-hosted release replaces them, as described in System Architecture. Contact us to take part.
This guide installs Asymptote from its Helm chart into a cluster you already have. To create the cluster and the services it needs first, start with Terraform.

How it fits together

The chart installs every Asymptote service (web, api, ingest, policy, loader, workers), the migration job, and, by default, ClickHouse through the ClickHouse operator. It does not install PostgreSQL, object storage, your ingress controller or certificates: those come from your cloud. See System Architecture for what each service does.

Prerequisites

Cluster
  • A Kubernetes version listed in the release notes
  • An ingress controller, or the Gateway API
  • A storage class for ClickHouse’s persistent volumes
  • kubectl and Helm 3.8 or later on your machine
From Asymptote
  • Registry credentials
  • A license key
  • The chart version to install
From your cloud
  • PostgreSQL 15 or later, with a database and user for Asymptote
  • A dedicated bucket with new-object notifications (SQS, Pub/Sub or Event Grid)
  • An identity provider application for Asymptote (see SSO)
  • An LLM endpoint
  • Host names and TLS certificates for the dashboard, ingest and policy endpoints
Give Asymptote its own namespace, and its own bucket, database and LLM credentials. Sharing them with other applications makes revocation and retention harder to reason about.

Setup

1. Create the namespace and registry secret
2. Create the secrets
Back up both peppers with your other secrets: a deployment restored without them cannot verify any device. Or sync them from your cloud’s secret manager with the External Secrets Operator; see Secret modes. 3. Write a values file
values.yaml
See Configuration for every top-level key. 4. Validate the chart
5. Install
The migration job runs first; the services start once it succeeds. 6. Verify the rollout
Every pod is Running and the health check answers 200. (/v1/ingest/health checks a device’s key, so it answers 401 without one.) Sign in to https://asymptote.example.com through your identity provider. 7. Connect a test endpoint Enroll one machine (see Connecting Endpoints), run an agent session, and check that it appears on the dashboard within a minute.

Configuration

Bundled or external ClickHouse

clickhouse.mode: bundled installs the ClickHouse operator and a ClickHouse cluster on persistent volumes in the namespace. Set clickhouse.mode: external and give its host and credentials to use a ClickHouse you already run; the migration job creates Asymptote’s tables there.

Secret modes

Operations

Scaling

Every stateless service scales horizontally; set replicas or turn on autoscaling for it. Scale ingest and policy with fleet size, loader with event volume, and ClickHouse with event volume and retention.

Updating

Read the release notes for the new version, then:
The migration job runs before the new services start. Asymptote supports the current release and the two before it.

Backups

Back up PostgreSQL with your cloud’s automated backups. Your bucket holds every raw object, so ClickHouse can be rebuilt from it; back up ClickHouse too if a rebuild would take longer than you can wait.

Troubleshooting

Resources