ADR-021 — NetworkPolicy 전면 default-deny
| 항목 | 값 |
|---|---|
| Status | Proposed (2026-05-25 — #518 design step) |
| Related Epic | #518, #505 Phase 12 |
| Related ADR | ADR-022 (mTLS Linkerd) |
한 줄 결정: gend / gend-dmz / jupyter / data 4 namespace 분할 + 각 namespace 에 default-deny NetworkPolicy + 명시적 allow list. Calico CNI (AKS) 호환.
결정
- Namespace 분할:
gend: gend-api / gend-ui / dagster / kafka / trino / pggend-dmz: gend-relay / oauth2-proxy / ingressjupyter: hub / user-* podsdata: opensearch / weaviate / vault / minio
- default-deny: 각 namespace 의 첫 NetworkPolicy 가 모든 ingress / egress 차단.
- allow rule: explicit
namespaceSelector+podSelector+ port 단위. - 메모리:
feedback_networkpolicy_hairpin— hostAliases + podSelector + ipBlock OR fallback 패턴 적용. - 회귀 가드:
scripts/lint_networkpolicy_default_deny.py신설 — 모든 namespace 에 deny 정책 존재 검증.
비목표
- Egress to internet 별도 (별도 Egress gateway 패턴 검토).
- DNS 정책 (kube-dns 만 allow) 은 본 ADR 에 포함.