Skip to main content
The Helm chart deploys the four Meteroid processes: the API, the worker, the metering API and the web app. It does not deploy PostgreSQL, ClickHouse, Kafka or object storage: you provide them, managed or operated in your cluster.

Prerequisites

  • PostgreSQL 18 with the pgmq extension available. The migrations run CREATE EXTENSION pgmq. Meteroid publishes PostgreSQL images that include it: ghcr.io/meteroid-oss/meteroid-postgres:18.3-cnpg for CloudNativePG and ghcr.io/meteroid-oss/meteroid-postgres:18.3-standard.
  • Kafka. The chart’s defaults expect SASL/SCRAM-SHA-512 authentication (global.kafka.*). Create the meteroid-events-raw topic, unless your brokers create topics automatically.
  • ClickHouse with Keeper (or ZooKeeper). The migrations create Replicated*MergeTree tables ON CLUSTER the cluster named in global.clickhouse.clusterName, and the ClickHouse user needs the named_collection_control privilege.
  • S3-compatible object storage (global.objectStore.*).
  • Traefik, for the IngressRoutes the chart creates by default. With another ingress controller, set ingress.useIngressRoute: false to get a standard Ingress.
Optional: Redis (global.redis.url), which shares rate limits and caches across replicas, and an SMTP server (global.smtp.*).

Install

1

Write your values

Create a values.yaml with at least the URLs, hosts, secrets and service addresses of your installation (see Values to set):
values.yaml
Generate jwtPrivateKey and internalApiSecret with openssl rand -hex 32, and secretsCryptkey with openssl rand -hex 16.
2

Install the chart

Chart 2.0.0 runs the 2.0.0 images. Releases are listed on the package page.
Once the pods are ready, open publicAppUrl and sign up: the first account creates the organization.
Never change global.secrets.secretsCryptkey once set: it encrypts your connector credentials (see the configuration reference).

Values to set

See the chart’s values.yaml for every value. The ones most installations set: The components are api, worker, metering and web.

Secret keys

When you provide your own Secret with global.secrets.existingSecretName, the chart reads these keys from it:

License

The chart runs the official images, which are free without a license (see Editions). You can activate a license online from Settings → License in the app, with no change to your values.

Telemetry

The installation sends one anonymous report a day. To turn it off:
values.yaml

Upgrade

Back up the database, then upgrade the release to the new chart version:
Leave the image.tag values unset, so the chart version alone decides what runs. Until the last old pod is replaced, the old pods may fail some requests against the new schema. Coming from an earlier public release? Read Upgrading to 2.0 first: the chart changed.