From 62aa13bbb1a2385dbfeeb1c7aed5d3b6d6da9d5e Mon Sep 17 00:00:00 2001 From: deploy Date: Thu, 24 Sep 2026 23:50:28 +0000 Subject: [PATCH] fix(molde): a SPA precisa do NOME COMPLETO dos servicos MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O nginx roteia /bff e /api com proxy_pass de variavel, e ai resolve por requisicao usando a diretiva resolver. O resolver do nginx nao le os dominios de busca do /etc/resolv.conf: pergunta o nome cru ao CoreDNS, que responde NXDOMAIN para servico-bff. O sintoma engana: 502 com could not be resolved no log do nginx, enquanto getent hosts servico-bff dentro do MESMO pod resolve — porque o getent usa o search e o nginx nao. E por isso que o escolinha sempre usou FQDN aqui. --- moldes/consolidado/95-frontend-spa.yaml | 21 ++++++++++++++----- .../escolinha-de-teste-2/95-frontend-spa.yaml | 21 ++++++++++++++----- .../escolinha-de-teste/95-frontend-spa.yaml | 21 ++++++++++++++----- 3 files changed, 48 insertions(+), 15 deletions(-) diff --git a/moldes/consolidado/95-frontend-spa.yaml b/moldes/consolidado/95-frontend-spa.yaml index 3d41236..5fcb0aa 100644 --- a/moldes/consolidado/95-frontend-spa.yaml +++ b/moldes/consolidado/95-frontend-spa.yaml @@ -48,7 +48,18 @@ spec: # devolve 502. Ver a pendencia no diario; o molde ainda nao pode ser # aplicado a um tenant por causa disto. Deixado apontando para o nome # antigo de proposito: apagar a linha esconderia o buraco. - - { name: ATM_BFF_URL, value: "http://servico-bff" } + # NOME COMPLETO, e nao o curto. A diferenca nao e estetica. + # + # O nginx roteia /bff e /api com proxy_pass de VARIAVEL, e ai ele + # resolve por requisicao usando a diretiva resolver. E o resolver do + # nginx NAO le os dominios de busca do /etc/resolv.conf: ele pergunta + # o nome cru ao CoreDNS, que responde NXDOMAIN para servico-bff. + # + # O sintoma e 502 com could not be resolved (3: Host not found) no log + # do nginx — enquanto getent hosts servico-bff DENTRO do mesmo pod + # resolve, porque o getent usa o search. Medido em 2026-09-24; e por + # isso que o escolinha sempre usou FQDN aqui, e este molde nao usava. + - { name: ATM_BFF_URL, value: "http://servico-bff.{{TENANT}}-prod.svc.cluster.local" } # /api por GRUPO DE CONTEXTO, e nao um destino so. # @@ -62,10 +73,10 @@ spec: # # `ATM_API_URL` continua, e nao e redundante: e o destino do que nao # pertence a grupo nenhum, hoje `/api/public/**`. - - { name: ATM_API_URL, value: "http://runtime-operacao" } - - { name: ATM_API_CORE_URL, value: "http://runtime-core" } - - { name: ATM_API_OPERACAO_URL, value: "http://runtime-operacao" } - - { name: ATM_API_SAUDE_URL, value: "http://runtime-saude" } + - { name: ATM_API_URL, value: "http://runtime-operacao.{{TENANT}}-prod.svc.cluster.local" } + - { name: ATM_API_CORE_URL, value: "http://runtime-core.{{TENANT}}-prod.svc.cluster.local" } + - { name: ATM_API_OPERACAO_URL, value: "http://runtime-operacao.{{TENANT}}-prod.svc.cluster.local" } + - { name: ATM_API_SAUDE_URL, value: "http://runtime-saude.{{TENANT}}-prod.svc.cluster.local" } resources: # 24 MiB medidos em 2026-09-18. 64Mi de request da folga de 2,5x. requests: { cpu: 50m, memory: 64Mi } diff --git a/tenants/escolinha-de-teste-2/95-frontend-spa.yaml b/tenants/escolinha-de-teste-2/95-frontend-spa.yaml index 4992a78..531d763 100644 --- a/tenants/escolinha-de-teste-2/95-frontend-spa.yaml +++ b/tenants/escolinha-de-teste-2/95-frontend-spa.yaml @@ -48,7 +48,18 @@ spec: # devolve 502. Ver a pendencia no diario; o molde ainda nao pode ser # aplicado a um tenant por causa disto. Deixado apontando para o nome # antigo de proposito: apagar a linha esconderia o buraco. - - { name: ATM_BFF_URL, value: "http://servico-bff" } + # NOME COMPLETO, e nao o curto. A diferenca nao e estetica. + # + # O nginx roteia /bff e /api com proxy_pass de VARIAVEL, e ai ele + # resolve por requisicao usando a diretiva resolver. E o resolver do + # nginx NAO le os dominios de busca do /etc/resolv.conf: ele pergunta + # o nome cru ao CoreDNS, que responde NXDOMAIN para servico-bff. + # + # O sintoma e 502 com could not be resolved (3: Host not found) no log + # do nginx — enquanto getent hosts servico-bff DENTRO do mesmo pod + # resolve, porque o getent usa o search. Medido em 2026-09-24; e por + # isso que o escolinha sempre usou FQDN aqui, e este molde nao usava. + - { name: ATM_BFF_URL, value: "http://servico-bff.escolinha-de-teste-2-prod.svc.cluster.local" } # /api por GRUPO DE CONTEXTO, e nao um destino so. # @@ -62,10 +73,10 @@ spec: # # `ATM_API_URL` continua, e nao e redundante: e o destino do que nao # pertence a grupo nenhum, hoje `/api/public/**`. - - { name: ATM_API_URL, value: "http://runtime-operacao" } - - { name: ATM_API_CORE_URL, value: "http://runtime-core" } - - { name: ATM_API_OPERACAO_URL, value: "http://runtime-operacao" } - - { name: ATM_API_SAUDE_URL, value: "http://runtime-saude" } + - { name: ATM_API_URL, value: "http://runtime-operacao.escolinha-de-teste-2-prod.svc.cluster.local" } + - { name: ATM_API_CORE_URL, value: "http://runtime-core.escolinha-de-teste-2-prod.svc.cluster.local" } + - { name: ATM_API_OPERACAO_URL, value: "http://runtime-operacao.escolinha-de-teste-2-prod.svc.cluster.local" } + - { name: ATM_API_SAUDE_URL, value: "http://runtime-saude.escolinha-de-teste-2-prod.svc.cluster.local" } resources: # 24 MiB medidos em 2026-09-18. 64Mi de request da folga de 2,5x. requests: { cpu: 50m, memory: 64Mi } diff --git a/tenants/escolinha-de-teste/95-frontend-spa.yaml b/tenants/escolinha-de-teste/95-frontend-spa.yaml index f395aa9..e15ca49 100644 --- a/tenants/escolinha-de-teste/95-frontend-spa.yaml +++ b/tenants/escolinha-de-teste/95-frontend-spa.yaml @@ -48,7 +48,18 @@ spec: # devolve 502. Ver a pendencia no diario; o molde ainda nao pode ser # aplicado a um tenant por causa disto. Deixado apontando para o nome # antigo de proposito: apagar a linha esconderia o buraco. - - { name: ATM_BFF_URL, value: "http://servico-bff" } + # NOME COMPLETO, e nao o curto. A diferenca nao e estetica. + # + # O nginx roteia /bff e /api com proxy_pass de VARIAVEL, e ai ele + # resolve por requisicao usando a diretiva resolver. E o resolver do + # nginx NAO le os dominios de busca do /etc/resolv.conf: ele pergunta + # o nome cru ao CoreDNS, que responde NXDOMAIN para servico-bff. + # + # O sintoma e 502 com could not be resolved (3: Host not found) no log + # do nginx — enquanto getent hosts servico-bff DENTRO do mesmo pod + # resolve, porque o getent usa o search. Medido em 2026-09-24; e por + # isso que o escolinha sempre usou FQDN aqui, e este molde nao usava. + - { name: ATM_BFF_URL, value: "http://servico-bff.escolinha-de-teste-prod.svc.cluster.local" } # /api por GRUPO DE CONTEXTO, e nao um destino so. # @@ -62,10 +73,10 @@ spec: # # `ATM_API_URL` continua, e nao e redundante: e o destino do que nao # pertence a grupo nenhum, hoje `/api/public/**`. - - { name: ATM_API_URL, value: "http://runtime-operacao" } - - { name: ATM_API_CORE_URL, value: "http://runtime-core" } - - { name: ATM_API_OPERACAO_URL, value: "http://runtime-operacao" } - - { name: ATM_API_SAUDE_URL, value: "http://runtime-saude" } + - { name: ATM_API_URL, value: "http://runtime-operacao.escolinha-de-teste-prod.svc.cluster.local" } + - { name: ATM_API_CORE_URL, value: "http://runtime-core.escolinha-de-teste-prod.svc.cluster.local" } + - { name: ATM_API_OPERACAO_URL, value: "http://runtime-operacao.escolinha-de-teste-prod.svc.cluster.local" } + - { name: ATM_API_SAUDE_URL, value: "http://runtime-saude.escolinha-de-teste-prod.svc.cluster.local" } resources: # 24 MiB medidos em 2026-09-18. 64Mi de request da folga de 2,5x. requests: { cpu: 50m, memory: 64Mi }