apiVersion: apps/v1
kind: Deployment
metadata:
  name: agent-monitor
  namespace: agent-monitor
spec:
  template:
    spec:
      containers:
        - name: mcp-sidecar
          image: ${IMAGE_REGISTRY}/agent-monitor-mcp:${IMAGE_TAG}
          imagePullPolicy: IfNotPresent

          ports:
            - name: mcp
              containerPort: 8819
              protocol: TCP

          env:
            - name: MCP_TRANSPORT
              value: "http"
            - name: MCP_DASHBOARD_BASE_URL
              value: "http://localhost:4820"
            - name: MCP_PORT
              value: "8819"

          resources:
            requests:
              memory: "64Mi"
              cpu: "50m"
            limits:
              memory: "256Mi"
              cpu: "250m"

          startupProbe:
            tcpSocket:
              port: mcp
            failureThreshold: 30
            periodSeconds: 2

          readinessProbe:
            tcpSocket:
              port: mcp
            initialDelaySeconds: 5
            periodSeconds: 10
            timeoutSeconds: 3
            failureThreshold: 3

          livenessProbe:
            tcpSocket:
              port: mcp
            initialDelaySeconds: 10
            periodSeconds: 30
            timeoutSeconds: 5
            failureThreshold: 3

          securityContext:
            runAsNonRoot: true
            runAsUser: 1000
            runAsGroup: 1000
            readOnlyRootFilesystem: true
            allowPrivilegeEscalation: false
            capabilities:
              drop:
                - ALL

          volumeMounts:
            - name: tmp
              mountPath: /tmp
