El chart de Midaz habilita Valkey, PostgreSQL, MongoDB y RabbitMQ de forma predeterminada. Puedes deshabilitar un servicio incluido y configurar cada workload habilitado para que use un servicio externo en su lugar.
Cuando deshabilitas una dependencia incluida, provee todos los valores de conexión y credenciales que requiere cada workload habilitado antes de desplegar.
Valkey
Configura un servicio Valkey o Redis externo a través de la configuración y el Secret de Ledger:
PostgreSQL
Para un servicio PostgreSQL externo, configura las conexiones de Ledger y, cuando está habilitado, de Tracer. El Job de bootstrap opcional crea las bases de datos onboarding y transaction, la base de datos de Tracer configurada cuando habilitas Tracer, y el rol midaz.
Los Secrets referenciados deben proveer DB_USER_ADMIN y DB_ADMIN_PASSWORD, o DB_PASSWORD_MIDAZ, respectivamente. El chart no conecta el Secret de bootstrap con Ledger ni con Tracer automáticamente: sus valores de contraseña deben coincidir con la contraseña del rol midaz. Si Tracer usa un Secret existente, agrega DB_PASSWORD ahí en su lugar. Cuando habilitas Tracer, el Job de bootstrap también crea la base de datos que nombra tracer.configmap.DB_NAME (predeterminado tracer) y otorga acceso al rol midaz. El Job espera hasta 300 segundos a PostgreSQL y reintenta hasta tres veces. Permanece 300 segundos después de completarse.
MongoDB
Configura un servicio MongoDB externo en Ledger y, cuando está habilitado, en CRM:
Cuando el workload opcional de CRM usa crm.useExistingSecret: true, pon MONGO_PASSWORD en ese Secret existente en lugar de crm.secrets.
RabbitMQ
Para un servicio RabbitMQ externo, define los valores de conexión de la aplicación y carga las definiciones que requiere Midaz. El archivo charts/midaz/files/rabbitmq/load_definitions.json contiene las definiciones.
El Job de bootstrap aplica las definiciones a través de la API de gestión y provisiona los usuarios de aplicación transaction y consumer. Antes de importar algo, solo verifica si ambos usuarios ya existen. Si existen, el Job termina sin cargar definiciones ni conciliar sus contraseñas. Los Secrets referenciados usan RABBITMQ_ADMIN_USER y RABBITMQ_ADMIN_PASS, o RABBITMQ_DEFAULT_PASS y RABBITMQ_CONSUMER_PASS. El chart no conecta el Secret de bootstrap con Ledger automáticamente: los dos valores de ledger.secrets deben coincidir con las contraseñas en rabbitmq-app.
En la revisión auditada, el Job de bootstrap importa el mismo archivo de definiciones incluido antes de cambiar las contraseñas de transaction y consumer. Ese archivo también crea un administrador llamado midaz con la contraseña pública y fija lerian, y el Job no rota ni elimina esa cuenta. No ejecutes este Job contra un broker compartido o de producción. Provisiona el vhost, las colas, los exchanges, los bindings y los usuarios de aplicación requeridos de forma independiente, sin importar los usuarios estáticos.
RabbitMQ incluido
El chart de Midaz requiere ledger.secrets.RABBITMQ_DEFAULT_PASS y ledger.secrets.RABBITMQ_CONSUMER_PASS incluso cuando usas el RabbitMQ incluido. En la revisión auditada, ambos deben ser lerian para coincidir con los hashes de contraseña fijos de los usuarios transaction y consumer en el archivo de definiciones incluido. El chart de RabbitMQ incluido también requiere una cookie de Erlang no vacía. Configúrala como una cadena imprimible de al menos 32 caracteres sin espacios.
Las definiciones incluidas usan credenciales públicas y fijas. El chart no las genera a partir de ledger.secrets. Usa el RabbitMQ incluido solo para evaluación local. Para entornos compartidos o de producción, usa un RabbitMQ gestionado externamente y provisiona sus definiciones sin el Job de bootstrap del chart.
Operaciones de producción
Para un despliegue de producción, evalúa los requisitos de servicio gestionado como backups, recuperación, disponibilidad, monitoreo y controles de acceso antes de elegir dependencias incluidas o externas.