fix(N16): resumo diario pelo Service interno do captacao (o nome publico nao conecta de dentro do cluster); regras de rede tenants<->captacao 8083
This commit is contained in:
@@ -162,6 +162,8 @@ spec:
|
||||
- { protocol: TCP, port: 5432 }
|
||||
- { protocol: TCP, port: 6432 }
|
||||
- { protocol: TCP, port: 8080 }
|
||||
# captacao (N16, 2026-09-29): o resumo diario vai pelo Service interno.
|
||||
- { protocol: TCP, port: 8083 }
|
||||
|
||||
# 4. HTTPS para a internet publica. Ver o cabecalho: nao da para estreitar
|
||||
# com flannel, e uma lista de CIDR de SaaS quebraria a cobranca sem aviso.
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
# 1. token do client `operacao` no realm do tenant (o mesmo das tarefas do
|
||||
# financeiro: Secret `operacao-credentials`);
|
||||
# 2. GET http://runtime-operacao/api/resumo-do-tenant (lista de 1 ou 2 meses);
|
||||
# 3. POST https://plataforma.athleticmap.com/api/public/resumo-do-tenant/{{TENANT}}
|
||||
# 3. POST http://servico-captacao.plataforma-prod.svc/api/public/resumo-do-tenant/{{TENANT}}
|
||||
# com o cabecalho `x-atm-resumo-token` — do Secret `resumo-credentials`, que
|
||||
# so vale para ESTE tenant (HMAC do nome dele com a chave da plataforma).
|
||||
#
|
||||
@@ -117,7 +117,7 @@ spec:
|
||||
- name: ISSUER_HOST
|
||||
value: auth.athleticmap.com
|
||||
- name: DESTINO
|
||||
value: https://plataforma.athleticmap.com/api/public/resumo-do-tenant/{{TENANT}}
|
||||
value: http://servico-captacao.plataforma-prod.svc/api/public/resumo-do-tenant/{{TENANT}}
|
||||
- name: CLIENT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# N16 (2026-09-29): saida do CronJob do resumo para o captacao da plataforma, pelo
|
||||
# Service interno (porta 8083 do pod). Par da 23-netpol-tenants-no-captacao da plataforma.
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: egress-captacao-compartilhado
|
||||
namespace: acme-prod
|
||||
spec:
|
||||
podSelector: {}
|
||||
policyTypes: [Egress]
|
||||
egress:
|
||||
- to:
|
||||
- namespaceSelector:
|
||||
matchLabels: { kubernetes.io/metadata.name: plataforma-prod }
|
||||
podSelector:
|
||||
matchLabels: { app: servico-captacao }
|
||||
ports:
|
||||
- { protocol: TCP, port: 8083 }
|
||||
@@ -12,7 +12,7 @@
|
||||
# 1. token do client `operacao` no realm do tenant (o mesmo das tarefas do
|
||||
# financeiro: Secret `operacao-credentials`);
|
||||
# 2. GET http://runtime-operacao/api/resumo-do-tenant (lista de 1 ou 2 meses);
|
||||
# 3. POST https://plataforma.athleticmap.com/api/public/resumo-do-tenant/acme
|
||||
# 3. POST http://servico-captacao.plataforma-prod.svc/api/public/resumo-do-tenant/acme
|
||||
# com o cabecalho `x-atm-resumo-token` — do Secret `resumo-credentials`, que
|
||||
# so vale para ESTE tenant (HMAC do nome dele com a chave da plataforma).
|
||||
#
|
||||
@@ -117,7 +117,7 @@ spec:
|
||||
- name: ISSUER_HOST
|
||||
value: auth.athleticmap.com
|
||||
- name: DESTINO
|
||||
value: https://plataforma.athleticmap.com/api/public/resumo-do-tenant/acme
|
||||
value: http://servico-captacao.plataforma-prod.svc/api/public/resumo-do-tenant/acme
|
||||
- name: CLIENT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# N16 (2026-09-29): saida do CronJob do resumo para o captacao da plataforma, pelo
|
||||
# Service interno (porta 8083 do pod). Par da 23-netpol-tenants-no-captacao da plataforma.
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: egress-captacao-compartilhado
|
||||
namespace: demo-prod
|
||||
spec:
|
||||
podSelector: {}
|
||||
policyTypes: [Egress]
|
||||
egress:
|
||||
- to:
|
||||
- namespaceSelector:
|
||||
matchLabels: { kubernetes.io/metadata.name: plataforma-prod }
|
||||
podSelector:
|
||||
matchLabels: { app: servico-captacao }
|
||||
ports:
|
||||
- { protocol: TCP, port: 8083 }
|
||||
@@ -12,7 +12,7 @@
|
||||
# 1. token do client `operacao` no realm do tenant (o mesmo das tarefas do
|
||||
# financeiro: Secret `operacao-credentials`);
|
||||
# 2. GET http://runtime-operacao/api/resumo-do-tenant (lista de 1 ou 2 meses);
|
||||
# 3. POST https://plataforma.athleticmap.com/api/public/resumo-do-tenant/demo
|
||||
# 3. POST http://servico-captacao.plataforma-prod.svc/api/public/resumo-do-tenant/demo
|
||||
# com o cabecalho `x-atm-resumo-token` — do Secret `resumo-credentials`, que
|
||||
# so vale para ESTE tenant (HMAC do nome dele com a chave da plataforma).
|
||||
#
|
||||
@@ -117,7 +117,7 @@ spec:
|
||||
- name: ISSUER_HOST
|
||||
value: auth.athleticmap.com
|
||||
- name: DESTINO
|
||||
value: https://plataforma.athleticmap.com/api/public/resumo-do-tenant/demo
|
||||
value: http://servico-captacao.plataforma-prod.svc/api/public/resumo-do-tenant/demo
|
||||
- name: CLIENT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# N16 (2026-09-29): saida do CronJob do resumo para o captacao da plataforma, pelo
|
||||
# Service interno (porta 8083 do pod). Par da 23-netpol-tenants-no-captacao da plataforma.
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: egress-captacao-compartilhado
|
||||
namespace: escolinha-prod
|
||||
spec:
|
||||
podSelector: {}
|
||||
policyTypes: [Egress]
|
||||
egress:
|
||||
- to:
|
||||
- namespaceSelector:
|
||||
matchLabels: { kubernetes.io/metadata.name: plataforma-prod }
|
||||
podSelector:
|
||||
matchLabels: { app: servico-captacao }
|
||||
ports:
|
||||
- { protocol: TCP, port: 8083 }
|
||||
@@ -12,7 +12,7 @@
|
||||
# 1. token do client `operacao` no realm do tenant (o mesmo das tarefas do
|
||||
# financeiro: Secret `operacao-credentials`);
|
||||
# 2. GET http://runtime-operacao/api/resumo-do-tenant (lista de 1 ou 2 meses);
|
||||
# 3. POST https://plataforma.athleticmap.com/api/public/resumo-do-tenant/escolinha
|
||||
# 3. POST http://servico-captacao.plataforma-prod.svc/api/public/resumo-do-tenant/escolinha
|
||||
# com o cabecalho `x-atm-resumo-token` — do Secret `resumo-credentials`, que
|
||||
# so vale para ESTE tenant (HMAC do nome dele com a chave da plataforma).
|
||||
#
|
||||
@@ -117,7 +117,7 @@ spec:
|
||||
- name: ISSUER_HOST
|
||||
value: auth.athleticmap.com
|
||||
- name: DESTINO
|
||||
value: https://plataforma.athleticmap.com/api/public/resumo-do-tenant/escolinha
|
||||
value: http://servico-captacao.plataforma-prod.svc/api/public/resumo-do-tenant/escolinha
|
||||
- name: CLIENT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# N16 (2026-09-29): saida do CronJob do resumo para o captacao da plataforma, pelo
|
||||
# Service interno (porta 8083 do pod). Par da 23-netpol-tenants-no-captacao da plataforma.
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: egress-captacao-compartilhado
|
||||
namespace: piloto-prod
|
||||
spec:
|
||||
podSelector: {}
|
||||
policyTypes: [Egress]
|
||||
egress:
|
||||
- to:
|
||||
- namespaceSelector:
|
||||
matchLabels: { kubernetes.io/metadata.name: plataforma-prod }
|
||||
podSelector:
|
||||
matchLabels: { app: servico-captacao }
|
||||
ports:
|
||||
- { protocol: TCP, port: 8083 }
|
||||
@@ -12,7 +12,7 @@
|
||||
# 1. token do client `operacao` no realm do tenant (o mesmo das tarefas do
|
||||
# financeiro: Secret `operacao-credentials`);
|
||||
# 2. GET http://runtime-operacao/api/resumo-do-tenant (lista de 1 ou 2 meses);
|
||||
# 3. POST https://plataforma.athleticmap.com/api/public/resumo-do-tenant/piloto
|
||||
# 3. POST http://servico-captacao.plataforma-prod.svc/api/public/resumo-do-tenant/piloto
|
||||
# com o cabecalho `x-atm-resumo-token` — do Secret `resumo-credentials`, que
|
||||
# so vale para ESTE tenant (HMAC do nome dele com a chave da plataforma).
|
||||
#
|
||||
@@ -117,7 +117,7 @@ spec:
|
||||
- name: ISSUER_HOST
|
||||
value: auth.athleticmap.com
|
||||
- name: DESTINO
|
||||
value: https://plataforma.athleticmap.com/api/public/resumo-do-tenant/piloto
|
||||
value: http://servico-captacao.plataforma-prod.svc/api/public/resumo-do-tenant/piloto
|
||||
- name: CLIENT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
# N16 (2026-09-29): o CronJob `resumo-para-a-plataforma` de cada tenant entrega o
|
||||
# resumo diario ao captacao pelo Service interno — de dentro do cluster o nome
|
||||
# publico nao conecta (hairpin pelo balanceador). Mesmo padrao do
|
||||
# 16-netpol-tenants-no-keycloak: tenants novos pelo label, os 4 antigos pelo nome.
|
||||
# So a porta do captacao; nenhum outro pod da plataforma fica exposto.
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: tenants-no-captacao
|
||||
namespace: plataforma-prod
|
||||
spec:
|
||||
podSelector:
|
||||
matchLabels: { app: servico-captacao }
|
||||
policyTypes: [Ingress]
|
||||
ingress:
|
||||
- from:
|
||||
- namespaceSelector:
|
||||
matchExpressions:
|
||||
- { key: athleticmap.io/tenant, operator: Exists }
|
||||
- namespaceSelector:
|
||||
matchLabels: { kubernetes.io/metadata.name: piloto-prod }
|
||||
- namespaceSelector:
|
||||
matchLabels: { kubernetes.io/metadata.name: demo-prod }
|
||||
- namespaceSelector:
|
||||
matchLabels: { kubernetes.io/metadata.name: acme-prod }
|
||||
- namespaceSelector:
|
||||
matchLabels: { kubernetes.io/metadata.name: escolinha-prod }
|
||||
ports:
|
||||
- { protocol: TCP, port: 8083 }
|
||||
Reference in New Issue
Block a user