--- apiVersion: apps/v1 kind: Deployment metadata: name: omada-mcp namespace: omada-mcp labels: app.kubernetes.io/name: omada-mcp app.kubernetes.io/version: latest spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: omada-mcp template: metadata: labels: app.kubernetes.io/name: omada-mcp spec: containers: - name: omada-mcp image: jmtvms/tplink-omada-mcp:latest imagePullPolicy: Always ports: - name: http containerPort: 3000 protocol: TCP env: - name: MCP_SERVER_USE_HTTP valueFrom: secretKeyRef: name: omada-mcp-credentials key: MCP_SERVER_USE_HTTP - name: MCP_HTTP_BIND_ADDR valueFrom: secretKeyRef: name: omada-mcp-credentials key: MCP_HTTP_BIND_ADDR - name: OMADA_BASE_URL valueFrom: secretKeyRef: name: omada-mcp-credentials key: OMADA_BASE_URL - name: OMADA_CLIENT_ID valueFrom: secretKeyRef: name: omada-mcp-credentials key: OMADA_CLIENT_ID - name: OMADA_CLIENT_SECRET valueFrom: secretKeyRef: name: omada-mcp-credentials key: OMADA_CLIENT_SECRET - name: OMADA_OMADAC_ID valueFrom: secretKeyRef: name: omada-mcp-credentials key: OMADA_OMADAC_ID - name: OMADA_STRICT_SSL valueFrom: secretKeyRef: name: omada-mcp-credentials key: OMADA_STRICT_SSL resources: requests: cpu: 50m memory: 64Mi limits: cpu: 200m memory: 256Mi livenessProbe: httpGet: path: /healthz port: 3000 initialDelaySeconds: 15 periodSeconds: 30 failureThreshold: 3 readinessProbe: httpGet: path: /healthz port: 3000 initialDelaySeconds: 10 periodSeconds: 15 failureThreshold: 3 restartPolicy: Always