From 1b5423188cc9c2f4bbad3685e011413bf86908ff Mon Sep 17 00:00:00 2001 From: ATM Platform Date: Fri, 2 Oct 2026 21:07:12 +0000 Subject: [PATCH] feat(tenants): saida do BFF para a federacao de competicoes no molde, demo e piloto --- moldes/consolidado/22-netpol-federacao.yaml | 24 +++++++++++++++++++++ tenants/demo/22-netpol-federacao.yaml | 24 +++++++++++++++++++++ tenants/piloto/22-netpol-federacao.yaml | 24 +++++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 moldes/consolidado/22-netpol-federacao.yaml create mode 100644 tenants/demo/22-netpol-federacao.yaml create mode 100644 tenants/piloto/22-netpol-federacao.yaml diff --git a/moldes/consolidado/22-netpol-federacao.yaml b/moldes/consolidado/22-netpol-federacao.yaml new file mode 100644 index 0000000..ba1723f --- /dev/null +++ b/moldes/consolidado/22-netpol-federacao.yaml @@ -0,0 +1,24 @@ +# Competicao entre escolas (2026-10-02): o BFF desta escola entrega o elenco ao convite publico de OUTRA escola, +# pela internet (https://.athleticmap.com). So os pods com o BFF; so o IP da VPS (entrada 443) e o Traefik +# que recebe DEPOIS do redirecionamento (8443) -- o IP privado dele cai no `except` do deny-cross-tenant, por isso o +# `ipBlock` sozinho nao basta (provado em 02/10: sem a regra do Traefik, curl sai com codigo 7). +# O host de destino e limitado a *.athleticmap.com no codigo (FederacaoBffController). +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: egress-federacao + namespace: {{TENANT}}-prod +spec: + podSelector: + matchLabels: { athleticmap.io/bff-aqui: "true" } + policyTypes: [Egress] + egress: + - to: + - ipBlock: { cidr: 187.77.37.184/32 } + - namespaceSelector: + matchLabels: { kubernetes.io/metadata.name: kube-system } + podSelector: + matchLabels: { app.kubernetes.io/name: traefik } + ports: + - { protocol: TCP, port: 443 } + - { protocol: TCP, port: 8443 } diff --git a/tenants/demo/22-netpol-federacao.yaml b/tenants/demo/22-netpol-federacao.yaml new file mode 100644 index 0000000..3bdaaec --- /dev/null +++ b/tenants/demo/22-netpol-federacao.yaml @@ -0,0 +1,24 @@ +# Competicao entre escolas (2026-10-02): o BFF desta escola entrega o elenco ao convite publico de OUTRA escola, +# pela internet (https://.athleticmap.com). So os pods com o BFF; so o IP da VPS (entrada 443) e o Traefik +# que recebe DEPOIS do redirecionamento (8443) -- o IP privado dele cai no `except` do deny-cross-tenant, por isso o +# `ipBlock` sozinho nao basta (provado em 02/10: sem a regra do Traefik, curl sai com codigo 7). +# O host de destino e limitado a *.athleticmap.com no codigo (FederacaoBffController). +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: egress-federacao + namespace: demo-prod +spec: + podSelector: + matchLabels: { athleticmap.io/bff-aqui: "true" } + policyTypes: [Egress] + egress: + - to: + - ipBlock: { cidr: 187.77.37.184/32 } + - namespaceSelector: + matchLabels: { kubernetes.io/metadata.name: kube-system } + podSelector: + matchLabels: { app.kubernetes.io/name: traefik } + ports: + - { protocol: TCP, port: 443 } + - { protocol: TCP, port: 8443 } diff --git a/tenants/piloto/22-netpol-federacao.yaml b/tenants/piloto/22-netpol-federacao.yaml new file mode 100644 index 0000000..0327c1d --- /dev/null +++ b/tenants/piloto/22-netpol-federacao.yaml @@ -0,0 +1,24 @@ +# Competicao entre escolas (2026-10-02): o BFF desta escola entrega o elenco ao convite publico de OUTRA escola, +# pela internet (https://.athleticmap.com). So os pods com o BFF; so o IP da VPS (entrada 443) e o Traefik +# que recebe DEPOIS do redirecionamento (8443) -- o IP privado dele cai no `except` do deny-cross-tenant, por isso o +# `ipBlock` sozinho nao basta (provado em 02/10: sem a regra do Traefik, curl sai com codigo 7). +# O host de destino e limitado a *.athleticmap.com no codigo (FederacaoBffController). +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: egress-federacao + namespace: piloto-prod +spec: + podSelector: + matchLabels: { athleticmap.io/bff-aqui: "true" } + policyTypes: [Egress] + egress: + - to: + - ipBlock: { cidr: 187.77.37.184/32 } + - namespaceSelector: + matchLabels: { kubernetes.io/metadata.name: kube-system } + podSelector: + matchLabels: { app.kubernetes.io/name: traefik } + ports: + - { protocol: TCP, port: 443 } + - { protocol: TCP, port: 8443 }