fix(acme): egress para o PgBouncer do compartilhado (P4.7)

This commit is contained in:
deploy
2026-09-19 19:29:48 +00:00
parent 3d495a2cad
commit 83787e0cbc
@@ -0,0 +1,40 @@
# =============================================================================
# P4.7 — egress do acme para o PgBouncer do banco compartilhado.
#
# A copia, para o `acme-prod`, do molde em
# `tenants/plataforma/14-netpol-banco-compartilhado.yaml`. NetworkPolicy nao
# atravessa namespace: o `15-netpol-tenants-no-pgbouncer.yaml` abre a ENTRADA
# no plataforma, e esta abre a SAIDA daqui. Precisa das duas.
#
# ── POR QUE O `ipBlock: 10.43.0.0/16` DO deny-cross-tenant NAO BASTA ─────────
#
# Conferido no cluster em 2026-09-19: sem esta politica, `psql` de um pod do
# demo para `pgbouncer.plataforma-prod:6432` da "Connection refused" — com o
# Service, o endpoint e o PgBouncer saudaveis. O controlador de rede do k3s
# avalia a politica DEPOIS do DNAT do Service, contra o IP do POD (10.42.x),
# e nenhuma regra do deny-cross-tenant cobre pod de outro namespace.
#
# So a 6432, so no PgBouncer. O backup do acme e feito pelo CronJob do
# `plataforma` (51-backup-compartilhado.yaml), e nao daqui: o 5432 do
# Postgres continua fechado para o tenant.
# =============================================================================
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: egress-banco-compartilhado
namespace: acme-prod
spec:
# Todos os pods do tenant: os servicos, os runtimes da consolidacao e o pod
# de teste de conexao do script de migracao.
podSelector: {}
policyTypes: [Egress]
egress:
- to:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: plataforma-prod
podSelector:
matchLabels:
app: pgbouncer
ports:
- { protocol: TCP, port: 6432 }