Kubernetes Cluster
- Kubernetes 1.30+
- Helm 3.x
kubectlconfigured to access your cluster
Ingress Controller (optional)
If you want to expose your stacks outside of your Kubernetes cluster, you’ll need an Ingress Controller. At Formance, we use Traefik, but any controller that supports standardIngress objects works.
SSL certificate management can be done either at the level of your LoadBalancer upstream of the Ingress Controller or directly by your Ingress Controller.
The Formance Operator creates standard
Ingress objects. Alternative ingress controllers work but might require additional configuration not covered in this guide.Stateful Dependencies
The Formance modules require certain stateful dependencies. The unifiedformance Helm chart can bundle some of these for you, or you can bring your own.
PostgreSQL
Version 14 or higher is required. The Formance chart includes a bundled Bitnami PostgreSQL instance, enabled by default (postgresql.enabled: true). This is convenient for development and testing but not recommended for production.
For production, use a managed PostgreSQL service (e.g., AWS RDS, Google Cloud SQL, Azure Database) and disable the bundled instance. See the PostgreSQL setup guide for configuration details.
NATS (optional)
NATS provides event streaming capabilities. It’s disabled by default and can be enabled withglobal.nats.enabled: true. When enabled, configure the NATS URL and authentication:
Dependencies by Edition
| Dependency | Community Edition | Enterprise Edition | Bundled in Chart |
|---|---|---|---|
| PostgreSQL 14+ | Required | Required | Yes (postgresql.enabled: true) |
| NATS | Optional | Optional | No (external only) |
| Ingress Controller | Optional | Recommended | No |
| TLS Certificates | Optional | Recommended | No |
| License Key | — | Required | — |
The Enterprise Edition deploys additional control plane components (Membership, Console, Dex) that all require PostgreSQL. The bundled PostgreSQL instance serves both the data plane (stacks) and the control plane.