Saltar al contenido principal
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}