Migrando de v4.x para v5.x
Checklist pré-atualização
Faça backup dos releases Helm existentes:helm get values -n midaz midaz > midaz-v4-backup.yaml
Decisão necessária: Escolha sua estratégia de deployment (serviço Ledger ou legado Onboarding/Transaction).
Se estiver migrando para o serviço Ledger, prepare novos secrets com prefixos específicos de módulo.
Agende uma janela de manutenção.
Breaking changes no v5.x
Novo serviço Ledger disponível
A partir da versão 5.0, o serviço Ledger está disponível (ledger.enabled: false por padrão). Quando habilitado, este serviço combina a funcionalidade dos módulos onboarding e transaction em um único deployment.Os serviços separados onboarding e transaction se tornarão legado em um release futuro. O serviço Ledger unificado se tornará obrigatório. Recomendamos fortemente planejar sua migração para o serviço Ledger.
Valores padrão:| Configuração | v4.x (antes) | v5.x (depois) |
|---|
| ledger.enabled | N/A | false |
| onboarding.enabled | true | true (desabilitado automaticamente quando ledger está habilitado) |
| transaction.enabled | true | true (desabilitado automaticamente quando ledger está habilitado) |
Impacto ao habilitar o Ledger:
- Os deployments
midaz-onboarding e midaz-transaction serão removidos.
- Um novo deployment
midaz-ledger será criado.
- Os ingresses redirecionarão automaticamente para o serviço Ledger (compatibilidade DNS mantida).
- Mudanças na estrutura de variáveis de ambiente e secrets (prefixos específicos de módulo).
Atualização da versão do app
O Midaz foi atualizado para v3.5.1.Opções de migração
Opção 1: Continuar usando Onboarding e Transaction (migração gradual)
Adicione o seguinte ao seu override de valores para manter o comportamento atual:ledger:
enabled: false
onboarding:
enabled: true
transaction:
enabled: true
Isso permite que você atualize a versão do chart sem alterar sua infraestrutura.Opção 2: Executar todos os serviços simultaneamente (período de teste/migração)
Use a flag oculta migration.allowAllServices para executar todos os três serviços durante a migração:ledger:
enabled: true
onboarding:
enabled: true
transaction:
enabled: true
migration:
allowAllServices: true
Este modo é destinado apenas para teste e migração. Não use em produção a longo prazo.
Opção 3: Migrar para o Ledger (recomendado)
Aceite a nova arquitetura e migre para o serviço Ledger unificado:Antes de atualizar: Garanta que seus bancos de dados estejam prontos (mesmos bancos, novos nomes de variáveis de ambiente).
Atualizar secrets: Crie novos secrets com prefixos específicos de módulo (veja a Referência de Configuração do Ledger abaixo).
Atualizar: Execute helm upgrade com a nova versão do chart.
Verificar: Confirme que o serviço Ledger está saudável e os ingresses estão funcionando.
ledger:
enabled: true
onboarding:
enabled: false
transaction:
enabled: false
Novas funcionalidades no v5.x
Serviço Ledger unificado
Um novo serviço Ledger que combina os módulos onboarding e transaction em um único deployment.Características principais:
- Endpoint HTTP único (porta 3000 por padrão)
- Configurações de banco de dados separadas para cada módulo
- Conexões compartilhadas de Redis e RabbitMQ
- Novo Balance Sync Worker para processamento em background
Novas variáveis de ambiente:# Balance Sync Worker
BALANCE_SYNC_WORKER_ENABLED: "false"
BALANCE_SYNC_MAX_WORKERS: "5"
Redirecionamento de Ingress para o Ledger
Quando o Ledger está habilitado, os ingresses existentes redirecionam automaticamente o tráfego para o serviço Ledger, mantendo compatibilidade DNS.| ledger.enabled | migration.allowAllServices | onboarding ingress target | transaction ingress target |
|---|
| false | false (default) | midaz-onboarding | midaz-transaction |
| true | false (default) | midaz-ledger | midaz-ledger |
| true | true | midaz-onboarding | midaz-transaction |
Integração do serviço CRM
O serviço CRM agora está disponível como um componente integrado, movendo-se do namespace midaz-plugins para o namespace midaz.Migração do plugin-crm:Faça o deploy do novo CRM no namespace midaz:crm:
enabled: true
configmap:
MONGO_HOST: "midaz-mongodb"
MONGO_NAME: "crm"
Migre seus dados do MongoDB antigo para o novo (se estiver usando bancos de dados separados).
Atualize seu ingress/DNS para apontar para o novo serviço CRM.
Remova o release antigo do plugin-crm do namespace midaz-plugins.
Comando de atualização
helm upgrade midaz oci://registry-1.docker.io/lerianstudio/midaz-helm --version 5.x.x -n midaz
Procedimento de rollback
# Listar histórico de releases
helm history midaz -n midaz
# Rollback para versão anterior
helm rollback midaz <REVISION> -n midaz
# Ou desabilitar explicitamente o ledger
helm upgrade midaz oci://registry-1.docker.io/lerianstudio/midaz-helm \
--set ledger.enabled=false \
--set onboarding.enabled=true \
--set transaction.enabled=true \
-n midaz
Problemas comuns
Serviço Ledger falha ao iniciar
- Verifique se todas as variáveis de ambiente e secrets específicos de módulo estão configurados com os novos prefixos (
DB_ONBOARDING_*, DB_TRANSACTION_*, etc.).
Ingress não roteando para o Ledger
- Garanta que
ledger.enabled: true e migration.allowAllServices não esteja definido como true.
Secrets faltando após habilitar o Ledger
- Crie novos secrets com prefixos de módulo:
DB_ONBOARDING_PASSWORD em vez de DB_PASSWORD
DB_TRANSACTION_PASSWORD em vez de DB_PASSWORD
MONGO_ONBOARDING_PASSWORD em vez de MONGO_PASSWORD
MONGO_TRANSACTION_PASSWORD em vez de MONGO_PASSWORD
Migrando de v3.x para v4.x
Checklist pré-atualização
Faça backup dos releases Helm existentes:helm get values -n midaz midaz > midaz-v3-backup.yaml
Crítico: Faça backup dos dados e definições do RabbitMQ antes de atualizar.
Agende uma janela de manutenção.
Breaking changes no v4.x
Mudança da dependência do RabbitMQ para Groundhog2k
A dependência do chart RabbitMQ foi substituída de Bitnami para Groundhog2k.Esta mudança pode levar à perda de dados do PersistentVolumeClaim (PVC) ao atualizar instalações existentes porque o StatefulSet subjacente, montagens de volume e configuração diferem da dependência anterior.
Notas importantes:
- O chart Groundhog2k requer um cookie Erlang válido. Defina
rabbitmq.authentication.erlangCookie.value para uma string imprimível de 32+ caracteres sem espaços. Se estiver ausente ou vazio, o RabbitMQ falhará ao iniciar.
- Se você precisa preservar dados existentes, faça backup e planeje uma migração controlada de PVCs e definições antes de atualizar.
Configuração obrigatória:rabbitmq:
authentication:
erlangCookie:
value: "<32+ printable characters without spaces>"
Esta breaking change afeta apenas deployments que usam o RabbitMQ padrão do chart (rabbitmq.enabled: true). Se você usa um RabbitMQ externo ou gerenciado, não é afetado.
Atualização da versão do app
O Midaz foi atualizado para v3.3.1.Novas funcionalidades no v4.x
Imagens BitnamiSecure para serviços de dados core
As imagens padrão para serviços de dados core agora usam os repositórios BitnamiSecure com a tag latest:| Service | Fonte da Imagem | Tag |
|---|
| PostgreSQL | BitnamiSecure | latest |
| MongoDB | BitnamiSecure | latest |
| Valkey | BitnamiSecure | latest |
Se você precisa fixar uma versão específica, sobrescreva a tag no values.yaml:postgresql:
image:
tag: "16.2.0"
mongodb:
image:
tag: "7.0.5"
valkey:
image:
tag: "7.2.4"
Imagem oficial NGINX para Microfrontends
A dependência anterior do Bitnami NGINX foi substituída por um template interno baseado na imagem oficial nginx.Se você personalizou anteriormente a configuração NGINX baseada em Bitnami, revise os novos templates em templates/console/ e ajuste seus valores adequadamente.
Por que mudamos as dependências do Bitnami
Nos afastamos das dependências do Bitnami devido a mudanças de política que impactavam estabilidade e operações. Para mais contexto, veja:Comando de atualização
helm upgrade midaz oci://registry-1.docker.io/lerianstudio/midaz-helm --version 4.0.0 -n midaz
Procedimento de rollback
# Listar histórico de releases
helm history midaz -n midaz
# Rollback para versão anterior
helm rollback midaz <REVISION> -n midaz
Devido à mudança de dependência do RabbitMQ, o rollback pode exigir intervenção manual para restaurar PVCs e dados. Garanta que você tenha backups antes de atualizar.
Problemas comuns
RabbitMQ falha ao iniciar
- Garanta que o cookie Erlang esteja configurado corretamente (32+ caracteres imprimíveis, sem espaços).
Perda de dados PVC do RabbitMQ
- Isso é esperado devido à mudança de dependência. Exporte as definições do RabbitMQ antes de atualizar e restaure depois.
Problemas de configuração do NGINX
- Revise os novos templates NGINX em
templates/console/ e atualize seus overrides.
Migrando de v3.x para v5.x (pulando v4.x)
Se você está atualizando diretamente de v3.x para v5.x, precisa lidar com as breaking changes de ambas as versões.Checklist pré-atualização
Faça backup dos releases Helm existentes:helm get values -n midaz midaz > midaz-v3-backup.yaml
Crítico: Faça backup dos dados e definições do RabbitMQ (breaking change do v4.x).
Decisão necessária: Escolha sua estratégia de deployment - serviço Ledger ou legado Onboarding/Transaction (breaking change do v5.x).
Se estiver migrando para o serviço Ledger, prepare novos secrets com prefixos específicos de módulo.
Agende uma janela de manutenção.
Breaking changes a serem tratadas
Do v4.x: Mudança da dependência do RabbitMQ
A dependência do chart RabbitMQ mudou de Bitnami para Groundhog2k. Isso pode levar à perda de dados PVC. Faça backup dos dados do RabbitMQ antes de atualizar.
Configuração obrigatória:rabbitmq:
authentication:
erlangCookie:
value: "<32+ printable characters without spaces>"
Do v5.x: Novo serviço Ledger
O serviço Ledger unificado está disponível e se tornará obrigatório em um release futuro. Planeje sua estratégia de migração.
Escolha uma destas configurações:Opção A: Manter serviços legado (migração gradual)ledger:
enabled: false
onboarding:
enabled: true
transaction:
enabled: true
rabbitmq:
authentication:
erlangCookie:
value: "<32+ printable characters>"
Opção B: Migrar para o Ledger (recomendado)ledger:
enabled: true
onboarding:
enabled: false
transaction:
enabled: false
rabbitmq:
authentication:
erlangCookie:
value: "<32+ printable characters>"
Se estiver usando a Opção B, crie novos secrets com prefixos específicos de módulo:
DB_ONBOARDING_PASSWORD, DB_TRANSACTION_PASSWORD
MONGO_ONBOARDING_PASSWORD, MONGO_TRANSACTION_PASSWORD
Comando de atualização
helm upgrade midaz oci://registry-1.docker.io/lerianstudio/midaz-helm --version 5.x.x -n midaz
O que muda a partir do v3.x
| Mudança | Versão de Origem | Impacto |
|---|
| RabbitMQ Groundhog2k | v4.x | Requer cookie Erlang, possível perda de dados PVC |
| BitnamiSecure images | v4.x | PostgreSQL, MongoDB, Valkey usam imagens hardened |
| Official NGINX | v4.x | Revisar configurações NGINX customizadas |
| Ledger service | v5.x | Novo serviço unificado (opcional mas recomendado) |
| CRM integration | v5.x | Move do namespace midaz-plugins para midaz |