Files
dap-was-dapms/deploy/helm/mcp-server/templates/poddisruptionbudget.yaml
2026-08-05 15:54:25 +09:00

25 lines
1.2 KiB
YAML

{{- include "mcp-server.validate" . }}
{{- $tier := index .Values.tiers (index .Values.deployments .Values.deploymentKey).tier }}
{{- if $tier.podDisruptionBudget }}
# 중요 등급 배포가 자발적 중단(노드 drain, 클러스터 업그레이드) 중에도 최소 1개를 남기게 한다.
#
# replica를 2 이상으로 올려도 PDB가 없으면 노드 drain이 두 Pod을 한꺼번에 내릴 수 있다.
# 등급을 나눈 목적이 "중요 Tool은 다운이 없어야 한다"이므로 이 둘은 함께 가야 한다(ADR-0007).
#
# 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 }}