Pular para o conteúdo principal
O Helm chart do Midaz faz o deploy de quatro possíveis componentes de serviço: Ledger (unificado, recomendado), Onboarding (legado), Transaction (legado) e CRM (opcional). Cada componente tem seu próprio deployment, serviço, ingress e configuração de autoscaling.
Decisão rápida: Novas instalações → habilite Ledger, desabilite Onboarding e Transaction. Migrando do v4.x → veja o Guia de migração. Precisa de CRM? → defina crm.enabled: true.
Recomendado para novas instalações: Use o serviço unificado Ledger. Os serviços separados Onboarding e Transaction ainda são suportados, mas se tornarão legado em um release futuro.

Ledger (recomendado)

O servico ledger é um servico unificado que combina a funcionalidade dos modulos onboarding e transaction em um unico deployment. Este servico é recomendado para novas instalacoes e se tornará obrigatorio em releases futuros.
Quando ledger.enabled é definido como true, os servicos onboarding e transaction sao automaticamente desabilitados (a menos que migration.allowAllServices esteja definido como true para fins de teste).
Habilitando o servico Ledger:
ledger:
  enabled: true

onboarding:
  enabled: false

transaction:
  enabled: false
Quando o ledger esta habilitado, os ingresses de onboarding e transaction redirecionarao automaticamente o trafego para o servico ledger, mantendo compatibilidade com configuracoes DNS existentes.
ParâmetroDescriçãoValor Padrão
ledger.enabledHabilita ou desabilita the ledger service.false
ledger.nameNome do serviço."ledger"
ledger.replicaCountNúmero de réplicas para o serviço ledger service.1
ledger.image.repositoryRepositório da imagem de container do serviço ledger service ."lerianstudio/midaz-ledger"
ledger.image.pullPolicyPolítica de pull da imagem."IfNotPresent"
ledger.image.tagTag da imagem usada para o deployment."" (defaults to Chart.AppVersion)
ledger.imagePullSecretsSecrets para pull de imagens de um registro privado.[]
ledger.nameOverrideSobrescreve o nome padrão gerado pelo Helm.""
ledger.fullnameOverrideSobrescreve o nome completo gerado pelo Helm.""
ledger.podAnnotationsAnnotations do pod para metadados adicionais.{}
ledger.podSecurityContextContexto de segurança aplicado no nível do pod.{}
ledger.securityContext.*Define configurações de contexto de segurança para o container.See values.yaml
ledger.pdb.enabledEspecifica se o PodDisruptionBudget está habilitado.true
ledger.pdb.minAvailableNúmero mínimo de pods disponíveis.1
ledger.pdb.maxUnavailableNúmero máximo de pods indisponíveis.1
ledger.pdb.annotationsAnnotations para o PodDisruptionBudget.{}
ledger.deploymentUpdate.*Estratégia de atualização do deployment.See values.yaml
ledger.service.typeTipo de serviço Kubernetes."ClusterIP"
ledger.service.portPorta para a API HTTP.3002
ledger.service.annotationsAnnotations para o serviço.{}
ledger.ingress.enabledEspecifica se o Ingress está habilitado.false
ledger.ingress.classNameNome da classe do Ingress.""
ledger.ingress.annotationsAnnotations adicionais do ingress.{}
ledger.ingress.hostsHosts configurados para Ingress e paths associados.[]
ledger.ingress.tlsConfigurações TLS para Ingress.[]
ledger.resources.*Requests/limits de recursos CPU/Memória.See values.yaml
ledger.autoscaling.enabledEspecifica se o autoscaling está habilitado.true
ledger.autoscaling.minReplicasNúmero mínimo de réplicas para autoscaling.2
ledger.autoscaling.maxReplicasNúmero máximo de réplicas para autoscaling.5
ledger.autoscaling.targetCPUUtilizationPercentagePercentual alvo de utilização de CPU para autoscaling.80
ledger.autoscaling.targetMemoryUtilizationPercentagePercentual alvo de utilização de memória para autoscaling.80
ledger.nodeSelectorSeletores de node para agendamento de pods.{}
ledger.tolerationsTolerations para agendamento de pods.{}
ledger.affinityRegras de afinidade para agendamento de pods.{}
ledger.configmap.*Variáveis de ambiente para o serviço.See values.yaml
ledger.secrets.*Secrets para o serviço.See values.yaml
ledger.useExistingSecretUsar um secret existente em vez de criar um novo.false
ledger.existingSecretNameNome do secret existente a ser usado.""
ledger.extraEnvVarsLista de variáveis de ambiente extras.[]
ledger.serviceAccount.createEspecifica se a service account deve ser criada.true
ledger.serviceAccount.annotationsAnnotations para a service account.{}
ledger.serviceAccount.nameNome da service account. Se não definido, será gerado automaticamente.""

