GitOps 저장소도 ArgoCD Application도 아직 없어, 그때까지 이 저장소가 push 방식 파이프라인(.gitea/workflows/)을 임시로 소유한다. 무엇을 포기하는지와 넘길 때 할 일은 deploy/README.md에 적었다. Chart는 portal과 bundles 두 배포 모델을 모두 렌더링한다. ADR-0013이 ADR-0007을 대체했으므로 운영은 portal이 기준이지만, bundles 경로를 언제 삭제할지는 아직 정하지 않았다. - .gitea/workflows/ci.yaml, deploy-openshift.yaml - deploy/ci/render-manifests.sh, deploy/examples/ - Chart: mode 분기, selectedDeployment/tier helper, imagePullSecrets, toolService.apiKeySecret 참조 - extension-points.md에 미결 항목 9~12 추가 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
25 lines
1.2 KiB
YAML
25 lines
1.2 KiB
YAML
{{- 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 }}
|