fix(chart): NetworkPolicy egress 0.0.0.0/0 :443+:6443 (RKE2/DO public IP DNAT)
Some checks failed
__APP_NAME__ — build & deploy / Calidad + build + push (push) Failing after 15s
__APP_NAME__ — build & deploy / Helm upgrade --install (push) Has been skipped

Validacion en cluster tenant DO destapo el issue: el Service `kubernetes` en
ns default tiene endpoint a la IP PUBLICA del Droplet:6443, no a una ClusterIP
intra-cluster. kube-proxy DNATea 10.43.0.1:443 -> public-ip:6443. Calico
aplica las NetworkPolicy egress rules contra la IP de DESTINO POST-DNAT, asi
que namespaceSelector "default" no matchea (no hay pod selector aplicable).

ipBlock 0.0.0.0/0 cubre ambos: apiserver public-ip:6443 + Harbor:443.

Trade-off de seguridad menor (egress permitido a IPs externas por 443/6443)
aceptable para Golden Path: las apps web necesitan llegar a apiserver y
posiblemente a HTTPS externos (APIs publicas). Endurecimiento P3 con
egress NetworkPolicy mas granular cuando haya use cases especificos.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
ilopez
2026-05-25 10:28:50 -05:00
parent 81b024edd6
commit bba5720975

View File

@@ -76,13 +76,24 @@ spec:
port: 3306
- protocol: TCP
port: 6033
# kube-apiserver (10.43.0.1:443) y Harbor pull (registro de imágenes).
# 0.0.0.0/0:443 cubre ambos. El InitContainer wait-for-secret del Job
# Alembic necesita egress al apiserver para hacer GET secret via REST API.
# kube-apiserver + Harbor pull (registro externo).
#
# NOTA RKE2/DO: el Service `kubernetes` (ns default) tiene endpoint hacia
# la IP PUBLICA del Droplet en port 6443 (no ClusterIP intra-cluster). Por
# eso namespaceSelector "default" NO funciona — kube-proxy DNATea
# 10.43.0.1:443 a la public IP:6443 del nodo. Calico aplica la regla NP
# contra la IP de destino post-DNAT, asi que requiere ipBlock que cubra
# la public IP.
#
# ipBlock 0.0.0.0/0 cubre ambos: apiserver public IP:6443 + Harbor:443.
# El InitContainer wait-for-secret del Job Alembic necesita esto para
# REST API call.
- to:
- ipBlock:
cidr: 0.0.0.0/0
ports:
- protocol: TCP
port: 443
- protocol: TCP
port: 6443
{{- end }}