Criando o secret do Ledger manualmente

Se você deseja usar um Kubernetes Secret existente para o serviço ledger, pode criá-lo manualmente:
kubectl create secret generic midaz-ledger \
  --from-literal=DB_ONBOARDING_PASSWORD='<your-db-onboarding-password>' \
  --from-literal=DB_ONBOARDING_REPLICA_PASSWORD='<your-db-onboarding-replica-password>' \
  --from-literal=MONGO_ONBOARDING_PASSWORD='<your-mongo-onboarding-password>' \
  --from-literal=DB_TRANSACTION_PASSWORD='<your-db-transaction-password>' \
  --from-literal=DB_TRANSACTION_REPLICA_PASSWORD='<your-db-transaction-replica-password>' \
  --from-literal=MONGO_TRANSACTION_PASSWORD='<your-mongo-transaction-password>' \
  --from-literal=REDIS_PASSWORD='<your-redis-password>' \
  --from-literal=RABBITMQ_DEFAULT_PASS='<your-rabbitmq-password>' \
  --from-literal=RABBITMQ_CONSUMER_PASS='<your-rabbitmq-consumer-password>' \
  -n midaz
O serviço ledger usa credenciais de banco de dados específicas por módulo (onboarding e transaction), pois combina ambos os módulos.
Depois configure o serviço ledger para usar este secret existente:
ledger:
  enabled: true
  useExistingSecret: true
  existingSecretName: "midaz-ledger"

Onboarding (legado)

