O chart do Midaz habilita Valkey, PostgreSQL, MongoDB e RabbitMQ por padrão. Você pode desabilitar um serviço empacotado e configurar cada carga de trabalho habilitada para usar um serviço externo no lugar.
Quando você desabilita uma dependência empacotada, forneça todos os valores de conexão e credenciais exigidos por cada carga de trabalho habilitada antes do deploy.
Valkey
Configure um serviço externo de Valkey ou Redis pela configuração e pelo Secret do Ledger:
PostgreSQL
Para um serviço externo de PostgreSQL, configure as conexões do Ledger e, quando habilitado, do Tracer. O Job de bootstrap opcional cria os bancos de dados onboarding e transaction, o banco do Tracer configurado quando você habilita o Tracer, e o papel midaz.
Os Secrets referenciados devem fornecer DB_USER_ADMIN e DB_ADMIN_PASSWORD, ou DB_PASSWORD_MIDAZ, respectivamente. O chart não liga o Secret de bootstrap ao Ledger ou ao Tracer automaticamente: os valores de senha deles devem ser iguais à senha do papel midaz. Se o Tracer usa um Secret existente, adicione DB_PASSWORD nesse Secret. Quando você habilita o Tracer, o Job de bootstrap também cria o banco de dados indicado por tracer.configmap.DB_NAME (padrão tracer) e concede acesso ao papel midaz. O Job espera até 300 segundos pelo PostgreSQL e faz até três novas tentativas. Ele permanece por 300 segundos depois de terminar.
MongoDB
Configure um serviço externo de MongoDB no Ledger e, quando habilitado, no CRM:
Quando a carga de trabalho opcional de CRM usa crm.useExistingSecret: true, coloque MONGO_PASSWORD nesse Secret existente em vez de em crm.secrets.
RabbitMQ
Para um serviço externo de RabbitMQ, defina os valores de conexão da aplicação e carregue as definições exigidas pelo Midaz. O arquivo charts/midaz/files/rabbitmq/load_definitions.json contém as definições.
O Job de bootstrap aplica as definições pela API de gerenciamento e provisiona os usuários de aplicação transaction e consumer. Antes de importar qualquer coisa, ele verifica apenas se os dois usuários já existem. Se existirem, o Job termina sem carregar definições nem conciliar as senhas deles. Os Secrets referenciados usam RABBITMQ_ADMIN_USER e RABBITMQ_ADMIN_PASS, ou RABBITMQ_DEFAULT_PASS e RABBITMQ_CONSUMER_PASS. O chart não liga o Secret de bootstrap ao Ledger automaticamente: os dois valores de ledger.secrets devem ser iguais às senhas em rabbitmq-app.
Na revisão auditada, o Job de bootstrap importa o mesmo arquivo de definições empacotado antes de trocar as senhas de transaction e consumer. Esse arquivo também cria um administrador chamado midaz com a senha pública e fixa lerian, e o Job não rotaciona nem remove essa conta. Não rode este Job contra um broker compartilhado ou de produção. Provisione o vhost, as filas, os exchanges, os bindings e os usuários de aplicação necessários de forma independente, sem importar os usuários estáticos.
RabbitMQ empacotado
O chart do Midaz exige ledger.secrets.RABBITMQ_DEFAULT_PASS e ledger.secrets.RABBITMQ_CONSUMER_PASS mesmo quando você usa o RabbitMQ empacotado. Na revisão auditada, os dois devem ser lerian para corresponder aos hashes de senha fixos dos usuários transaction e consumer no arquivo de definições empacotado. O chart do RabbitMQ empacotado também exige um Erlang cookie não vazio. Defina um texto imprimível de pelo menos 32 caracteres sem espaços.
As definições empacotadas usam credenciais públicas e fixas. O chart não as gera a partir de ledger.secrets. Use o RabbitMQ empacotado apenas para avaliação local. Para ambientes compartilhados ou de produção, use um RabbitMQ gerenciado externamente e provisione as definições dele sem o Job de bootstrap do chart.
Operações em produção
Para um deploy em produção, avalie os requisitos de serviço gerenciado, como backups, recuperação, disponibilidade, monitoramento e controles de acesso, antes de escolher dependências empacotadas ou externas.