ea7da4364a
Namespace, banco, Keycloak e realm proprios, separados dos clientes e do tenant de demonstracao. Leva 4 contextos (configuracao, cadastro, financeiro, captacao) mais bff e SPA, e nao os 13 de um cliente: a Athletic Map nao e escolinha. Ingress escrito do zero, sem o stub backend legado e sem catch-all /api. Duas rotas publicas, ambas por desenho: /api/public/leads (o formulario da landing page) e /api/public/webhooks/asaas (o aviso de pagamento, que chega da internet sem token nosso). Dominio em *.athleticmap.influxdigital.com.br, e nao no canonico athleticmap.com do P0.9: aquele ainda nao tem registro A, e com desafio HTTP-01 nascer nele daria certificado nao emitido e login quebrado. Tres SealedSecret gerados para ESTE namespace, e a chave publica do backup no lugar do placeholder. As 7 imagens locais exigidas estao no no, incluindo servico-captacao:1.0 e atm-pg-backup:1.0, construidas hoje. Preparado em P3.1 a P3.4. Validado com kubectl --dry-run: 32 documentos.
87 lines
2.3 KiB
YAML
87 lines
2.3 KiB
YAML
# Keycloak dedicado do tenant `plataforma` (IdP proprio da Athletic Map), persistindo no Postgres
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: keycloak
|
|
namespace: plataforma-prod
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: keycloak
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: keycloak
|
|
spec:
|
|
containers:
|
|
- name: keycloak
|
|
image: quay.io/keycloak/keycloak:26.0
|
|
args: ["start-dev", "--import-realm"]
|
|
env:
|
|
- name: KC_DB
|
|
value: postgres
|
|
- name: KC_DB_URL
|
|
value: "jdbc:postgresql://postgres:5432/keycloak?sslmode=require"
|
|
- name: KC_DB_USERNAME
|
|
value: atm
|
|
- name: KC_DB_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: db-credentials
|
|
key: password
|
|
- name: KC_BOOTSTRAP_ADMIN_USERNAME
|
|
value: admin
|
|
- name: KC_BOOTSTRAP_ADMIN_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: keycloak-admin
|
|
key: password
|
|
- name: KC_HEALTH_ENABLED
|
|
value: "true"
|
|
- name: KC_HTTP_ENABLED
|
|
value: "true"
|
|
- name: KC_PROXY_HEADERS
|
|
value: xforwarded
|
|
- name: KC_HOSTNAME
|
|
value: "auth-plataforma.athleticmap.influxdigital.com.br"
|
|
- name: KC_HOSTNAME_STRICT
|
|
value: "true"
|
|
ports:
|
|
- containerPort: 8080
|
|
- containerPort: 9000
|
|
resources:
|
|
requests:
|
|
cpu: 250m
|
|
memory: 512Mi
|
|
limits:
|
|
cpu: "1"
|
|
memory: 1Gi
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /health/ready
|
|
port: 9000
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 10
|
|
failureThreshold: 40
|
|
volumeMounts:
|
|
- name: realm-import
|
|
mountPath: /opt/keycloak/data/import
|
|
readOnly: true
|
|
volumes:
|
|
- name: realm-import
|
|
configMap:
|
|
name: kc-realm-import
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: keycloak
|
|
namespace: plataforma-prod
|
|
spec:
|
|
selector:
|
|
app: keycloak
|
|
ports:
|
|
- port: 8080
|
|
targetPort: 8080
|