O serviço Onboarding ainda é suportado, mas se tornará legado em um release futuro. Recomendamos usar o serviço unificado Ledger para novas instalações.
ParâmetroDescriçãoValor Padrão
onboarding.nameNome do serviço."onboarding"
onboarding.replicaCountNúmero de réplicas para o serviço onboarding service.2
onboarding.image.repositoryRepositório da imagem de container do serviço onboarding service ."lerianstudio/midaz-onboarding"
onboarding.image.pullPolicyPolítica de pull da imagem."IfNotPresent"
onboarding.image.tagTag da imagem usada para o deployment."3.5.3"
onboarding.imagePullSecretsSecrets para pull de imagens de um registro privado.[]
onboarding.nameOverrideSobrescreve o nome padrão gerado pelo Helm.""
onboarding.fullnameOverrideSobrescreve o nome completo gerado pelo Helm.""
onboarding.podAnnotationsAnnotations do pod para metadados adicionais.{}
onboarding.podSecurityContextContexto de segurança aplicado no nível do pod.{}
onboarding.securityContext.*Define configurações de contexto de segurança para o container.See values.yaml
onboarding.pdb.enabledEspecifica se o PodDisruptionBudget está habilitado.true
onboarding.pdb.minAvailableNúmero mínimo de pods disponíveis.1
onboarding.pdb.maxUnavailableNúmero máximo de pods indisponíveis.1
onboarding.pdb.annotationsAnnotations para o PodDisruptionBudget.{}
onboarding.deploymentUpdate.*Estratégia de atualização do deployment.See values.yaml
onboarding.service.typeTipo de serviço Kubernetes."ClusterIP"
onboarding.service.portPorta para a API HTTP.3000
onboarding.service.annotationsAnnotations para o serviço.{}
onboarding.ingress.enabledEspecifica se o Ingress está habilitado.false
onboarding.ingress.classNameNome da classe do Ingress.""
onboarding.ingress.annotationsAnnotations adicionais do ingress.{}
onboarding.ingress.hostsHosts configurados para Ingress e paths associados.""
onboarding.ingress.tlsConfigurações TLS para Ingress.[]
onboarding.resources.*Requests/limits de recursos CPU/Memória.See values.yaml
onboarding.autoscaling.enabledEspecifica se o autoscaling está habilitado.true
onboarding.autoscaling.minReplicasNúmero mínimo de réplicas para autoscaling.2
onboarding.autoscaling.maxReplicasNúmero máximo de réplicas para autoscaling.5
onboarding.autoscaling.targetCPUUtilizationPercentagePercentual alvo de utilização de CPU para autoscaling.80
onboarding.autoscaling.targetMemoryUtilizationPercentagePercentual alvo de utilização de memória para autoscaling.80
onboarding.nodeSelectorSeletores de node para agendamento de pods.{}
onboarding.tolerationsTolerations para agendamento de pods.{}
onboarding.affinityRegras de afinidade para agendamento de pods.{}
onboarding.configmap.*Variáveis de ambiente para o serviço.See values.yaml
onboarding.secrets.*Secrets para o serviço.See values.yaml
onboarding.useExistingSecretUsar um secret existente em vez de criar um novo.false
onboarding.existingSecretNameNome do secret existente a ser usado.""
onboarding.extraEnvVarsLista de variáveis de ambiente extras.[]
onboarding.serviceAccount.createEspecifica se a service account deve ser criada.true
onboarding.serviceAccount.annotationsAnnotations para a service account.{}
onboarding.serviceAccount.nameNome da service account. Se não definido, será gerado automaticamente.""

Criando o secret do Onboarding manualmente

Se você deseja usar um Kubernetes Secret existente para o serviço onboarding:
kubectl create secret generic midaz-onboarding \
  --from-literal=MONGO_PASSWORD='<your-mongo-password>' \
  --from-literal=DB_PASSWORD='<your-db-password>' \
  --from-literal=DB_REPLICA_PASSWORD='<your-db-replica-password>' \
  --from-literal=RABBITMQ_DEFAULT_PASS='<your-rabbitmq-password>' \
  --from-literal=REDIS_PASSWORD='<your-redis-password>' \
  -n midaz
Depois configure o serviço onboarding para usar este secret existente:
onboarding:
  useExistingSecret: true
  existingSecretName: "midaz-onboarding"

Transaction (legado)

