Files
athletic-map-deploy/tenants/escolinha/30-apps-stubs.yaml
T
atmadmin 8036569c28 feat(tenants): cria tenant escolinha (silo completo, paridade com os demais)
- tenants/escolinha gerado a partir de acme (todos os servicos + backend + keycloak + postgres + backup + monitoring + garmin)
- SealedSecrets db-credentials/keycloak-admin re-selados para escolinha-prod (senhas novas)
- garmin-oauth criado em escolinha-prod (out-of-band)
- host escolinha.athleticmap.influxdigital.com.br (DNS wildcard + TLS via cert-manager)
2026-07-28 15:35:38 +00:00

76 lines
4.1 KiB
YAML

# Apps do tenant escolinha:
# - backend: Spring Boot OAuth2 Resource Server (imagem athletic-map-backend:1.0, importada no k3s)
# - frontend: SPA OIDC Authorization Code + PKCE (keycloak-js) chamando /api/me
# - bff: stub (whoami) — sera substituido na evolucao
---
apiVersion: apps/v1
kind: Deployment
metadata: { name: backend, namespace: escolinha-prod, labels: { app: backend } }
spec:
replicas: 1
selector: { matchLabels: { app: backend } }
template:
metadata: { labels: { app: backend } }
spec:
containers:
- name: backend
image: docker.io/library/athletic-map-backend:1.3
imagePullPolicy: Never
env:
- { 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" }
ports: [{ containerPort: 8083 }]
readinessProbe:
httpGet: { path: /api/public/health, port: 8083 }
initialDelaySeconds: 20
periodSeconds: 10
failureThreshold: 24
---
apiVersion: v1
kind: Service
metadata: { name: backend, namespace: escolinha-prod, labels: { app: backend } }
spec:
selector: { app: backend }
ports: [{ name: http, port: 80, targetPort: 8083 }]
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: escolinha
namespace: escolinha-prod
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
traefik.ingress.kubernetes.io/router.middlewares: escolinha-prod-redirect-https@kubernetescrd
spec:
ingressClassName: traefik
tls:
- hosts:
- escolinha.athleticmap.influxdigital.com.br
- auth-escolinha.athleticmap.influxdigital.com.br
secretName: escolinha-tls
rules:
- host: escolinha.athleticmap.influxdigital.com.br
http:
paths:
- { path: /api/configuracao, pathType: Prefix, backend: { service: { name: servico-configuracao, port: { number: 80 } } } }
- { path: /api/cadastro, pathType: Prefix, backend: { service: { name: servico-cadastro, port: { number: 80 } } } }
- { path: /bff, pathType: Prefix, backend: { service: { name: servico-bff, port: { number: 80 } } } }
- { path: /api/organizacao, pathType: Prefix, backend: { service: { name: servico-organizacao, port: { number: 80 } } } }
- { path: /api/planejamento, pathType: Prefix, backend: { service: { name: servico-planejamento, port: { number: 80 } } } }
- { path: /api/campeonato, pathType: Prefix, backend: { service: { name: servico-campeonato, port: { number: 80 } } } }
- { path: /api/saude, pathType: Prefix, backend: { service: { name: servico-saude, port: { number: 80 } } } }
- { path: /api/financeiro, pathType: Prefix, backend: { service: { name: servico-financeiro, port: { number: 80 } } } }
- { path: /api/documentos, pathType: Prefix, backend: { service: { name: servico-documentos, port: { number: 80 } } } }
- { path: /api/administrativo, pathType: Prefix, backend: { service: { name: servico-administrativo, port: { number: 80 } } } }
- { path: /api/assistencia-social, pathType: Prefix, backend: { service: { name: servico-assistencia-social, port: { number: 80 } } } }
- { path: /api/pedagogico, pathType: Prefix, backend: { service: { name: servico-pedagogico, port: { number: 80 } } } }
- { path: /api/nutricao, pathType: Prefix, backend: { service: { name: servico-nutricao, port: { number: 80 } } } }
- { path: /api/agenda, pathType: Prefix, backend: { service: { name: servico-agenda, port: { number: 80 } } } }
- { path: /api, pathType: Prefix, backend: { service: { name: backend, port: { number: 80 } } } }
- { path: /, pathType: Prefix, backend: { service: { name: frontend-spa, port: { number: 80 } } } }
- host: auth-escolinha.athleticmap.influxdigital.com.br
http:
paths:
- { path: /, pathType: Prefix, backend: { service: { name: keycloak, port: { number: 8080 } } } }