# BFF (Backend-for-Frontend) — ponto unico da SPA; agrega configuracao + cadastro # com token relay. Stateless (sem banco). Roteado em /bff no ingress do tenant. --- apiVersion: apps/v1 kind: Deployment metadata: name: servico-bff namespace: escolinha-prod labels: app: servico-bff athleticmap.io/contexto: bff spec: replicas: 1 selector: { matchLabels: { app: servico-bff } } template: metadata: labels: app: servico-bff athleticmap.io/contexto: bff spec: containers: - name: servico-bff image: docker.io/library/servico-bff:1.87-garmin imagePullPolicy: Never ports: [{ containerPort: 8083 }] env: - { name: ATM_CONFIG_URL, value: "http://servico-configuracao" } - { name: ATM_CADASTRO_URL, value: "http://servico-cadastro" } - { name: ATM_ORGANIZACAO_URL, value: "http://servico-organizacao" } - { name: ATM_PLANEJAMENTO_URL, value: "http://servico-planejamento" } - { name: ATM_CAMPEONATO_URL, value: "http://servico-campeonato" } - { name: ATM_SAUDE_URL, value: "http://servico-saude" } - { name: ATM_FINANCEIRO_URL, value: "http://servico-financeiro" } - { name: ATM_DOCUMENTOS_URL, value: "http://servico-documentos" } - { name: ATM_ADMINISTRATIVO_URL, value: "http://servico-administrativo" } - { name: ATM_ASSISTENCIA_SOCIAL_URL, value: "http://servico-assistencia-social" } - { name: ATM_PEDAGOGICO_URL, value: "http://servico-pedagogico" } - { name: ATM_NUTRICAO_URL, value: "http://servico-nutricao" } - { name: ATM_AGENDA_URL, value: "http://servico-agenda" } - { name: ATM_JWK_SET_URI, value: "http://keycloak:8080/realms/athleticmap/protocol/openid-connect/certs" } - { name: ATM_ISSUER, value: "https://auth-escolinha.athleticmap.influxdigital.com.br/realms/athleticmap" } - { name: ATM_TENANT, value: "escolinha" } - { name: GARMIN_FRONTEND_REDIRECT, value: "https://escolinha.athleticmap.influxdigital.com.br/integracoes/garmin" } resources: requests: { cpu: 50m, memory: 256Mi } limits: { cpu: 500m, memory: 512Mi } readinessProbe: httpGet: { path: /bff/health, port: 8083 } initialDelaySeconds: 20 periodSeconds: 10 failureThreshold: 30 livenessProbe: httpGet: { path: /actuator/health/liveness, port: 8083 } initialDelaySeconds: 50 periodSeconds: 20 failureThreshold: 6 --- apiVersion: v1 kind: Service metadata: name: servico-bff namespace: escolinha-prod labels: app: servico-bff spec: selector: { app: servico-bff } ports: [{ name: http, port: 80, targetPort: 8083 }]