O serviço Transaction ainda é suportado, mas se tornará legado em um release futuro. Recomendamos usar o serviço unificado Ledger para novas instalações.
ParâmetroDescriçãoValor Padrão
transaction.nameNome do serviço."transaction"
transaction.replicaCountNúmero de réplicas para o serviço transaction service.1
transaction.image.repositoryRepositório da imagem de container do serviço transaction service ."lerianstudio/midaz-transaction"
transaction.image.pullPolicyPolítica de pull da imagem."IfNotPresent"
transaction.image.tagTag da imagem usada para o deployment."3.5.3"
transaction.imagePullSecretsSecrets para pull de imagens de um registro privado.[]
transaction.nameOverrideSobrescreve o nome padrão gerado pelo Helm.""
transaction.fullnameOverrideSobrescreve o nome completo gerado pelo Helm.""
transaction.podAnnotationsAnnotations do pod para metadados adicionais.{}
transaction.podSecurityContextContexto de segurança para o pod.{}
transaction.securityContext.*Define configurações de contexto de segurança para o container.See values.yaml
transaction.pdb.enabledHabilita ou desabilita PodDisruptionBudget.true
transaction.pdb.minAvailableNúmero mínimo de pods disponíveis.2
transaction.pdb.maxUnavailableNúmero máximo de pods indisponíveis.1
transaction.pdb.annotationsAnnotations para o PodDisruptionBudget.{}
transaction.deploymentUpdate.*Estratégia de atualização do deployment.See values.yaml
transaction.service.typeTipo de serviço Kubernetes."ClusterIP"
transaction.service.portPorta para a API HTTP.3001
transaction.service.annotationsAnnotations para o serviço.{}
transaction.ingress.enabledHabilita ou desabilita ingress.false
transaction.ingress.classNameNome da classe do Ingress.""
transaction.ingress.annotationsAnnotations adicionais do ingress.{}
transaction.ingress.hostsHosts configurados para ingress e paths associados.[]
transaction.ingress.tlsConfiguração TLS para ingress.[]
transaction.resources.*Requests/limits de recursos CPU/Memória.See values.yaml
transaction.autoscaling.enabledHabilita ou desabilita horizontal pod autoscaling.true
transaction.autoscaling.minReplicasNúmero mínimo de réplicas para autoscaling.1
transaction.autoscaling.maxReplicasNúmero máximo de réplicas para autoscaling.5
transaction.autoscaling.targetCPUUtilizationPercentagePercentual alvo de utilização de CPU para autoscaling.80
transaction.autoscaling.targetMemoryUtilizationPercentagePercentual alvo de utilização de memória para autoscaling.80
transaction.nodeSelectorSeletor de node para agendamento de pods em nodes específicos.{}
transaction.tolerationsTolerations para agendamento em nodes com taints.{}
transaction.affinityRegras de afinidade para agendamento de pods.{}
transaction.configmap.*Variáveis de ambiente para o serviço.See values.yaml
transaction.secrets.*Secrets para o serviço.See values.yaml
transaction.useExistingSecretUsar um secret existente em vez de criar um novo.false
transaction.existingSecretNameNome do secret existente a ser usado.""
transaction.extraEnvVarsLista de variáveis de ambiente extras.[]
transaction.serviceAccount.createEspecifica se uma ServiceAccount deve ser criada.true
transaction.serviceAccount.annotationsAnnotations para a ServiceAccount.{}
transaction.serviceAccount.nameNome da service account.""

Criando o secret do Transaction manualmente

Se você deseja usar um Kubernetes Secret existente para o serviço transaction:
kubectl create secret generic midaz-transaction \
  --from-literal=MONGO_PASSWORD='<your-mongo-password>' \
  --from-literal=DB_PASSWORD='<your-db-password>' \
  --from-literal=DB_REPLICA_PASSWORD='<your-db-replica-password>' \
  --from-literal=RABBITMQ_DEFAULT_PASS='<your-rabbitmq-password>' \
  --from-literal=RABBITMQ_CONSUMER_PASS='<your-rabbitmq-consumer-password>' \
  --from-literal=REDIS_PASSWORD='<your-redis-password>' \
  -n midaz
O serviço transaction requer uma chave de secret adicional RABBITMQ_CONSUMER_PASS em comparação ao onboarding.
Depois configure o serviço transaction para usar este secret existente:
transaction:
  useExistingSecret: true
  existingSecretName: "midaz-transaction"

CRM (Customer relationship management)

O serviço crm fornece APIs para gerenciar dados de holders e seus relacionamentos com contas do ledger. Anteriormente disponível como um chart separado (plugin-crm) implantado no namespace midaz-plugins, o CRM agora está integrado ao Helm chart principal do Midaz e é implantado no namespace midaz.
Se você está atualmente usando o plugin-crm no namespace midaz-plugins, recomendamos migrar para este novo workload integrado de CRM. Veja o guia Atualizando o Helm para os passos de migração.
Para mais detalhes sobre a funcionalidade do CRM, consulte a Documentação do CRM.
Habilitando o serviço CRM:
crm:
  enabled: true
  configmap:
    MONGO_HOST: "midaz-mongodb"  # Use your MongoDB host
    MONGO_NAME: "crm"
    MONGO_USER: "midaz"
  secrets:
    MONGO_PASSWORD: "lerian"
