chore(plataforma): quatro manifestos ainda em CRLF passam para LF (YAML conferido identico antes/depois)

This commit is contained in:
deploy
2026-09-26 17:06:27 +00:00
parent 0b6c47cb88
commit 3a2824bfa8
4 changed files with 272 additions and 272 deletions
+43 -43
View File
@@ -1,43 +1,43 @@
# ============================================================================
# Credenciais do Asaas do tenant `plataforma`. Geradas em 2026-09-17 (P3.3); token do webhook rotacionado
# em 2026-09-23.
#
# PODE SER COMMITADO: cifrado para ESTE cluster e preso ao nome
# `asaas-credentials` no namespace `plataforma-prod`.
#
# Sao DOIS segredos por desenho: `api-key` autoriza COBRAR e MOVIMENTAR
# DINHEIRO; `webhook-token` so autoriza alguem a nos AVISAR que algo aconteceu.
# `AsaasConfig` recusa subir o pod se forem iguais.
#
# O `webhook-token` tem de estar cadastrado no painel do Asaas, no campo "Token
# de autenticacao" do webhook. Se ele for regerado aqui sem ser atualizado la, os
# avisos passam a ser recusados — e 15 recusas seguidas param a fila da conta.
#
# PARA REGERAR: `scripts/gerar_credenciais_plataforma.sh asaas` (pede a chave de
# producao do painel). Passo a passo da ligacao em
# `docs/p33-ligar-o-asaas-de-producao.md`.
#
# 2026-09-23: o token do webhook NAO precisa mais ser digitado no painel. O
# `gerar_credenciais_plataforma.sh asaas` grava o valor no webhook de cobranca
# pela API (`PUT /v3/webhooks/{id}`, alvo escolhido pela URL terminando em
# `/webhooks/asaas`), entao os dois lados viram juntos e ninguem ve o valor.
#
# Este cabecalho ja se perdeu uma vez, porque o `kubeseal` devolve YAML limpo.
# O `gravar()` do script passou a preserva-lo.
# ============================================================================
---
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
creationTimestamp: null
name: asaas-credentials
namespace: plataforma-prod
spec:
encryptedData:
api-key: AgBiaakijMDkM2tResLKR+TMTbvrHiTQgRMQkItjJbfqjDad1eHJ7Ot6PzOR+aApC7zGRP/PonFZQ6i7Yyj+arSTT4F6Wl16cIjGS+QNorKnHu3kbEuytgi9zb/6fYbw3DW9K2AQ5SXCU65ptpMY4FXhjzec+c7dBKxAM2l1nEq/Xysa6EUOtVdlvEYisfMEpRQj3MgyOjiVupEvasCDVVDOXreuQuKcPw6Gee6c7gxPpSpnTQ2Osb9Ssol35aXoXAuTCiiInZQk2TOdJ6MbqF/BnBp21SGgl9zYkS0y/V9InbbcsHjNKsq+d9pu8GDkm4i9+y952293ozgey6C3N2RxETtCrREwK9eXbXtvXoatgC/MQ1G41PWjBKRWUwJO1MLf1hsGiP3QDzxOjPgEAYm8B65yVm23JhvWkxnV85EiZSSbqv1OU2+k4vREGavpqqwm5JSvwW34aFGBsiuaCrp5JQ/R1BxpGGfCMTwkCIVPL3CgKTRB4mBB2yjKOG0sT159BMr1xJGNisPXLmHp1jufuldAXnqMF6fkJZgPjrNg0XuZEPbYDN9reNmB2m/ECr/qJYAvJVD5hq4eaNDTJru2rf0Dg6bNuUb5vbXNuJvR9OIMy3lL5hXhpZFI/Upd/a1PGRsgYkGwvEUTf1KMHnWD2uIGsFLYqUjAP5Ge2Xz5IUlMfOfYUUO9FF04Wz9Z2npPF561vyNM8RZbSnwHBelErtky1z9P7FRopTBTwiyVdS7GAhnWAy0T3XbJHCqtgepcVvuHBBmxKznHIHm0zCTJ8JmyTDzAcG9Zeu0F9G9kQxeCkH9IRMf+JmYVXgqRBVXwXxjKtym4ru1Hvjg9lr2XaoVv8le9qQc+rO+uQ8uFoJXliEe0To/OqImPDcFIGeNrwOi0+GyRlMDdyinzmF/fhYQibSP7
webhook-token: AgAJ+5MCIt6JxBA2exMY4ZmXy//HOsDA8ZyUR1eZSkm0vN9KJ/nDZwEsiyyTK4+ZbFNOqyS3Cki6LiRhlPRuKQCeF8BiQBNkeWkrrXMq+wBhfzQivwGLfFuQj2whYw+lcxlcReEiwKNiVDGvqQu+weQB8MLg+huEV3InZ+0AAgSRXyTD2qDgIEt61kg87Fd+kRzieq+icrpUjfSmm8l0d3Sre5sYxSJ4jrVvCBWqiG4456+JglVbht62Tfjj0uFs3jQanhVK8N6h4ZkLyow7ke5QcrNjnacK5VB+TeH3TTbtPj3KcumXvqpxd2sPxRPq42P9QBnMz9yi9EBp1vY9NgwKZkgrhXP7mStp2EkYBTX4N2vOWXmHTMR6iW5kh67VcM2nl6ME1z9unT+iWsw7MclcUocjfZhsTUT18m6PUHqxzdRoPvYxag6KwDoNweQ3K1ut4xI/anzocBJFJG76Q3w+lk5vK2QypzlXS3rj0ArCyex+ZxNtXZgDhXDW1OvJXaLZ0jJQ6+dhNYGKx3Kdr5WBJ+Cxxxe8RCkC9excb38tR6NDQyFnYL1Rd0syE8JWayYeYAqCPoaiAxDcHj7P76BTs2BUsRGMSC6P+V1paYXkYcUvaKrmqndtFSA81M0XSOtTXKPE+mFeNpc+dr693/hYvLwUuk5vZsAy8Ftv3hHaGNa0/cAeGNQwyT8jwjp8AIsk2pHwEnWK8PKYYzdTPZ+tN90eZm/r2LxCjCmHHxvbvg==
template:
metadata:
creationTimestamp: null
name: asaas-credentials
namespace: plataforma-prod
# ============================================================================
# Credenciais do Asaas do tenant `plataforma`. Geradas em 2026-09-17 (P3.3); token do webhook rotacionado
# em 2026-09-23.
#
# PODE SER COMMITADO: cifrado para ESTE cluster e preso ao nome
# `asaas-credentials` no namespace `plataforma-prod`.
#
# Sao DOIS segredos por desenho: `api-key` autoriza COBRAR e MOVIMENTAR
# DINHEIRO; `webhook-token` so autoriza alguem a nos AVISAR que algo aconteceu.
# `AsaasConfig` recusa subir o pod se forem iguais.
#
# O `webhook-token` tem de estar cadastrado no painel do Asaas, no campo "Token
# de autenticacao" do webhook. Se ele for regerado aqui sem ser atualizado la, os
# avisos passam a ser recusados — e 15 recusas seguidas param a fila da conta.
#
# PARA REGERAR: `scripts/gerar_credenciais_plataforma.sh asaas` (pede a chave de
# producao do painel). Passo a passo da ligacao em
# `docs/p33-ligar-o-asaas-de-producao.md`.
#
# 2026-09-23: o token do webhook NAO precisa mais ser digitado no painel. O
# `gerar_credenciais_plataforma.sh asaas` grava o valor no webhook de cobranca
# pela API (`PUT /v3/webhooks/{id}`, alvo escolhido pela URL terminando em
# `/webhooks/asaas`), entao os dois lados viram juntos e ninguem ve o valor.
#
# Este cabecalho ja se perdeu uma vez, porque o `kubeseal` devolve YAML limpo.
# O `gravar()` do script passou a preserva-lo.
# ============================================================================
---
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
creationTimestamp: null
name: asaas-credentials
namespace: plataforma-prod
spec:
encryptedData:
api-key: AgBiaakijMDkM2tResLKR+TMTbvrHiTQgRMQkItjJbfqjDad1eHJ7Ot6PzOR+aApC7zGRP/PonFZQ6i7Yyj+arSTT4F6Wl16cIjGS+QNorKnHu3kbEuytgi9zb/6fYbw3DW9K2AQ5SXCU65ptpMY4FXhjzec+c7dBKxAM2l1nEq/Xysa6EUOtVdlvEYisfMEpRQj3MgyOjiVupEvasCDVVDOXreuQuKcPw6Gee6c7gxPpSpnTQ2Osb9Ssol35aXoXAuTCiiInZQk2TOdJ6MbqF/BnBp21SGgl9zYkS0y/V9InbbcsHjNKsq+d9pu8GDkm4i9+y952293ozgey6C3N2RxETtCrREwK9eXbXtvXoatgC/MQ1G41PWjBKRWUwJO1MLf1hsGiP3QDzxOjPgEAYm8B65yVm23JhvWkxnV85EiZSSbqv1OU2+k4vREGavpqqwm5JSvwW34aFGBsiuaCrp5JQ/R1BxpGGfCMTwkCIVPL3CgKTRB4mBB2yjKOG0sT159BMr1xJGNisPXLmHp1jufuldAXnqMF6fkJZgPjrNg0XuZEPbYDN9reNmB2m/ECr/qJYAvJVD5hq4eaNDTJru2rf0Dg6bNuUb5vbXNuJvR9OIMy3lL5hXhpZFI/Upd/a1PGRsgYkGwvEUTf1KMHnWD2uIGsFLYqUjAP5Ge2Xz5IUlMfOfYUUO9FF04Wz9Z2npPF561vyNM8RZbSnwHBelErtky1z9P7FRopTBTwiyVdS7GAhnWAy0T3XbJHCqtgepcVvuHBBmxKznHIHm0zCTJ8JmyTDzAcG9Zeu0F9G9kQxeCkH9IRMf+JmYVXgqRBVXwXxjKtym4ru1Hvjg9lr2XaoVv8le9qQc+rO+uQ8uFoJXliEe0To/OqImPDcFIGeNrwOi0+GyRlMDdyinzmF/fhYQibSP7
webhook-token: AgAJ+5MCIt6JxBA2exMY4ZmXy//HOsDA8ZyUR1eZSkm0vN9KJ/nDZwEsiyyTK4+ZbFNOqyS3Cki6LiRhlPRuKQCeF8BiQBNkeWkrrXMq+wBhfzQivwGLfFuQj2whYw+lcxlcReEiwKNiVDGvqQu+weQB8MLg+huEV3InZ+0AAgSRXyTD2qDgIEt61kg87Fd+kRzieq+icrpUjfSmm8l0d3Sre5sYxSJ4jrVvCBWqiG4456+JglVbht62Tfjj0uFs3jQanhVK8N6h4ZkLyow7ke5QcrNjnacK5VB+TeH3TTbtPj3KcumXvqpxd2sPxRPq42P9QBnMz9yi9EBp1vY9NgwKZkgrhXP7mStp2EkYBTX4N2vOWXmHTMR6iW5kh67VcM2nl6ME1z9unT+iWsw7MclcUocjfZhsTUT18m6PUHqxzdRoPvYxag6KwDoNweQ3K1ut4xI/anzocBJFJG76Q3w+lk5vK2QypzlXS3rj0ArCyex+ZxNtXZgDhXDW1OvJXaLZ0jJQ6+dhNYGKx3Kdr5WBJ+Cxxxe8RCkC9excb38tR6NDQyFnYL1Rd0syE8JWayYeYAqCPoaiAxDcHj7P76BTs2BUsRGMSC6P+V1paYXkYcUvaKrmqndtFSA81M0XSOtTXKPE+mFeNpc+dr693/hYvLwUuk5vZsAy8Ftv3hHaGNa0/cAeGNQwyT8jwjp8AIsk2pHwEnWK8PKYYzdTPZ+tN90eZm/r2LxCjCmHHxvbvg==
template:
metadata:
creationTimestamp: null
name: asaas-credentials
namespace: plataforma-prod
+68 -68
View File
@@ -1,68 +1,68 @@
# Bounded context "configuracao" como app proprio (ADR-0002): Deployment/pod
# medivel = centro de custo. Schema proprio "configuracao" no Postgres do silo
# (criado pelo Flyway). Roteado em /api/configuracao no ingress do tenant.
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: servico-configuracao
namespace: plataforma-prod
labels:
app: servico-configuracao
athleticmap.io/contexto: configuracao
spec:
replicas: 1
selector: { matchLabels: { app: servico-configuracao } }
template:
metadata:
labels:
app: servico-configuracao
athleticmap.io/contexto: configuracao
spec:
containers:
- name: servico-configuracao
# 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-configuracao:1.10-categoria-modalidade
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: 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" }
resources:
requests: { cpu: 150m, memory: 320Mi }
limits: { cpu: "1", memory: 768Mi }
readinessProbe:
httpGet: { path: /api/configuracao/health, port: 8083 }
initialDelaySeconds: 25
periodSeconds: 10
failureThreshold: 30
livenessProbe:
httpGet: { path: /actuator/health/liveness, port: 8083 }
initialDelaySeconds: 60
periodSeconds: 20
failureThreshold: 6
---
apiVersion: v1
kind: Service
metadata:
name: servico-configuracao
namespace: plataforma-prod
labels:
app: servico-configuracao
spec:
selector: { app: servico-configuracao }
ports: [{ name: http, port: 80, targetPort: 8083 }]
# Bounded context "configuracao" como app proprio (ADR-0002): Deployment/pod
# medivel = centro de custo. Schema proprio "configuracao" no Postgres do silo
# (criado pelo Flyway). Roteado em /api/configuracao no ingress do tenant.
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: servico-configuracao
namespace: plataforma-prod
labels:
app: servico-configuracao
athleticmap.io/contexto: configuracao
spec:
replicas: 1
selector: { matchLabels: { app: servico-configuracao } }
template:
metadata:
labels:
app: servico-configuracao
athleticmap.io/contexto: configuracao
spec:
containers:
- name: servico-configuracao
# 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-configuracao:1.10-categoria-modalidade
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: 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" }
resources:
requests: { cpu: 150m, memory: 320Mi }
limits: { cpu: "1", memory: 768Mi }
readinessProbe:
httpGet: { path: /api/configuracao/health, port: 8083 }
initialDelaySeconds: 25
periodSeconds: 10
failureThreshold: 30
livenessProbe:
httpGet: { path: /actuator/health/liveness, port: 8083 }
initialDelaySeconds: 60
periodSeconds: 20
failureThreshold: 6
---
apiVersion: v1
kind: Service
metadata:
name: servico-configuracao
namespace: plataforma-prod
labels:
app: servico-configuracao
spec:
selector: { app: servico-configuracao }
ports: [{ name: http, port: 80, targetPort: 8083 }]
+93 -93
View File
@@ -1,93 +1,93 @@
# Bounded context "financeiro" (2a onda): Cobranca + ApuracaoRateio (centros de custo).
# Schema proprio "financeiro" (Flyway). Roteado em /api/financeiro no ingress.
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: servico-financeiro
namespace: plataforma-prod
labels:
app: servico-financeiro
athleticmap.io/contexto: financeiro
spec:
replicas: 1
selector: { matchLabels: { app: servico-financeiro } }
template:
metadata:
labels:
app: servico-financeiro
athleticmap.io/contexto: financeiro
spec:
containers:
- name: servico-financeiro
# 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-financeiro:1.6-assinatura
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: 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" }
# 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" }
# ── Asaas de PRODUCAO (P3.3) ──────────────────────────────────
# Aqui e o tenant da plataforma: a conta Asaas e a da propria
# Athletic Map, e nao a de um cliente.
#
# O rotulo `ASAAS_AMBIENTE` e a URL tem de concordar. Se nao
# concordarem, `AsaasClient` RECUSA a emissao — de proposito:
# producao apontando para sandbox faria a cobranca "funcionar" sem
# ninguem pagar de verdade, que e o erro caro e silencioso.
- { name: ASAAS_BASE_URL, value: "https://api.asaas.com/v3" }
- { name: ASAAS_AMBIENTE, value: "producao" }
- { name: ASAAS_USER_AGENT, value: "AthleticMap/plataforma" }
# Os DOIS segredos sao separados, e nao por preciosismo: a API Key
# autoriza movimentar dinheiro; o token do webhook so autoriza
# alguem a nos avisar que algo aconteceu. Se forem iguais,
# `AsaasConfig` RECUSA subir o pod.
- 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: 150m, memory: 320Mi }
limits: { cpu: "1", memory: 768Mi }
readinessProbe:
httpGet: { path: /api/financeiro/health, port: 8083 }
initialDelaySeconds: 25
periodSeconds: 10
failureThreshold: 30
livenessProbe:
httpGet: { path: /actuator/health/liveness, port: 8083 }
initialDelaySeconds: 60
periodSeconds: 20
failureThreshold: 6
---
apiVersion: v1
kind: Service
metadata:
name: servico-financeiro
namespace: plataforma-prod
labels:
app: servico-financeiro
spec:
selector: { app: servico-financeiro }
ports: [{ name: http, port: 80, targetPort: 8083 }]
# Bounded context "financeiro" (2a onda): Cobranca + ApuracaoRateio (centros de custo).
# Schema proprio "financeiro" (Flyway). Roteado em /api/financeiro no ingress.
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: servico-financeiro
namespace: plataforma-prod
labels:
app: servico-financeiro
athleticmap.io/contexto: financeiro
spec:
replicas: 1
selector: { matchLabels: { app: servico-financeiro } }
template:
metadata:
labels:
app: servico-financeiro
athleticmap.io/contexto: financeiro
spec:
containers:
- name: servico-financeiro
# 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-financeiro:1.6-assinatura
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: 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" }
# 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" }
# ── Asaas de PRODUCAO (P3.3) ──────────────────────────────────
# Aqui e o tenant da plataforma: a conta Asaas e a da propria
# Athletic Map, e nao a de um cliente.
#
# O rotulo `ASAAS_AMBIENTE` e a URL tem de concordar. Se nao
# concordarem, `AsaasClient` RECUSA a emissao — de proposito:
# producao apontando para sandbox faria a cobranca "funcionar" sem
# ninguem pagar de verdade, que e o erro caro e silencioso.
- { name: ASAAS_BASE_URL, value: "https://api.asaas.com/v3" }
- { name: ASAAS_AMBIENTE, value: "producao" }
- { name: ASAAS_USER_AGENT, value: "AthleticMap/plataforma" }
# Os DOIS segredos sao separados, e nao por preciosismo: a API Key
# autoriza movimentar dinheiro; o token do webhook so autoriza
# alguem a nos avisar que algo aconteceu. Se forem iguais,
# `AsaasConfig` RECUSA subir o pod.
- 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: 150m, memory: 320Mi }
limits: { cpu: "1", memory: 768Mi }
readinessProbe:
httpGet: { path: /api/financeiro/health, port: 8083 }
initialDelaySeconds: 25
periodSeconds: 10
failureThreshold: 30
livenessProbe:
httpGet: { path: /actuator/health/liveness, port: 8083 }
initialDelaySeconds: 60
periodSeconds: 20
failureThreshold: 6
---
apiVersion: v1
kind: Service
metadata:
name: servico-financeiro
namespace: plataforma-prod
labels:
app: servico-financeiro
spec:
selector: { app: servico-financeiro }
ports: [{ name: http, port: 80, targetPort: 8083 }]
+68 -68
View File
@@ -1,68 +1,68 @@
# Bounded context "cadastro" como app proprio (ADR-0002/0003): Deployment/pod
# medivel = centro de custo. Schema proprio "cadastro" no Postgres do silo
# (criado pelo Flyway). Roteado em /api/cadastro no ingress do tenant.
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: servico-cadastro
namespace: plataforma-prod
labels:
app: servico-cadastro
athleticmap.io/contexto: cadastro
spec:
replicas: 1
selector: { matchLabels: { app: servico-cadastro } }
template:
metadata:
labels:
app: servico-cadastro
athleticmap.io/contexto: cadastro
spec:
containers:
- name: servico-cadastro
# 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-cadastro:1.20-posicao-e-listas
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: 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" }
resources:
requests: { cpu: 150m, memory: 320Mi }
limits: { cpu: "1", memory: 768Mi }
readinessProbe:
httpGet: { path: /api/cadastro/health, port: 8083 }
initialDelaySeconds: 25
periodSeconds: 10
failureThreshold: 30
livenessProbe:
httpGet: { path: /actuator/health/liveness, port: 8083 }
initialDelaySeconds: 60
periodSeconds: 20
failureThreshold: 6
---
apiVersion: v1
kind: Service
metadata:
name: servico-cadastro
namespace: plataforma-prod
labels:
app: servico-cadastro
spec:
selector: { app: servico-cadastro }
ports: [{ name: http, port: 80, targetPort: 8083 }]
# Bounded context "cadastro" como app proprio (ADR-0002/0003): Deployment/pod
# medivel = centro de custo. Schema proprio "cadastro" no Postgres do silo
# (criado pelo Flyway). Roteado em /api/cadastro no ingress do tenant.
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: servico-cadastro
namespace: plataforma-prod
labels:
app: servico-cadastro
athleticmap.io/contexto: cadastro
spec:
replicas: 1
selector: { matchLabels: { app: servico-cadastro } }
template:
metadata:
labels:
app: servico-cadastro
athleticmap.io/contexto: cadastro
spec:
containers:
- name: servico-cadastro
# 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-cadastro:1.20-posicao-e-listas
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: 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" }
resources:
requests: { cpu: 150m, memory: 320Mi }
limits: { cpu: "1", memory: 768Mi }
readinessProbe:
httpGet: { path: /api/cadastro/health, port: 8083 }
initialDelaySeconds: 25
periodSeconds: 10
failureThreshold: 30
livenessProbe:
httpGet: { path: /actuator/health/liveness, port: 8083 }
initialDelaySeconds: 60
periodSeconds: 20
failureThreshold: 6
---
apiVersion: v1
kind: Service
metadata:
name: servico-cadastro
namespace: plataforma-prod
labels:
app: servico-cadastro
spec:
selector: { app: servico-cadastro }
ports: [{ name: http, port: 80, targetPort: 8083 }]