Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt

Use this file to discover all available pages before exploring further.

El Chart de Helm de Midaz tiene las siguientes dependencias para la instalación predeterminada del proyecto. Todas las dependencias están habilitadas por defecto.
Recomendación para producción: Por defecto, el chart de Midaz incluye todas las dependencias. Para despliegues en producción, deshabilita las dependencias incluidas y conéctate a servicios gestionados (AWS RDS, Amazon MQ, etc.) para mejor confiabilidad, respaldos automatizados y escalado.
Los ejemplos a continuación muestran configuraciones tanto para el servicio Ledger (recomendado) como para los servicios Onboarding/Transaction (legacy). Elige la configuración que corresponda a tu despliegue.

Valkey

  • Versión: 2.4.7
  • Repositorio: Bitnami
  • Deshabilitar: valkey.enabled = false
Producción: Usa Redis/Valkey gestionado (ElastiCache, Memorystore) para alta disponibilidad y failover automático.
Si tienes una instancia existente de Valkey o Redis, puedes deshabilitar esta dependencia y configurar los componentes de Midaz para usar tu instancia externa.
ledger:
  configmap:
    REDIS_HOST: {tu-host}:{tu-puerto-host}
  secrets:
    REDIS_PASSWORD: {tu-contraseña-host}

PostgreSQL

  • Versión: 16.3.0
  • Repositorio: Bitnami
  • Deshabilitar: postgresql.enabled = false
Producción: Usa PostgreSQL gestionado (RDS, CloudSQL, Azure Database) con respaldos automatizados y recuperación point-in-time.
Si tienes una instancia existente de PostgreSQL, puedes deshabilitar esta dependencia y configurar los componentes de Midaz para usar tu PostgreSQL externo.
ledger:
  configmap:
    # Base de datos del módulo Onboarding
    DB_ONBOARDING_HOST: {tu-host}
    DB_ONBOARDING_USER: {tu-usuario-host}
    DB_ONBOARDING_PORT: {tu-puerto-host}
    DB_ONBOARDING_REPLICA_HOST: {tu-host-replicacion}
    DB_ONBOARDING_REPLICA_USER: {tu-usuario-host-replicacion}
    DB_ONBOARDING_REPLICA_PORT: {tu-puerto-host-replicacion}
    # Base de datos del módulo Transaction
    DB_TRANSACTION_HOST: {tu-host}
    DB_TRANSACTION_USER: {tu-usuario-host}
    DB_TRANSACTION_PORT: {tu-puerto-host}
    DB_TRANSACTION_REPLICA_HOST: {tu-host-replicacion}
    DB_TRANSACTION_REPLICA_USER: {tu-usuario-host-replicacion}
    DB_TRANSACTION_REPLICA_PORT: {tu-puerto-host-replicacion}
  secrets:
    DB_ONBOARDING_PASSWORD: {tu-contraseña-host}
    DB_ONBOARDING_REPLICA_PASSWORD: {tu-contraseña-host-replicacion}
    DB_TRANSACTION_PASSWORD: {tu-contraseña-host}
    DB_TRANSACTION_REPLICA_PASSWORD: {tu-contraseña-host-replicacion}

Job de Bootstrap para PostgreSQL externo

Cuando usas un PostgreSQL externo (postgresql.enabled: false), este chart proporciona un Job de bootstrap único que:
  • Crea las bases de datos onboarding y transaction si no existen.
  • Crea el rol/usuario midaz si no existe y establece su contraseña.
  • Otorga privilegios de base de datos y permisos del esquema public para que midaz pueda crear tablas.
  • Espera conectividad con un timeout de 300s.
  • Es idempotente: si todo ya existe, imprime y sale.
Configura en values.yaml:
postgresql:
  enabled: false  # deshabilita PostgreSQL incluido para usar uno externo

global:
  externalPostgresDefinitions:
    enabled: true
    connection:
      host: "tu-host-postgres"
      port: "5432"
    postgresAdminLogin:
      # Opción A: Usar un Secret existente (recomendado)
      # Claves requeridas: DB_USER_ADMIN, DB_ADMIN_PASSWORD
      useExistingSecret:
        name: "my-postgres-admin-secret"
      # Opción B: Credenciales en línea (no recomendado en producción)
      # username: "postgres"
      # password: "s3cret"
    midazCredentials:
      # Opción A: Usar un Secret existente (recomendado)
      # Clave requerida: DB_PASSWORD_MIDAZ
      useExistingSecret:
        name: "my-midaz-credentials-secret"
      # Opción B: Contraseña en línea (no recomendado en producción)
      # password: "midaz-password"
Todos los secrets deben estar en el mismo namespace que el release. El Job tiene un TTL de 300 segundos después de completarse.

MongoDB

  • Versión: 15.4.5
  • Repositorio: Bitnami
  • Deshabilitar: mongodb.enabled = false
Producción: Usa MongoDB gestionado (Atlas, DocumentDB) para escalado automático, respaldos y cifrado en reposo.
Si tienes una instancia existente de MongoDB, puedes deshabilitar esta dependencia y configurar los componentes de Midaz para usar tu MongoDB externo.
ledger:
  configmap:
    # Módulo Onboarding
    MONGO_ONBOARDING_HOST: {tu-host}
    MONGO_ONBOARDING_NAME: {tu-nombre-host}
    MONGO_ONBOARDING_USER: {tu-usuario-host}
    MONGO_ONBOARDING_PORT: {tu-puerto-host}
    # Módulo Transaction
    MONGO_TRANSACTION_HOST: {tu-host}
    MONGO_TRANSACTION_NAME: {tu-nombre-host}
    MONGO_TRANSACTION_USER: {tu-usuario-host}
    MONGO_TRANSACTION_PORT: {tu-puerto-host}
  secrets:
    MONGO_ONBOARDING_PASSWORD: {tu-contraseña-host}
    MONGO_TRANSACTION_PASSWORD: {tu-contraseña-host}

RabbitMQ

  • Versión: 16.0.0
  • Repositorio: Groundhog2k
  • Deshabilitar: rabbitmq.enabled = false
Producción: Usa RabbitMQ gestionado (Amazon MQ, CloudAMQP) con configuración HA para durabilidad de mensajes y failover automático.
Si estás usando una instancia externa de RabbitMQ, necesitas cargar el archivo requerido load_definitions.json. Sin estas colas, intercambios y enlaces en su lugar, Midaz no funcionará como se espera. Puedes cargar las definiciones de una de dos maneras: Automáticamente Habilita el job de bootstrap en tu values.yaml para aplicar automáticamente las definiciones de RabbitMQ a tu instancia externa:
global:
  externalRabbitmqDefinitions:
    enabled: true
Manualmente Si prefieres aplicar las definiciones tú mismo, usa la API HTTP de RabbitMQ:
curl -u {usuario}:{contraseña} -X POST -H "Content-Type: application/json" \
  -d @load_definitions.json http://{host}:{puerto}/api/definitions
El archivo load_definitions.json se encuentra en: charts/midaz/files/rabbitmq/load_definitions.json.

Job de Bootstrap para RabbitMQ externo

Para simplificar la configuración de RabbitMQ externo, este chart proporciona un Job único que:
  • Aplica el archivo de definiciones estándar mediante la API HTTP.
  • Crea/actualiza los usuarios transaction y consumer con contraseñas personalizadas.
  • Espera conectividad AMQP con un timeout de 300s.
  • Es idempotente: si los usuarios ya existen, omite y sale.
Configura en values.yaml:
rabbitmq:
  enabled: false  # deshabilita RabbitMQ incluido para usar uno externo

global:
  externalRabbitmqDefinitions:
    enabled: true
    connection:
      protocol: "http"          # http o https
      host: "tu-host-rabbitmq"
      port: "15672"             # Puerto de gestión HTTP
      portAmqp: "5672"          # Puerto AMQP (para verificación de conectividad)
    rabbitmqAdminLogin:
      # Opción A: Usar un Secret existente (recomendado)
      # Claves requeridas: RABBITMQ_ADMIN_USER, RABBITMQ_ADMIN_PASS
      useExistingSecret:
        name: "my-rabbitmq-admin-secret"
      # Opción B: Credenciales en línea (no recomendado en producción)
      # username: "admin"
      # password: "s3cret"
    appCredentials:
      # Opción A: Usar un Secret existente (recomendado)
      # Claves requeridas: RABBITMQ_DEFAULT_PASS, RABBITMQ_CONSUMER_PASS
      useExistingSecret:
        name: "my-rabbitmq-app-credentials"
      # Opción B: Contraseñas en línea (no recomendado en producción)
      # transactionPassword: "transaction-pass"
      # consumerPassword: "consumer-pass"
Todos los secrets deben estar en el mismo namespace que el release. El Job tiene un TTL de 300 segundos después de completarse. Usuarios creados: midaz (admin), transaction, consumer.

RabbitMQ sobre TLS/SSL

Si tu servidor RabbitMQ requiere TLS/SSL, actualiza las variables de entorno del cliente para usar protocolos seguros:
ledger:
  configmap:
    RABBITMQ_URI: "amqps"      # era "amqp"
    RABBITMQ_PROTOCOL: "https" # era "http"

Usar tu propio RabbitMQ

Si ya tienes una instancia de RabbitMQ ejecutándose, puedes deshabilitar la dependencia integrada y apuntar los componentes de Midaz a tu configuración externa.
ledger:
  configmap:
    RABBITMQ_HOST: {tu-host}
    RABBITMQ_DEFAULT_USER: {tu-usuario-host}
    RABBITMQ_PORT_HOST: {tu-puerto-host}
    RABBITMQ_PORT_AMQP: {tu-puerto-amqp-host}
  secrets:
    RABBITMQ_DEFAULT_PASS: {tu-contraseña-host}
    RABBITMQ_CONSUMER_PASS: {tu-contraseña-consumer-rabbitmq}