Pular para conteúdo

Correções locais — revisão antes da aplicação

Revisão de 17/10/2026. As alterações estão restritas a totvs-gateway-infra-local. Os repositórios dos microserviços foram consultados em modo somente leitura; os builds utilizaram exportações dos commits registrados em install/local-images.json. Não houve instalação, atualização, carregamento de imagens ou remoção no Kind.

Diff dos manifests Windows

A comparação usa o perfil Windows anterior às alterações, renderizado do checkout de infraestrutura 5ad5ccf44bde1eb8c189634bfabc3a52bbc1ba5e, e o novo agregador. Ela não é um diff contra o estado vivo do cluster.

Abrir o inventário de diferenças por recurso e campo

O relatório omite valores para não expor Secrets e ignora a anotação aleatória rollme. O agregador passa de 113 para 111 recursos: o Job de importação ganha sufixo de revisão, e os dois Secrets gar-pull deixam de integrar a configuração de imagens locais. Services, portas NodePort do perfil Windows e número de réplicas dos serviços são preservados. Os 21 subcharts continuam habilitados.

Alteração funcional Motivo e impacto
Valores comuns e overlays de sistema operacional Windows mantém NodePort; Ubuntu usa MetalLB com pool definido para a máquina, sem IP fixo herdado
Imagens locais por commit e política Never Exige build e carregamento em todos os nós; não tenta buscar tags locais em registry corporativo
global.localImages Omite referências a gar-pull somente quando explicitamente habilitado; comportamento padrão dos demais consumidores dos charts preservado
Credenciais em .local/values.yaml Valores novos são para instalação nova; atualizar bancos existentes exige conservar suas credenciais atuais
Release mocks no Helmfile Reutiliza chart, nome do release e namespace do workload; passa a anteceder o agregador
Authenticator e JWT do BFF URL local e mapper userIdpId; autorização por recurso permanece habilitada, com limitação no uso das anotações pelo BFF
Ingress do BFF Remove rewrite / nos perfis locais para preservar o caminho da API; padrão do chart continua disponível
URLs internas Monitoring no BFF, Auth Provider no Builder, Template Service no OpenAPI Doc e Scheduler no Template Service
RabbitMQ do Invalidator A configuração específica de iPaaS também aponta para o broker local
Keycloak Imagem pública existente, sem estágio privado inutilizado; issuer local, realm local e importação ERP condicional
Job do Keycloak Nome por revisão evita atualização de PodTemplate imutável; importações ainda alteram o estado persistido do Keycloak
Dependências externas Versões de charts fixadas; Collector usa imagem 0.161.0 correspondente ao appVersion do chart 0.175.0

Os valores de validação de JWT existentes no Auth Provider foram preservados. Não foi introduzido bypass de autenticação, autorização ou assinatura.

Plano de aplicação a aprovar

Não executar ainda no cluster existente. A aprovação das alterações em arquivos não autoriza sua aplicação.

  1. Confirmar contexto kind-totvs-gateway, releases existentes e backup dos dados. Preservar as credenciais atuais em valores privados compatíveis com os bancos já inicializados; não aplicar as credenciais aleatórias de instalação nova.
  2. Construir todas as imagens necessárias e resolver falhas de build. Conferir tags, políticas de pull, recursos disponíveis e compatibilidade dos volumes.
  3. Renderizar novamente o perfil selecionado e apresentar o diff contra os releases atuais, com Secrets suprimidos. O diff armazenado nesta página é a comparação entre arquivos, não substitui essa etapa.
  4. Carregar as imagens nos nós e aplicar apenas após aprovação desse diff e dos riscos abaixo.
  5. Verificar importação do Keycloak, readiness e os cenários funcionais do tutorial. Não declarar autorização por recurso validada no BFF atual.

Comandos previstos, a partir da raiz da infraestrutura:

python scripts/local/images.py check
python scripts/local/images.py build
helmfile -f install/NGiNX/helmfile.yaml --environment local-win template > .local/candidate.yaml
helmfile -f install/NGiNX/helmfile.yaml --environment local-win diff --suppress-secrets
python scripts/local/images.py load --cluster totvs-gateway
helmfile -f install/NGiNX/helmfile.yaml --environment local-win apply
python scripts/local/check_control_plane.py

diff consulta o estado do cluster e exige o plugin Helm Diff. load, apply e os comandos de criação de recursos dos cenários funcionais alteram o ambiente. Não estão executados nesta revisão.

Riscos e reversão