ParâmetroDescriçãoValor Padrão
crm.enabledHabilita ou desabilita the CRM service.false
crm.nameNome do serviço."crm"
crm.replicaCountNúmero de réplicas para o serviço CRM service.1
crm.image.repositoryRepositório da imagem de container do serviço CRM service ."lerianstudio/midaz-crm"
crm.image.pullPolicyPolítica de pull da imagem."Always"
crm.image.tagTag da imagem usada para o deployment."3.5.3"
crm.imagePullSecretsSecrets para pull de imagens de um registro privado.[]
crm.nameOverrideSobrescreve o nome padrão gerado pelo Helm.""
crm.fullnameOverrideSobrescreve o nome completo gerado pelo Helm.""
crm.podAnnotationsAnnotations do pod para metadados adicionais.{}
crm.podSecurityContextContexto de segurança aplicado no nível do pod.{}
crm.securityContext.*Define configurações de contexto de segurança para o container.See values.yaml
crm.pdb.enabledEspecifica se o PodDisruptionBudget está habilitado.true
crm.pdb.minAvailableNúmero mínimo de pods disponíveis.1
crm.pdb.maxUnavailableNúmero máximo de pods indisponíveis.1
crm.pdb.annotationsAnnotations para o PodDisruptionBudget.{}
crm.deploymentUpdate.typeTipo de estratégia de deployment."RollingUpdate"
crm.deploymentUpdate.maxSurgeNúmero máximo de pods que podem ser criados acima do número desejado.1
crm.deploymentUpdate.maxUnavailableNúmero máximo de pods que podem estar indisponíveis durante a atualização.1
crm.service.typeTipo de serviço Kubernetes."ClusterIP"
crm.service.portPorta do serviço.4003
crm.ingress.enabledEspecifica se o Ingress está habilitado.false
crm.ingress.classNameNome da classe do Ingress.""
crm.ingress.annotationsAnnotations adicionais do ingress.{}
crm.ingress.hostsHosts configurados para Ingress e paths associados.[]
crm.ingress.tlsConfigurações TLS para Ingress.[]
crm.resources.*Requests/limits de recursos CPU/Memória.See values.yaml
crm.autoscaling.enabledEspecifica se o autoscaling está habilitado.true
crm.autoscaling.minReplicasNúmero mínimo de réplicas para autoscaling.1
crm.autoscaling.maxReplicasNúmero máximo de réplicas para autoscaling.3
crm.autoscaling.targetCPUUtilizationPercentagePercentual alvo de utilização de CPU para autoscaling.80
crm.autoscaling.targetMemoryUtilizationPercentagePercentual alvo de utilização de memória para autoscaling.80
crm.nodeSelectorSeletores de node para agendamento de pods.{}
crm.tolerationsTolerations para agendamento de pods.{}
crm.affinityRegras de afinidade para agendamento de pods.{}
crm.configmap.*Variáveis de ambiente para o serviço.See values.yaml
crm.secrets.*Secrets para o serviço.See values.yaml
crm.useExistingSecretUsar um secret existente em vez de criar um novo.false
crm.existingSecretNameNome do secret existente a ser usado.""
crm.extraEnvVarsLista de variáveis de ambiente extras.{}

Criando o secret do CRM manualmente

Se você deseja usar um Kubernetes Secret existente para o serviço CRM:
kubectl create secret generic midaz-crm \
  --from-literal=LCRYPTO_HASH_SECRET_KEY='<your-hash-secret-key>' \
  --from-literal=LCRYPTO_ENCRYPT_SECRET_KEY='<your-encrypt-secret-key>' \
  --from-literal=MONGO_PASSWORD='<your-mongo-password>' \
  -n midaz
Depois configure o serviço CRM para usar este secret existente:
crm:
  enabled: true
  useExistingSecret: true
  existingSecretName: "midaz-crm"