Files
infrastructure/servers/legion/k8s/neuron-technologies/prod/mcp-deployment.yaml
T
2026-04-25 05:50:26 +00:00

76 lines
2.0 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: neuron-mcp-blue
namespace: neuron-prod
labels:
app: neuron-mcp
slot: blue
env: prod
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: neuron-mcp
slot: blue
template:
metadata:
labels:
app: neuron-mcp
slot: blue
env: prod
spec:
terminationGracePeriodSeconds: 30
containers:
- name: neuron-mcp
image: registry.neuralplatform.ai/neuron-technologies/neuron-mcp:v0.12.0
imagePullPolicy: Always
ports:
- name: http
containerPort: 8080
env:
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "http://alloy-otlp.monitoring.svc.cluster.local:4318"
- name: JAVA_TOOL_OPTIONS
value: "-XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0 -XX:+ExitOnOutOfMemoryError"
envFrom:
- configMapRef:
name: neuron-prod-config
- secretRef:
name: neuron-prod-secrets
volumeMounts:
- name: data
mountPath: /data
resources:
requests:
cpu: 250m
memory: 512Mi
limits:
cpu: 1500m
memory: 1536Mi
lifecycle:
preStop:
exec:
# Give Traefik time to drain in-flight connections before pod terminates
command: ["sh", "-c", "sleep 8"]
livenessProbe:
httpGet:
path: /actuator/health/liveness
port: http
initialDelaySeconds: 30
periodSeconds: 30
failureThreshold: 3
readinessProbe:
httpGet:
path: /actuator/health/readiness
port: http
initialDelaySeconds: 10
periodSeconds: 10
failureThreshold: 3
volumes:
- name: data
persistentVolumeClaim:
claimName: neuron-prod-data