# 이 서버는 인증·인가를 하지 않는다(ADR-0006). 호출자를 제한하는 것은 이 정책이며, # 이것이 빠지면 클러스터 안의 어떤 Pod이든 /mcp로 Tool을 실행할 수 있다. # 선택적 강화가 아니라 ADR-0006의 성립 조건이므로 비활성화 스위치를 두지 않는다. apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: {{ include "mcp-server.name" . }}-ingress labels: {{- include "mcp-server.labels" . | nindent 4 }} spec: podSelector: matchLabels: {{- include "mcp-server.selectorLabels" . | nindent 6 }} policyTypes: - Ingress ingress: # 공개 Route를 거친 요청은 OpenShift Ingress Controller에서 들어온다. - from: - namespaceSelector: matchLabels: policy-group.network.openshift.io/ingress: "" ports: - protocol: TCP port: {{ .Values.ports.http }} # 업무 포트는 Agent Builder namespace에서만 받는다. # namespaceSelector가 참조하는 label은 대상 namespace에 실제로 붙어 있어야 한다. # OpenShift가 자동으로 넣어 주는 kubernetes.io/metadata.name을 사용한다. - from: - namespaceSelector: matchLabels: kubernetes.io/metadata.name: {{ .Values.global.agentBuilderNamespace }} ports: - protocol: TCP port: {{ .Values.ports.http }} # management 포트는 관제만 접근한다. 외부로 노출하지 않는다. - from: - namespaceSelector: matchLabels: kubernetes.io/metadata.name: {{ .Values.global.monitoringNamespace }} ports: - protocol: TCP port: {{ .Values.ports.management }}