43 lines
1.7 KiB
YAML
43 lines
1.7 KiB
YAML
# 이 서버는 인증·인가를 하지 않는다(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 }}
|