If you are gearing up to run formae in your Kubernetes cluster, you are in luck! We have published formae-helm — a Helm chart that makes this whole process plain sailing. Our mission is simple: to hand you a rock-solid, production-ready starting point, without throwing a curveball of operators, hefty dependencies, or demanding architectural choices your way.
Quickstart
git clone https://github.com/platform-engineering-labs/formae-helm.git
cd formae-helmAfter cloning the repository, you will find all supported deployment scenarios in the examples/ directory. To try one of them, simply run:
helm install formae . -f examples/<scenario>.yamlRunning formae with PostgreSQL
For production workloads, formae should be operating with one of the production-grade database backend options the chart supports. To quickly try it with an in-cluster PostgreSQL instance, run:
helm install formae . -f examples/formae-db.yaml \
--set postgresql.auth.password=<password>This deploys:
- The formae agent
- PostgreSQL as a
StatefulSet - Secrets and datastore wiring
- The correct PKL configuration for the selected mode
The database setup is intentionally minimal:
- Official
postgres:15-alpineimage - No Bitnami subchart
- No database operator
- No additional CRDs
If you already run PostgreSQL (RDS, Cloud SQL, shared cluster), disable the bundled database and point formae at your existing one:
helm install formae . -f examples/formae-external-db.yaml \
--set postgresql.enabled=false \
--set formae.datastore.postgres.host=mydb.example.com \
--set formae.datastore.postgres.password=<password>There’s also an Aurora Data API example for AWS serverless setups: examples/formae-aurora.yaml
Adding observability
The chart also supports a monitoring-enabled deployment.
helm install formae . -f examples/formae-db-grafana.yaml \
--set postgresql.auth.password=<password>This adds:
- OpenTelemetry Collector (sidecar)
- Prometheus metrics endpoint
- ServiceMonitor (Prometheus Operator)
- Grafana dashboards (auto-discovered)
Two dashboards are included:
- Agent health and reconciliation activity
- Per-plugin activity breakdown
The OpenTelemetry Collector runs inside the same pod as the agent. That keeps communication local and avoids introducing additional services or cross-namespace wiring.
If you already use a centralized collector, override the OTLP endpoint in your values:
formae:
otel:
otlp:
endpoint: your-collector:4317If you don’t run Prometheus and Grafana yet, the quickstart-monitoring.yaml example walks through deploying kube-prometheus-stack with the necessary configuration for dashboard discovery.
Example configurations
Here is an overview of the current example configurations included with the GitHub repository:
formae-db.yaml: Agent + in-cluster PostgreSQLformae-external-db.yaml: Agent + external PostgreSQLformae-db-grafana.yaml: Agent + PostgreSQL + OTel + Grafanaformae-external-db-grafana.yaml: Agent + external PostgreSQL + OTel + Grafanaformae-aurora.yaml: Agent + Aurora Data APIquickstart-monitoring.yaml: Monitoring stack walkthrough
Next steps
If you want to run formae in your k8s cluster, this chart gives you a straightforward starting point without locking you into infrastructure choices. See full documentation for what you need to do next.
Here are a few more links:
- formae Helm chart source code: https://github.com/platform-engineering-labs/formae-helm
- formae quick start: https://docs.formae.io/en/latest/