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.
- 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. - Construir todas as imagens necessárias e resolver falhas de build. Conferir tags, políticas de pull, recursos disponíveis e compatibilidade dos volumes.
- 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.
- Carregar as imagens nos nós e aplicar apenas após aprovação desse diff e dos riscos abaixo.
- 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.