Risco Tratamento antes de aplicar Reversão
Credenciais novas incompatíveis com bancos existentes Recuperar valores atuais sem publicá-los e revisar cada Secret Restaurar valores anteriores; rollback de Helm não rotaciona bancos
Imagem inexistente em algum nó Conferir build/tag e carregar em todos os nós Restaurar tags/políticas anteriores e a revisão Helm correspondente
Mudanças nos realms/client account Backup/exportação protegida do Keycloak e revisão dos usuários/claims Restaurar configuração e dados apropriados; rollback sozinho não desfaz importação
Reinício de bancos sem armazenamento persistente Inspecionar volumes/PVCs e realizar backup antes de rollout Restaurar dados a partir do backup, não apenas YAML
Mudança de Ingress e issuer Validar resolução DNS e caminhos HTTP; tokens antigos podem expirar ou ser recusados Restaurar configuração anterior e emitir tokens compatíveis
Pool MetalLB incorreto Conferir rede Docker e endereços livres da máquina Ubuntu Restaurar pool anterior; não copiar o intervalo sintético usado no teste
Capacidade insuficiente ou falha de integração Verificar todos os componentes e cenários; não equiparar Ready a funcionamento completo Interromper avanço e investigar; não desabilitar segurança para prosseguir

Nenhuma exclusão ou recriação do cluster está prevista. Para mudanças em arquivos, a reversão deve usar o patch específico desta tarefa, preservando a documentação e alterações anteriores do workspace; não utilizar reset/clean indiscriminado.

Validações executadas

Verificação Resultado
git pull --ff-only da infraestrutura Atualizado, sem mudanças recebidas
Inventário de imagens 24 entradas conferidas contra commits/Dockerfiles; 22 componentes backend, Keycloak e mock
Helmfile Windows completo Renderização bem-sucedida, 199 recursos
Helmfile Ubuntu completo Renderização bem-sucedida, 225 recursos, com pool sintético apenas para teste; não valida rede real
Helm lint do agregador e do mock Sem falhas; agregador com valores locais completos
Keycloak renderizado YAML dos realms válido; userIdpId presente; ERP excluído no perfil local
Imagens locais renderizadas Sem referência a pullSecret corporativo nos Deployments locais
Build de Keycloak Concluído com a base pública existente
Build do mock Concluído; container Docker descartável utilizado nos testes e removido
Mock HTTP Destino 200, permissão 200, tenant sem permissão com features vazio, ausência de Bearer 401
Build JVM representativo JSON Handler: mvn verify e Dockerfile JVM concluídos em exportação do commit atual
Build Go representativo Router: testes e build concluídos com o Dockerfile local compartilhado
Inventário versus renderização As 24 imagens do inventário aparecem nos manifests completos
Scripts de preparação Sintaxe Python e consistência das credenciais compartilhadas conferidas
MkDocs Build estrito concluído; 81 páginas, 10.042 links/assets verificados, sem erros; 24 arquivos do acervo preservados
Inspeção visual Nova página aberta no Edge em 1440 px, temas claro/escuro; sem overflow horizontal da página
Git diff Verificação de whitespace sem erros

O primeiro ensaio JVM com ./mvnw falhou no container sobre arquivos exportados do Windows. O script passou a usar o Maven 3.9.11 da imagem de build, e o ensaio seguinte concluiu. Nenhum wrapper do microserviço foi modificado.

Impedimentos e validações restantes

  • Cenário B: emissão de token e chamada real ao BFF ainda precisam de execução autorizada. A aplicação de autorização por recurso é limitada pela ausência de anotações nos endpoints atuais; o mock preparado não corrige essa ausência.
  • Cenário A: criação, publicação, resposta do destino e rejeição de chamada sem credencial ainda precisam de execução integrada. O roteiro usa contratos atuais, mas não é apresentado como teste funcional concluído.
  • ERP: provider customizado ausente. Não há substituto artificial; realm local permanece separado.
  • Demais imagens: os caminhos/commits foram conferidos, mas os builds de todos os componentes ainda não foram executados. Dependências privadas ou testes com serviços externos podem revelar bloqueios adicionais.
  • Keycloak: importação real, emissão de token, disponibilidade do realm e URLs de backchannel ainda precisam de validação em runtime. Manifest de imagem disponível não comprova compatibilidade da importação.
  • Ubuntu: a rede e o pool reais devem ser definidos pelo operador; a renderização utilizou intervalo sintético e restaurou o arquivo privado ao terminar.
  • Outras integrações: ERP e contratos iPaaS não presentes nos mappings continuam indisponíveis. Não há garantia de equivalência dos mocks com serviços corporativos completos.
  • Segurança dos valores históricos: defaults antigos dos charts foram preservados por compatibilidade; não use esses valores como credenciais de um ambiente novo. Os perfis locais utilizam o arquivo privado gerado.

O ambiente está preparado para a próxima etapa de aplicação controlada; a instalação completa ainda não é declarada funcionalmente validada.