{{- include "mcp-server.validate" . }} {{- $tier := index .Values.tiers (include "mcp-server.tier" .) }} {{- if $tier.podDisruptionBudget }} # 중요 등급 배포가 자발적 중단(노드 drain, 클러스터 업그레이드) 중에도 최소 1개를 남기게 한다. # # replica를 2 이상으로 올려도 PDB가 없으면 노드 drain이 두 Pod을 한꺼번에 내릴 수 있다. # 등급을 나눈 목적이 "중요 Tool은 다운이 없어야 한다"이므로 이 둘은 함께 가야 한다. # # NetworkPolicy와 달리 조건이 붙는다. 저쪽은 인가의 전제라 끌 수 없지만 이것은 가용성 정책이고, # replica 1인 dev에서는 PDB가 오히려 노드 drain을 영구히 막는다. # 조건이 거짓이면 이 파일은 주석까지 포함해 아무것도 렌더링하지 않는다. apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: {{ include "mcp-server.name" . }} labels: {{- include "mcp-server.labels" . | nindent 4 }} spec: # minAvailable을 replica 수와 같게 두면 drain이 영원히 막힌다. 1을 남기는 것으로 충분하다. minAvailable: 1 selector: matchLabels: {{- include "mcp-server.selectorLabels" . | nindent 6 }} {{- end }}