From 28b493accc6a41c9f232c307620dc07a888a8141 Mon Sep 17 00:00:00 2001 From: deploy Date: Sat, 26 Sep 2026 16:34:12 +0000 Subject: [PATCH] =?UTF-8?q?feat(tenants):=20BFF=20funde=20no=20pod=20do=20?= =?UTF-8?q?frontend-spa=20(P4.6)=20=E2=80=94=20Service=20fica,=20so=20o=20?= =?UTF-8?q?selector=20muda;=20Garmin=20e=20Prometheus=20continuam=20aponta?= =?UTF-8?q?ndo=20pro=20mesmo=20nome?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tenants/acme/90-servico-bff.yaml | 73 +++++------------------------ tenants/acme/95-frontend-spa.yaml | 50 +++++++++++++++++++- tenants/demo/90-servico-bff.yaml | 73 +++++------------------------ tenants/demo/95-frontend-spa.yaml | 50 +++++++++++++++++++- tenants/piloto/90-servico-bff.yaml | 73 +++++------------------------ tenants/piloto/95-frontend-spa.yaml | 50 +++++++++++++++++++- 6 files changed, 183 insertions(+), 186 deletions(-) diff --git a/tenants/acme/90-servico-bff.yaml b/tenants/acme/90-servico-bff.yaml index 5a30e29..11e7aeb 100644 --- a/tenants/acme/90-servico-bff.yaml +++ b/tenants/acme/90-servico-bff.yaml @@ -1,63 +1,14 @@ -# 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: acme-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:2.0-atualiza-4-antigos - 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-acme.athleticmap.com/realms/athleticmap" } - - name: ATM_CONSENTIMENTO_SEGREDO - valueFrom: { secretKeyRef: { name: consentimento-selo, key: segredo } } - - { name: ATM_TENANT, value: "acme" } - - { name: ATM_PLANO, value: "institucional" } - - { name: GARMIN_FRONTEND_REDIRECT, value: "https://acme.athleticmap.com/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 ---- +# ============================================================================= +# So o Service. O Deployment foi FUNDIDO no pod do frontend-spa (P4.6, +# 2026-09-26) — ver 95-frontend-spa.yaml, segundo container. Esta linha +# de servico continua existindo porque: +# 1. tenants/escolinha/96-ingress-garmin-public.yaml aponta DIRETO +# para este Service (o webhook do Garmin nao passa pelo nginx); +# 2. o Prometheus raspa por ele (athleticmap.io/metricas: tenant). +# O `selector` mudou de `app: servico-bff` para o rotulo do pod +# fundido (athleticmap.io/bff-aqui); nome e porta do Service NAO mudaram — o +# Ingress do Garmin nao precisou de nenhuma edicao. +# ============================================================================= apiVersion: v1 kind: Service metadata: @@ -66,5 +17,5 @@ metadata: labels: app: servico-bff spec: - selector: { app: servico-bff } + selector: { athleticmap.io/bff-aqui: "true" } ports: [{ name: http, port: 80, targetPort: 8083 }] diff --git a/tenants/acme/95-frontend-spa.yaml b/tenants/acme/95-frontend-spa.yaml index 825041d..0f00e1c 100644 --- a/tenants/acme/95-frontend-spa.yaml +++ b/tenants/acme/95-frontend-spa.yaml @@ -17,6 +17,7 @@ spec: labels: app: frontend-spa athleticmap.io/contexto: frontend + athleticmap.io/bff-aqui: "true" spec: containers: - name: frontend-spa @@ -44,7 +45,15 @@ spec: - { name: ATM_API_CORE_URL, value: "http://runtime-core.acme-prod.svc.cluster.local" } - { name: ATM_API_OPERACAO_URL, value: "http://runtime-operacao.acme-prod.svc.cluster.local" } - { name: ATM_API_SAUDE_URL, value: "http://runtime-saude.acme-prod.svc.cluster.local" } - - { name: ATM_BFF_URL, value: "http://servico-bff.acme-prod.svc.cluster.local" } + # P4.6 fechado 2026-09-26: o BFF e o SEGUNDO CONTAINER deste + # mesmo pod (ver o container 'servico-bff' abaixo) — sem + # Deployment proprio. `127.0.0.1` porque os dois containers + # do pod compartilham a rede. O Service `servico-bff` continua + # existindo, so com o `selector` mudado para o rotulo + # `athleticmap.io/bff-aqui` deste pod — quem aponta direto para ele + # (o webhook do Garmin do escolinha, e o Prometheus) nao + # precisou de nenhuma edicao. + - { name: ATM_BFF_URL, value: "http://127.0.0.1:8083" } - { name: ATM_API_URL, value: "http://servico-bff.acme-prod.svc.cluster.local" } resources: requests: { cpu: 50m, memory: 64Mi } @@ -57,6 +66,45 @@ spec: httpGet: { path: /, port: 80 } initialDelaySeconds: 5 periodSeconds: 10 + - name: servico-bff + image: docker.io/library/servico-bff:2.0-atualiza-4-antigos + 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-acme.athleticmap.com/realms/athleticmap" } + - name: ATM_CONSENTIMENTO_SEGREDO + valueFrom: { secretKeyRef: { name: consentimento-selo, key: segredo } } + - { name: ATM_TENANT, value: "acme" } + - { name: ATM_PLANO, value: "institucional" } + - { name: GARMIN_FRONTEND_REDIRECT, value: "https://acme.athleticmap.com/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 + volumes: - name: publico projected: diff --git a/tenants/demo/90-servico-bff.yaml b/tenants/demo/90-servico-bff.yaml index e89b5f5..eb992c6 100644 --- a/tenants/demo/90-servico-bff.yaml +++ b/tenants/demo/90-servico-bff.yaml @@ -1,63 +1,14 @@ -# 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: demo-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:2.0-atualiza-4-antigos - 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-demo.athleticmap.com/realms/athleticmap" } - - name: ATM_CONSENTIMENTO_SEGREDO - valueFrom: { secretKeyRef: { name: consentimento-selo, key: segredo } } - - { name: ATM_TENANT, value: "demo" } - - { name: ATM_PLANO, value: "institucional" } - - { name: GARMIN_FRONTEND_REDIRECT, value: "https://demo.athleticmap.com/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 ---- +# ============================================================================= +# So o Service. O Deployment foi FUNDIDO no pod do frontend-spa (P4.6, +# 2026-09-26) — ver 95-frontend-spa.yaml, segundo container. Esta linha +# de servico continua existindo porque: +# 1. tenants/escolinha/96-ingress-garmin-public.yaml aponta DIRETO +# para este Service (o webhook do Garmin nao passa pelo nginx); +# 2. o Prometheus raspa por ele (athleticmap.io/metricas: tenant). +# O `selector` mudou de `app: servico-bff` para o rotulo do pod +# fundido (athleticmap.io/bff-aqui); nome e porta do Service NAO mudaram — o +# Ingress do Garmin nao precisou de nenhuma edicao. +# ============================================================================= apiVersion: v1 kind: Service metadata: @@ -66,5 +17,5 @@ metadata: labels: app: servico-bff spec: - selector: { app: servico-bff } + selector: { athleticmap.io/bff-aqui: "true" } ports: [{ name: http, port: 80, targetPort: 8083 }] diff --git a/tenants/demo/95-frontend-spa.yaml b/tenants/demo/95-frontend-spa.yaml index 6e8d9d1..a3eb316 100644 --- a/tenants/demo/95-frontend-spa.yaml +++ b/tenants/demo/95-frontend-spa.yaml @@ -17,6 +17,7 @@ spec: labels: app: frontend-spa athleticmap.io/contexto: frontend + athleticmap.io/bff-aqui: "true" spec: containers: - name: frontend-spa @@ -44,7 +45,15 @@ spec: - { name: ATM_API_CORE_URL, value: "http://runtime-core.demo-prod.svc.cluster.local" } - { name: ATM_API_OPERACAO_URL, value: "http://runtime-operacao.demo-prod.svc.cluster.local" } - { name: ATM_API_SAUDE_URL, value: "http://runtime-saude.demo-prod.svc.cluster.local" } - - { name: ATM_BFF_URL, value: "http://servico-bff.demo-prod.svc.cluster.local" } + # P4.6 fechado 2026-09-26: o BFF e o SEGUNDO CONTAINER deste + # mesmo pod (ver o container 'servico-bff' abaixo) — sem + # Deployment proprio. `127.0.0.1` porque os dois containers + # do pod compartilham a rede. O Service `servico-bff` continua + # existindo, so com o `selector` mudado para o rotulo + # `athleticmap.io/bff-aqui` deste pod — quem aponta direto para ele + # (o webhook do Garmin do escolinha, e o Prometheus) nao + # precisou de nenhuma edicao. + - { name: ATM_BFF_URL, value: "http://127.0.0.1:8083" } - { name: ATM_API_URL, value: "http://servico-bff.demo-prod.svc.cluster.local" } resources: requests: { cpu: 50m, memory: 64Mi } @@ -57,6 +66,45 @@ spec: httpGet: { path: /, port: 80 } initialDelaySeconds: 5 periodSeconds: 10 + - name: servico-bff + image: docker.io/library/servico-bff:2.0-atualiza-4-antigos + 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-demo.athleticmap.com/realms/athleticmap" } + - name: ATM_CONSENTIMENTO_SEGREDO + valueFrom: { secretKeyRef: { name: consentimento-selo, key: segredo } } + - { name: ATM_TENANT, value: "demo" } + - { name: ATM_PLANO, value: "institucional" } + - { name: GARMIN_FRONTEND_REDIRECT, value: "https://demo.athleticmap.com/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 + volumes: - name: publico projected: diff --git a/tenants/piloto/90-servico-bff.yaml b/tenants/piloto/90-servico-bff.yaml index 50161d5..884ff8d 100644 --- a/tenants/piloto/90-servico-bff.yaml +++ b/tenants/piloto/90-servico-bff.yaml @@ -1,63 +1,14 @@ -# 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: piloto-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:2.0-atualiza-4-antigos - 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-piloto.athleticmap.com/realms/athleticmap" } - - name: ATM_CONSENTIMENTO_SEGREDO - valueFrom: { secretKeyRef: { name: consentimento-selo, key: segredo } } - - { name: ATM_TENANT, value: "piloto" } - - { name: ATM_PLANO, value: "institucional" } - - { name: GARMIN_FRONTEND_REDIRECT, value: "https://piloto.athleticmap.com/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 ---- +# ============================================================================= +# So o Service. O Deployment foi FUNDIDO no pod do frontend-spa (P4.6, +# 2026-09-26) — ver 95-frontend-spa.yaml, segundo container. Esta linha +# de servico continua existindo porque: +# 1. tenants/escolinha/96-ingress-garmin-public.yaml aponta DIRETO +# para este Service (o webhook do Garmin nao passa pelo nginx); +# 2. o Prometheus raspa por ele (athleticmap.io/metricas: tenant). +# O `selector` mudou de `app: servico-bff` para o rotulo do pod +# fundido (athleticmap.io/bff-aqui); nome e porta do Service NAO mudaram — o +# Ingress do Garmin nao precisou de nenhuma edicao. +# ============================================================================= apiVersion: v1 kind: Service metadata: @@ -66,5 +17,5 @@ metadata: labels: app: servico-bff spec: - selector: { app: servico-bff } + selector: { athleticmap.io/bff-aqui: "true" } ports: [{ name: http, port: 80, targetPort: 8083 }] diff --git a/tenants/piloto/95-frontend-spa.yaml b/tenants/piloto/95-frontend-spa.yaml index 7a96ea4..158b1e1 100644 --- a/tenants/piloto/95-frontend-spa.yaml +++ b/tenants/piloto/95-frontend-spa.yaml @@ -17,6 +17,7 @@ spec: labels: app: frontend-spa athleticmap.io/contexto: frontend + athleticmap.io/bff-aqui: "true" spec: containers: - name: frontend-spa @@ -44,7 +45,15 @@ spec: - { name: ATM_API_CORE_URL, value: "http://runtime-core.piloto-prod.svc.cluster.local" } - { name: ATM_API_OPERACAO_URL, value: "http://runtime-operacao.piloto-prod.svc.cluster.local" } - { name: ATM_API_SAUDE_URL, value: "http://runtime-saude.piloto-prod.svc.cluster.local" } - - { name: ATM_BFF_URL, value: "http://servico-bff.piloto-prod.svc.cluster.local" } + # P4.6 fechado 2026-09-26: o BFF e o SEGUNDO CONTAINER deste + # mesmo pod (ver o container 'servico-bff' abaixo) — sem + # Deployment proprio. `127.0.0.1` porque os dois containers + # do pod compartilham a rede. O Service `servico-bff` continua + # existindo, so com o `selector` mudado para o rotulo + # `athleticmap.io/bff-aqui` deste pod — quem aponta direto para ele + # (o webhook do Garmin do escolinha, e o Prometheus) nao + # precisou de nenhuma edicao. + - { name: ATM_BFF_URL, value: "http://127.0.0.1:8083" } - { name: ATM_API_URL, value: "http://servico-bff.piloto-prod.svc.cluster.local" } resources: requests: { cpu: 50m, memory: 64Mi } @@ -57,6 +66,45 @@ spec: httpGet: { path: /, port: 80 } initialDelaySeconds: 5 periodSeconds: 10 + - name: servico-bff + image: docker.io/library/servico-bff:2.0-atualiza-4-antigos + 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-piloto.athleticmap.com/realms/athleticmap" } + - name: ATM_CONSENTIMENTO_SEGREDO + valueFrom: { secretKeyRef: { name: consentimento-selo, key: segredo } } + - { name: ATM_TENANT, value: "piloto" } + - { name: ATM_PLANO, value: "institucional" } + - { name: GARMIN_FRONTEND_REDIRECT, value: "https://piloto.athleticmap.com/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 + volumes: - name: publico projected: