# Lab networking Namespace `mnt`는 `gitops/policies/baseline`에서 ingress와 egress를 모두 default-deny로 시작하고 kube-dns UDP/TCP 53만 공통 허용합니다. | Owner | Allowed traffic | | --- | --- | | `gitops/apps/auth-server` | Traefik -> auth-server:8080; auth-server -> PostgreSQL:5432, Keycloak:8080 | | `gitops/apps/auth-migration` | migration Job -> PostgreSQL:5432 | | `gitops/apps/identity-postgres` | Keycloak, auth-server, migration Job -> PostgreSQL:5432 | | `gitops/platform/minio` | MinIO peer; MinIO Operator; approved in-namespace clients | | `gitops/platform/keycloak` | Traefik/auth-server ingress; PostgreSQL egress; Keycloak peer | | `gitops/platform/registry` | Traefik/in-namespace ingress; MinIO egress | | `gitops/platform/vault` | VSO controller ingress; kube-apiserver TokenReview egress | | `gitops/platform/keycloak-operator` | kube-apiserver egress | NetworkPolicy CIDR `10.43.0.0/16`과 `10.208.141.0/24`는 lab K3s의 service CIDR/control-plane subnet 계약입니다. 클러스터 설정이 다르면 overlay에서 명시적으로 변경해야 합니다. staging/prod로 복사하지 않습니다. 정책 추가 순서: 1. source/destination workload label과 namespace를 확인합니다. 2. 실제 named port와 protocol을 확인합니다. 3. 가장 좁은 pod/namespace selector로 ingress와 egress 양쪽을 작성합니다. 4. 해당 stage를 렌더하고 정적 검증합니다. 5. server-side dry-run과 diff 후 적용합니다. 6. 허용 요청과 차단되어야 할 요청을 모두 확인합니다. `ipBlock`은 Kubernetes API처럼 selector로 표현할 수 없는 lab 경계에서만 사용합니다. 넓은 RFC1918 CIDR 전체 허용을 기본값으로 만들지 않습니다.