chore(plataforma): quatro manifestos ainda em CRLF passam para LF (YAML conferido identico antes/depois)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 }]
|
||||
|
||||
@@ -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 }]
|
||||
|
||||
@@ -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 }]
|
||||
|
||||
Reference in New Issue
Block a user