89 lines
3.9 KiB
YAML
89 lines
3.9 KiB
YAML
# RASCUNHO — tenants/plataforma/66-runtime-operacao.yaml (commit A). Nao aplicar daqui.
|
|
#
|
|
# runtime-operacao no tenant `plataforma`: o FINANCEIRO da Athletic Map (webhook
|
|
# Asaas, notas fiscais N18, conciliacao, mensalidades) — e, por ser o mesmo
|
|
# processo, planejamento, campeonato e administrativo, que nascem VAZIOS aqui.
|
|
#
|
|
# Substitui `servico-financeiro:1.7-n18-standalone`. O standalone so existiu
|
|
# porque o financeiro virou biblioteca em 18/09 e a plataforma precisava da
|
|
# metrica N18 (29/09, scripts/publicar_financeiro_plataforma.py). O runtime-operacao
|
|
# ja publica as mesmas series `atm_nota_fiscal_*`.
|
|
#
|
|
# Env copiado do 79-servico-financeiro.yaml atual (Asaas de PRODUCAO, conta da
|
|
# Athletic Map). CRITICOS:
|
|
# * ATM_PLANO=institucional. Sem ele o runtime nasce BRONZE e a BarreiraDePlano
|
|
# (prefixo /api/financeiro, minimo prata) responde 403 aos tres CronJobs.
|
|
# * ATM_ISSUER/JWK do realm `athleticmap` da plataforma (auth-plataforma).
|
|
# * ASAAS_API_KEY e ASAAS_WEBHOOK_TOKEN do mesmo Secret asaas-credentials
|
|
# (o AsaasConfig recusa subir se forem iguais — ja sao diferentes hoje).
|
|
# * SEM ASAAS_SPLIT_WALLET_ID: sem carteira, nao ha split (AsaasProvedorPagamento).
|
|
# * SEM ATM_CONSENTIMENTO_SEGREDO (Secret consentimento-selo nao existe aqui; o
|
|
# standalone de hoje tambem roda sem: so loga aviso). SEM desafio de campeonato.
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: runtime-operacao
|
|
namespace: plataforma-prod
|
|
labels:
|
|
app: runtime-operacao
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels: { app: runtime-operacao }
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: runtime-operacao
|
|
athleticmap.io/contexto: runtime-operacao
|
|
spec:
|
|
containers:
|
|
- name: runtime-operacao
|
|
image: docker.io/library/runtime-operacao:1.26-sem-fed-admin
|
|
imagePullPolicy: Never
|
|
ports: [{ containerPort: 8083 }]
|
|
env:
|
|
- { name: SPRING_DATASOURCE_URL, value: "jdbc:postgresql://postgres:5432/athleticmap?sslmode=require" }
|
|
- { name: SPRING_DATASOURCE_USERNAME, value: "atm" }
|
|
- name: SPRING_DATASOURCE_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef: { name: db-credentials, key: password }
|
|
- { name: SPRING_DATASOURCE_HIKARI_MAXIMUM_POOL_SIZE, value: "10" }
|
|
- { name: ATM_JWK_SET_URI, value: "http://keycloak:8080/realms/athleticmap/protocol/openid-connect/certs" }
|
|
- { name: ATM_ISSUER, value: "https://auth-plataforma.athleticmap.com/realms/athleticmap" }
|
|
- { name: ATM_TENANT, value: "plataforma" }
|
|
- { name: ATM_PLANO, value: "institucional" }
|
|
# ── Asaas de PRODUCAO (conta da Athletic Map), igual ao 79- de hoje ──
|
|
- { name: ASAAS_BASE_URL, value: "https://api.asaas.com/v3" }
|
|
- { name: ASAAS_AMBIENTE, value: "producao" }
|
|
- { name: ASAAS_USER_AGENT, value: "AthleticMap/plataforma" }
|
|
- name: ASAAS_API_KEY
|
|
valueFrom:
|
|
secretKeyRef: { name: asaas-credentials, key: api-key }
|
|
- name: ASAAS_WEBHOOK_TOKEN
|
|
valueFrom:
|
|
secretKeyRef: { name: asaas-credentials, key: webhook-token }
|
|
resources:
|
|
requests: { cpu: 50m, memory: 384Mi }
|
|
limits: { cpu: "1", memory: 768Mi }
|
|
readinessProbe:
|
|
httpGet: { path: /actuator/health/readiness, port: 8083 }
|
|
initialDelaySeconds: 25
|
|
periodSeconds: 10
|
|
failureThreshold: 30
|
|
livenessProbe:
|
|
httpGet: { path: /actuator/health/liveness, port: 8083 }
|
|
initialDelaySeconds: 90
|
|
periodSeconds: 20
|
|
failureThreshold: 6
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: runtime-operacao
|
|
namespace: plataforma-prod
|
|
labels:
|
|
app: runtime-operacao
|
|
spec:
|
|
selector: { app: runtime-operacao }
|
|
ports: [{ name: http, port: 80, targetPort: 8083 }]
|