Skip to main content
The Midaz chart enables Valkey, PostgreSQL, MongoDB, and RabbitMQ by default. You can disable a bundled service and configure each enabled workload to use an external service instead.
When you disable a bundled dependency, provide all connection and credential values required by every enabled workload before deploying.

Valkey

Configure an external Valkey or Redis service through the Ledger configuration and Secret:

PostgreSQL

For an external PostgreSQL service, configure the Ledger connections and, when enabled, Tracer. The optional bootstrap Job creates the onboarding and transaction databases, the configured Tracer database when you enable Tracer, and the midaz role.
The referenced Secrets must provide DB_USER_ADMIN and DB_ADMIN_PASSWORD, or DB_PASSWORD_MIDAZ, respectively. The chart does not wire the bootstrap Secret into Ledger or Tracer automatically: their password values must match the midaz role password. If Tracer uses an existing Secret, add DB_PASSWORD there instead. When you enable Tracer, the bootstrap Job also creates the database named by tracer.configmap.DB_NAME (default tracer) and grants the midaz role access. The Job waits up to 300 seconds for PostgreSQL and retries up to three times. It remains for 300 seconds after completion.

MongoDB

Configure an external MongoDB service in Ledger and, when enabled, CRM:
When the optional CRM workload uses crm.useExistingSecret: true, put MONGO_PASSWORD in that existing Secret instead of crm.secrets.

RabbitMQ

For an external RabbitMQ service, set the application connection values and load the definitions required by Midaz. The file charts/midaz/files/rabbitmq/load_definitions.json contains the definitions.
The bootstrap Job applies the definitions through the management API and provisions the transaction and consumer application users. Before importing anything, it checks only whether both users already exist. If they do, the Job exits without loading definitions or reconciling their passwords. The referenced Secrets use RABBITMQ_ADMIN_USER and RABBITMQ_ADMIN_PASS, or RABBITMQ_DEFAULT_PASS and RABBITMQ_CONSUMER_PASS. The chart does not wire the bootstrap Secret into Ledger automatically: the two ledger.secrets values must match the passwords in rabbitmq-app.
At the audited revision, the bootstrap Job imports the same bundled definitions file before changing the transaction and consumer passwords. That file also creates an administrator named midaz with the public, fixed password lerian, and the Job does not rotate or remove that account. Do not run this Job against a shared or production broker. Provision the required vhost, queues, exchanges, bindings, and application users independently without importing the static users.

Bundled RabbitMQ

The Midaz chart requires ledger.secrets.RABBITMQ_DEFAULT_PASS and ledger.secrets.RABBITMQ_CONSUMER_PASS even when you use bundled RabbitMQ. At the audited revision, both must be lerian to match the fixed password hashes for the transaction and consumer users in the bundled definitions file. The bundled RabbitMQ chart also requires a non-empty Erlang cookie. Set it to a printable string of at least 32 characters without spaces.
The bundled definitions use public, fixed credentials. The chart does not generate them from ledger.secrets. Use bundled RabbitMQ only for local evaluation. For shared or production environments, use externally managed RabbitMQ and provision its definitions without the chart’s bootstrap Job.

Production operations

For a production deployment, assess managed-service requirements such as backups, recovery, availability, monitoring, and access controls before choosing bundled or external dependencies.