176 lines
4.9 KiB
YAML
176 lines
4.9 KiB
YAML
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: mcp-server
|
|
component: provisioning-platform
|
|
name: mcp-server
|
|
spec:
|
|
replicas: 1
|
|
revisionHistoryLimit: 5
|
|
selector:
|
|
matchLabels:
|
|
app: mcp-server
|
|
strategy:
|
|
rollingUpdate:
|
|
maxSurge: 1
|
|
maxUnavailable: 0
|
|
type: RollingUpdate
|
|
template:
|
|
metadata:
|
|
annotations:
|
|
prometheus.io/path: /metrics
|
|
prometheus.io/port: '8888'
|
|
prometheus.io/scrape: 'true'
|
|
labels:
|
|
app: mcp-server
|
|
component: provisioning-platform
|
|
spec:
|
|
affinity:
|
|
podAffinity:
|
|
preferredDuringSchedulingIgnoredDuringExecution:
|
|
- podAffinityTerm:
|
|
labelSelector:
|
|
matchExpressions:
|
|
- key: app
|
|
operator: In
|
|
values:
|
|
- orchestrator
|
|
topologyKey: kubernetes.io/hostname
|
|
weight: 50
|
|
containers:
|
|
- env:
|
|
- name: MCP_SERVER_MODE
|
|
value: kubernetes
|
|
- name: MCP_SERVER_HOST
|
|
value: 0.0.0.0
|
|
- name: MCP_SERVER_PORT
|
|
value: '8888'
|
|
- name: MCP_SERVER_PROTOCOL
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: protocol
|
|
name: mcp-server-config
|
|
- name: MCP_SERVER_ORCHESTRATOR_URL
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: orchestrator_url
|
|
name: mcp-server-config
|
|
- name: MCP_SERVER_CONTROL_CENTER_URL
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: control_center_url
|
|
name: mcp-server-config
|
|
- name: MCP_SERVER_ENABLE_TOOLS
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: enable_tools
|
|
name: mcp-server-config
|
|
- name: MCP_SERVER_ENABLE_RESOURCES
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: enable_resources
|
|
name: mcp-server-config
|
|
- name: MCP_SERVER_ENABLE_PROMPTS
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: enable_prompts
|
|
name: mcp-server-config
|
|
- name: MCP_SERVER_MAX_CONCURRENT_TOOLS
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: max_concurrent_tools
|
|
name: mcp-server-config
|
|
- name: MCP_SERVER_MAX_RESOURCE_SIZE
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: max_resource_size
|
|
name: mcp-server-config
|
|
- name: MCP_SERVER_LOG_LEVEL
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: log_level
|
|
name: mcp-server-config
|
|
- name: POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.name
|
|
- name: POD_NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.namespace
|
|
image: provisioning-mcp-server:latest
|
|
imagePullPolicy: Always
|
|
livenessProbe:
|
|
failureThreshold: 3
|
|
httpGet:
|
|
path: /health
|
|
port: 8888
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 15
|
|
timeoutSeconds: 5
|
|
name: mcp-server
|
|
ports:
|
|
- containerPort: 8888
|
|
name: http
|
|
protocol: TCP
|
|
- containerPort: 8889
|
|
name: metrics
|
|
protocol: TCP
|
|
readinessProbe:
|
|
failureThreshold: 3
|
|
httpGet:
|
|
path: /ready
|
|
port: 8888
|
|
initialDelaySeconds: 20
|
|
periodSeconds: 5
|
|
timeoutSeconds: 3
|
|
resources:
|
|
limits:
|
|
cpu: 500m
|
|
memory: 512Mi
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
capabilities:
|
|
drop:
|
|
- ALL
|
|
readOnlyRootFilesystem: true
|
|
runAsNonRoot: true
|
|
runAsUser: 1000
|
|
volumeMounts:
|
|
- mountPath: /etc/provisioning/mcp-server
|
|
name: mcp-server-config
|
|
readOnly: true
|
|
- mountPath: /var/log/provisioning/mcp-server
|
|
name: mcp-server-logs
|
|
initContainers:
|
|
- command:
|
|
- sh
|
|
- -c
|
|
- until wget -q http://orchestrator:9090/health || true; do echo waiting; sleep 2; done
|
|
image: busybox:1.35
|
|
imagePullPolicy: IfNotPresent
|
|
name: wait-for-orchestrator
|
|
restartPolicy: Always
|
|
serviceAccountName: mcp-server
|
|
terminationGracePeriodSeconds: 20
|
|
tolerations:
|
|
- effect: NoExecute
|
|
key: node.kubernetes.io/not-ready
|
|
operator: Exists
|
|
tolerationSeconds: 300
|
|
- effect: NoExecute
|
|
key: node.kubernetes.io/unreachable
|
|
operator: Exists
|
|
tolerationSeconds: 300
|
|
volumes:
|
|
- configMap:
|
|
defaultMode: 420
|
|
name: mcp-server-config
|
|
name: mcp-server-config
|
|
- name: mcp-server-logs
|
|
persistentVolumeClaim:
|
|
claimName: mcp-server-logs
|