Pular para o conteúdo principal
O Helm Chart do Midaz possui as seguintes dependências para a instalação padrão do projeto. Todas as dependências são habilitadas por padrão.
Recomendação para produção: Por padrão, o chart do Midaz inclui todas as dependências. Para deploys em produção, desabilite as dependências inclusas e conecte-se a serviços gerenciados (AWS RDS, Amazon MQ, etc.) para melhor confiabilidade, backups automatizados e escalabilidade.
Os exemplos abaixo mostram configurações tanto para o Ledger (recomendado) quanto para os serviços Onboarding/Transaction (legado). Escolha a configuração que corresponde ao seu deployment.

Valkey

  • Versão: 2.4.7
  • Repositório: Bitnami
  • Desabilitar: valkey.enabled = false
Produção: Use Redis/Valkey gerenciado (ElastiCache, Memorystore) para alta disponibilidade e failover automático.
Se você tem uma instância existente de Valkey ou Redis, pode desabilitar essa dependência e configurar os componentes do Midaz para usar sua instância externa.
ledger:
  configmap:
    REDIS_HOST: {your-host}:{your-host-port}
  secrets:
    REDIS_PASSWORD: {your-host-pass}

PostgreSQL

  • Versão: 16.3.0
  • Repositório: Bitnami
  • Desabilitar: postgresql.enabled = false
Produção: Use PostgreSQL gerenciado (RDS, CloudSQL, Azure Database) com backups automatizados e recuperação point-in-time.
Se você tem uma instância existente de PostgreSQL, pode desabilitar essa dependência e configurar os componentes do Midaz para usar seu PostgreSQL externo.
ledger:
  configmap:
    # Onboarding module database
    DB_ONBOARDING_HOST: {your-host}
    DB_ONBOARDING_USER: {your-host-user}
    DB_ONBOARDING_PORT: {your-host-port}
    DB_ONBOARDING_REPLICA_HOST: {your-replication-host}
    DB_ONBOARDING_REPLICA_USER: {your-replication-host-user}
    DB_ONBOARDING_REPLICA_PORT: {your-replication-host-port}
    # Transaction module database
    DB_TRANSACTION_HOST: {your-host}
    DB_TRANSACTION_USER: {your-host-user}
    DB_TRANSACTION_PORT: {your-host-port}
    DB_TRANSACTION_REPLICA_HOST: {your-replication-host}
    DB_TRANSACTION_REPLICA_USER: {your-replication-host-user}
    DB_TRANSACTION_REPLICA_PORT: {your-replication-host-port}
  secrets:
    DB_ONBOARDING_PASSWORD: {your-host-pass}
    DB_ONBOARDING_REPLICA_PASSWORD: {your-replication-host-pass}
    DB_TRANSACTION_PASSWORD: {your-host-pass}
    DB_TRANSACTION_REPLICA_PASSWORD: {your-replication-host-pass}

Job de Bootstrap para PostgreSQL externo

Ao usar um PostgreSQL externo (postgresql.enabled: false), este chart fornece um Job de bootstrap único que:
  • Cria os bancos de dados onboarding e transaction se não existirem.
  • Cria o role/usuário midaz se não existir e define sua senha.
  • Concede privilégios de banco de dados e permissões no schema public para que o midaz possa criar tabelas.
  • Aguarda conectividade com timeout de 300s.
  • É idempotente: se tudo já existir, apenas imprime e encerra.
Configure no values.yaml:
postgresql:
  enabled: false  # disable bundled PostgreSQL to use an external one

global:
  externalPostgresDefinitions:
    enabled: true
    connection:
      host: "your-postgres-host"
      port: "5432"
    postgresAdminLogin:
      # Option A: Use an existing Secret (recommended)
      # Required keys: DB_USER_ADMIN, DB_ADMIN_PASSWORD
      useExistingSecret:
        name: "my-postgres-admin-secret"
      # Option B: Inline credentials (not recommended in production)
      # username: "postgres"
      # password: "s3cret"
    midazCredentials:
      # Option A: Use an existing Secret (recommended)
      # Required key: DB_PASSWORD_MIDAZ
      useExistingSecret:
        name: "my-midaz-credentials-secret"
      # Option B: Inline password (not recommended in production)
      # password: "midaz-password"
Todos os secrets devem estar no mesmo namespace que o release. O Job tem um TTL de 300 segundos após a conclusão.

MongoDB

  • Versão: 15.4.5
  • Repositório: Bitnami
  • Desabilitar: mongodb.enabled = false
