Files
athletic-map-deploy/tenants/plataforma/90-servico-bff.yaml
T

73 lines
3.0 KiB
YAML

# 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: plataforma-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
# 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/servico-bff:1.98-barreira-de-plano
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_JWK_SET_URI, value: "http://keycloak:8080/realms/athleticmap/protocol/openid-connect/certs" }
- { name: ATM_ISSUER, value: "https://auth-plataforma.athleticmap.influxdigital.com.br/realms/athleticmap" }
- { 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: 100m, 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: plataforma-prod
labels:
app: servico-bff
spec:
selector: { app: servico-bff }
ports: [{ name: http, port: 80, targetPort: 8083 }]