Files
athletic-map-deploy/tenants/acme/95-frontend-spa.yaml
T

67 lines
2.7 KiB
YAML

# 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: acme-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
image: docker.io/library/frontend-spa:2.67-csp-script
imagePullPolicy: Never
ports: [{ containerPort: 80 }]
env:
- { name: ATM_KC_URL, value: "https://auth-acme.athleticmap.com" }
- { name: ATM_REALM, value: "athleticmap" }
- { name: ATM_CLIENT, value: "spa" }
- { name: ATM_TENANT, value: "acme" }
- { name: ATM_PLANO, value: "institucional" }
# P4.6 — o roteamento interno do nginx, por GRUPO de contextos.
#
# Medido em 2026-09-22: as tres estavam VAZIAS nos quatro tenants, e
# `render-config.sh` faz toda variavel ausente cair em ATM_API_URL, que
# por sua vez cai em `http://servico-bff`. Ou seja: o nginx mandaria
# `/api/cadastro` para o BFF, que responde **401** em vez da resposta do
# contexto. Hoje nada quebra porque o INGRESS atende antes, com uma linha
# por contexto — e e justamente essas linhas que P4.6 quer remover.
#
# Definidas aqui, a remocao do Ingress deixa de ser mudanca arriscada e
# vira mudanca sem efeito visivel. Enquanto o Ingress existir, estas
# variaveis nao mudam nada: o trafego nem chega a este nginx.
- { name: ATM_API_CORE_URL, value: "http://runtime-core.acme-prod.svc.cluster.local" }
- { name: ATM_API_OPERACAO_URL, value: "http://runtime-operacao.acme-prod.svc.cluster.local" }
- { name: ATM_API_SAUDE_URL, value: "http://runtime-saude.acme-prod.svc.cluster.local" }
- { name: ATM_BFF_URL, value: "http://servico-bff.acme-prod.svc.cluster.local" }
- { name: ATM_API_URL, value: "http://servico-bff.acme-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: acme-prod
labels:
app: frontend-spa
spec:
selector: { app: frontend-spa }
ports: [{ name: http, port: 80, targetPort: 80 }]