Produção: Use MongoDB gerenciado (Atlas, DocumentDB) para escalabilidade automática, backups e criptografia em repouso.
Se você tem uma instância existente de MongoDB, pode desabilitar essa dependência e configurar os componentes do Midaz para usar seu MongoDB externo.
ledger:
  configmap:
    # Onboarding module
    MONGO_ONBOARDING_HOST: {your-host}
    MONGO_ONBOARDING_NAME: {your-host-name}
    MONGO_ONBOARDING_USER: {your-host-user}
    MONGO_ONBOARDING_PORT: {your-host-port}
    # Transaction module
    MONGO_TRANSACTION_HOST: {your-host}
    MONGO_TRANSACTION_NAME: {your-host-name}
    MONGO_TRANSACTION_USER: {your-host-user}
    MONGO_TRANSACTION_PORT: {your-host-port}
  secrets:
    MONGO_ONBOARDING_PASSWORD: {your-host-pass}
    MONGO_TRANSACTION_PASSWORD: {your-host-pass}

RabbitMQ

  • Versão: 16.0.0
  • Repositório: Groundhog2k
  • Desabilitar: rabbitmq.enabled = false
Produção: Use RabbitMQ gerenciado (Amazon MQ, CloudAMQP) com configuração HA para durabilidade de mensagens e failover automático.
Se você está usando uma instância externa de RabbitMQ, você precisa carregar o arquivo load_definitions.json necessário. Sem essas filas, exchanges e bindings configurados, o Midaz não funcionará como esperado. Você pode carregar as definições de duas formas: Automaticamente Habilite o job de bootstrap no seu values.yaml para aplicar automaticamente as definições do RabbitMQ na sua instância externa:
global:
  externalRabbitmqDefinitions:
    enabled: true
Manualmente Se preferir aplicar as definições manualmente, use a API HTTP do RabbitMQ:
curl -u {user}:{pass} -X POST -H "Content-Type: application/json" \
  -d @load_definitions.json http://{host}:{port}/api/definitions
O arquivo load_definitions.json está localizado em: charts/midaz/files/rabbitmq/load_definitions.json.

Job de Bootstrap para RabbitMQ externo

Para simplificar a configuração de um RabbitMQ externo, este chart fornece um Job único que:
  • Aplica o arquivo de definições padrão via API HTTP.
  • Cria/atualiza os usuários transaction e consumer com senhas customizadas.
  • Aguarda conectividade AMQP com timeout de 300s.
  • É idempotente: se os usuários já existirem, pula e encerra.
Configure no values.yaml:
rabbitmq:
  enabled: false  # disable bundled RabbitMQ to use an external one

global:
  externalRabbitmqDefinitions:
    enabled: true
    connection:
      protocol: "http"          # http or https
      host: "your-rabbitmq-host"
      port: "15672"             # HTTP management port
      portAmqp: "5672"          # AMQP port (for connectivity check)
    rabbitmqAdminLogin:
      # Option A: Use an existing Secret (recommended)
      # Required keys: RABBITMQ_ADMIN_USER, RABBITMQ_ADMIN_PASS
      useExistingSecret:
        name: "my-rabbitmq-admin-secret"
      # Option B: Inline credentials (not recommended in production)
      # username: "admin"
      # password: "s3cret"
    appCredentials:
      # Option A: Use an existing Secret (recommended)
      # Required keys: RABBITMQ_DEFAULT_PASS, RABBITMQ_CONSUMER_PASS
      useExistingSecret:
        name: "my-rabbitmq-app-credentials"
      # Option B: Inline passwords (not recommended in production)
      # transactionPassword: "transaction-pass"
      # consumerPassword: "consumer-pass"
Todos os secrets devem estar no mesmo namespace que o release. O Job tem um TTL de 300 segundos após a conclusão. Usuários criados: midaz (admin), transaction, consumer.

RabbitMQ com TLS/SSL

Se o seu servidor RabbitMQ requer TLS/SSL, atualize as variáveis de ambiente do cliente para usar protocolos seguros:
ledger:
  configmap:
    RABBITMQ_URI: "amqps"      # was "amqp"
    RABBITMQ_PROTOCOL: "https" # was "http"

Use seu próprio RabbitMQ

Se você já tem uma instância de RabbitMQ em execução, pode desabilitar a dependência integrada e apontar os componentes do Midaz para sua configuração externa.
ledger:
  configmap:
    RABBITMQ_HOST: {your-host}
    RABBITMQ_DEFAULT_USER: {your-host-user}
    RABBITMQ_PORT_HOST: {your-host-port}
    RABBITMQ_PORT_AMQP: {your-host-amqp-port}
  secrets:
    RABBITMQ_DEFAULT_PASS: {your-host-pass}
    RABBITMQ_CONSUMER_PASS: {your-rabbitmq-consumer-password}