From 713db06a7b869fc463658984d310b29e18a83b0c Mon Sep 17 00:00:00 2001 From: deploy Date: Tue, 22 Sep 2026 21:28:16 +0000 Subject: [PATCH] fix(plataforma): o frontend tambem precisava de FQDN, e so ele ficou de fora MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Os quatro tenants foram corrigidos mais cedo hoje; o plataforma nao. O defeito so apareceu agora, e por um motivo que vale registrar: ele e o unico SEM catch-all /api. Nos outros, uma rota sem linha propria era engolida pelo backend legado; aqui ela cai no frontend — e e ali que o bug estava esperando. Medido no log do proprio pod: servico-bff could not be resolved (3: Host not found) request: "POST /api/plataforma/provisionamentos" O resolver do nginx nao aplica os search do /etc/resolv.conf, entao nome curto nao resolve. As cinco variaveis estavam vazias, e toda ausente cai em ATM_API_URL, que cai no nome curto `servico-bff`. Aqui nao ha runtime consolidado: os destinos apontam para o BFF, que ja era o padrao — a diferenca e so o FQDN. Achado ao conferir o PLATAFORMA_ADMIN_TOKEN recem-ligado: a consulta de estado devolvia 502 em vez de 401, e o 502 era isto. --- tenants/plataforma/95-frontend-spa.yaml | 137 +++++++++++++----------- 1 file changed, 77 insertions(+), 60 deletions(-) diff --git a/tenants/plataforma/95-frontend-spa.yaml b/tenants/plataforma/95-frontend-spa.yaml index ae96744..c290faf 100644 --- a/tenants/plataforma/95-frontend-spa.yaml +++ b/tenants/plataforma/95-frontend-spa.yaml @@ -1,60 +1,77 @@ -# SPA Angular (shell OIDC + admin de catalogos + cadastro de Atleta) consumindo -# o BFF. Substitui o stub estatico nginx/configMap. Roteado em / no ingress. ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: frontend-spa - namespace: plataforma-prod - labels: - app: frontend-spa - athleticmap.io/contexto: frontend -spec: - replicas: 1 - selector: { matchLabels: { app: frontend-spa } } - template: - metadata: - labels: - app: frontend-spa - athleticmap.io/contexto: frontend - spec: - containers: - - name: frontend-spa - # Tag alinhada com o tenant `escolinha`, que e o mais atual do - # cluster. A que estava aqui vinha do molde defasado deste - # repositorio, e nenhum tenant real a usava mais. - # - # O preco disso apareceu no primeiro deploy: com - # `servico-financeiro:1.0`, o Flyway aplicou UMA migracao (V001) e - # parou — a imagem foi construida antes de V002..V007 existirem, e a - # tabela `plano_financeiro` nem chegou a ser criada. "Imagem - # presente no no" nao e o mesmo que "imagem atual". - image: docker.io/library/frontend-spa:2.67-csp-script - imagePullPolicy: Never - ports: [{ containerPort: 80 }] - env: - - { name: ATM_KC_URL, value: "https://auth-plataforma.athleticmap.influxdigital.com.br" } - - { name: ATM_REALM, value: "athleticmap" } - - { name: ATM_CLIENT, value: "spa" } - - { name: ATM_TENANT, value: "plataforma" } - # Plano do tenant, lido pela BarreiraDePlano (P3.7). Sem esta - # variavel o servico nasce Bronze e responde 403 no que e pago. - - { name: ATM_PLANO, value: "institucional" } - resources: - requests: { cpu: 50m, memory: 64Mi } - limits: { cpu: 200m, memory: 128Mi } - readinessProbe: - httpGet: { path: /, port: 80 } - initialDelaySeconds: 5 - periodSeconds: 10 ---- -apiVersion: v1 -kind: Service -metadata: - name: frontend-spa - namespace: plataforma-prod - labels: - app: frontend-spa -spec: - selector: { app: frontend-spa } - ports: [{ name: http, port: 80, targetPort: 80 }] +# SPA Angular (shell OIDC + admin de catalogos + cadastro de Atleta) consumindo +# o BFF. Substitui o stub estatico nginx/configMap. Roteado em / no ingress. +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: frontend-spa + namespace: plataforma-prod + labels: + app: frontend-spa + athleticmap.io/contexto: frontend +spec: + replicas: 1 + selector: { matchLabels: { app: frontend-spa } } + template: + metadata: + labels: + app: frontend-spa + athleticmap.io/contexto: frontend + spec: + containers: + - name: frontend-spa + # Tag alinhada com o tenant `escolinha`, que e o mais atual do + # cluster. A que estava aqui vinha do molde defasado deste + # repositorio, e nenhum tenant real a usava mais. + # + # O preco disso apareceu no primeiro deploy: com + # `servico-financeiro:1.0`, o Flyway aplicou UMA migracao (V001) e + # parou — a imagem foi construida antes de V002..V007 existirem, e a + # tabela `plano_financeiro` nem chegou a ser criada. "Imagem + # presente no no" nao e o mesmo que "imagem atual". + image: docker.io/library/frontend-spa:2.67-csp-script + imagePullPolicy: Never + ports: [{ containerPort: 80 }] + env: + - { name: ATM_KC_URL, value: "https://auth-plataforma.athleticmap.influxdigital.com.br" } + - { name: ATM_REALM, value: "athleticmap" } + - { name: ATM_CLIENT, value: "spa" } + - { name: ATM_TENANT, value: "plataforma" } + # Plano do tenant, lido pela BarreiraDePlano (P3.7). Sem esta + # variavel o servico nasce Bronze e responde 403 no que e pago. + - { name: ATM_PLANO, value: "institucional" } + # P4.6 — o roteamento interno do nginx, com FQDN. + # + # O `resolver` do nginx NAO aplica os `search` do /etc/resolv.conf: + # `servico-bff` sozinho nao resolve, e a resposta e 502. Medido aqui + # em 2026-09-22, no log do proprio pod: + # "servico-bff could not be resolved (3: Host not found)", + # request: "POST /api/plataforma/provisionamentos" + # + # Os quatro tenants foram corrigidos mais cedo no mesmo dia; o + # plataforma ficou de fora, e so apareceu porque ele NAO tem + # catch-all /api — entao uma rota sem linha propria cai no frontend, + # e e ali que o defeito estava esperando. + # + # Aqui NAO ha runtime consolidado: os tres apontam para o BFF, que e + # o que `render-config.sh` ja faria por padrao — a diferenca e o FQDN. + - { name: ATM_BFF_URL, value: "http://servico-bff.plataforma-prod.svc.cluster.local" } + - { name: ATM_API_URL, value: "http://servico-bff.plataforma-prod.svc.cluster.local" } + resources: + requests: { cpu: 50m, memory: 64Mi } + limits: { cpu: 200m, memory: 128Mi } + readinessProbe: + httpGet: { path: /, port: 80 } + initialDelaySeconds: 5 + periodSeconds: 10 +--- +apiVersion: v1 +kind: Service +metadata: + name: frontend-spa + namespace: plataforma-prod + labels: + app: frontend-spa +spec: + selector: { app: frontend-spa } + ports: [{ name: http, port: 80, targetPort: 80 }]