snow-flow 1.1.74 → 1.1.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/.claude-flow/queen/queen-memory.db +0 -0
  2. package/.claude-flow/queen-test/test-memory.db +0 -0
  3. package/.claude-flow/queen-test/test-memory.db-agents +0 -0
  4. package/.claude-flow/queen-test/test-memory.db-import +0 -0
  5. package/.claude-flow/queen-test/test-memory.db-memory +0 -0
  6. package/.claude-flow/queen-test/test-memory.db-neural +0 -0
  7. package/CLAUDE.md +111 -8
  8. package/README.md +117 -50
  9. package/deploy.sh +366 -0
  10. package/dist/cli.js +226 -0
  11. package/dist/cli.js.map +1 -1
  12. package/dist/mcp/http-transport-wrapper.d.ts +29 -0
  13. package/dist/mcp/http-transport-wrapper.d.ts.map +1 -0
  14. package/dist/mcp/http-transport-wrapper.js +318 -0
  15. package/dist/mcp/http-transport-wrapper.js.map +1 -0
  16. package/dist/mcp/service-discovery-client.d.ts +83 -0
  17. package/dist/mcp/service-discovery-client.d.ts.map +1 -0
  18. package/dist/mcp/service-discovery-client.js +211 -0
  19. package/dist/mcp/service-discovery-client.js.map +1 -0
  20. package/dist/mcp/servicenow-deployment-mcp.js +262 -29
  21. package/dist/mcp/servicenow-deployment-mcp.js.map +1 -1
  22. package/dist/mcp/servicenow-intelligent-mcp.js +252 -18
  23. package/dist/mcp/servicenow-intelligent-mcp.js.map +1 -1
  24. package/dist/mcp/servicenow-operations-mcp.js +274 -46
  25. package/dist/mcp/servicenow-operations-mcp.js.map +1 -1
  26. package/dist/orchestration/discovery/service-discovery.d.ts +81 -0
  27. package/dist/orchestration/discovery/service-discovery.d.ts.map +1 -0
  28. package/dist/orchestration/discovery/service-discovery.js +808 -0
  29. package/dist/orchestration/discovery/service-discovery.js.map +1 -0
  30. package/dist/orchestration/distributed-orchestrator.d.ts +131 -0
  31. package/dist/orchestration/distributed-orchestrator.d.ts.map +1 -0
  32. package/dist/orchestration/distributed-orchestrator.js +712 -0
  33. package/dist/orchestration/distributed-orchestrator.js.map +1 -0
  34. package/dist/orchestration/distribution/task-distribution-engine.d.ts +53 -0
  35. package/dist/orchestration/distribution/task-distribution-engine.d.ts.map +1 -0
  36. package/dist/orchestration/distribution/task-distribution-engine.js +586 -0
  37. package/dist/orchestration/distribution/task-distribution-engine.js.map +1 -0
  38. package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts +606 -0
  39. package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts.map +1 -0
  40. package/dist/orchestration/interfaces/distributed-orchestration.interface.js +65 -0
  41. package/dist/orchestration/interfaces/distributed-orchestration.interface.js.map +1 -0
  42. package/dist/orchestration/protocols/mcpx-protocol.d.ts +71 -0
  43. package/dist/orchestration/protocols/mcpx-protocol.d.ts.map +1 -0
  44. package/dist/orchestration/protocols/mcpx-protocol.js +668 -0
  45. package/dist/orchestration/protocols/mcpx-protocol.js.map +1 -0
  46. package/dist/orchestration/state/distributed-state-manager.d.ts +89 -0
  47. package/dist/orchestration/state/distributed-state-manager.d.ts.map +1 -0
  48. package/dist/orchestration/state/distributed-state-manager.js +716 -0
  49. package/dist/orchestration/state/distributed-state-manager.js.map +1 -0
  50. package/dist/queen/advanced-integration-test.d.ts +48 -0
  51. package/dist/queen/advanced-integration-test.d.ts.map +1 -0
  52. package/dist/queen/advanced-integration-test.js +474 -0
  53. package/dist/queen/advanced-integration-test.js.map +1 -0
  54. package/dist/queen/agent-factory.d.ts +40 -0
  55. package/dist/queen/agent-factory.d.ts.map +1 -0
  56. package/dist/queen/agent-factory.js +433 -0
  57. package/dist/queen/agent-factory.js.map +1 -0
  58. package/dist/queen/index.d.ts +58 -0
  59. package/dist/queen/index.d.ts.map +1 -0
  60. package/dist/queen/index.js +79 -0
  61. package/dist/queen/index.js.map +1 -0
  62. package/dist/queen/integration-example.d.ts +82 -0
  63. package/dist/queen/integration-example.d.ts.map +1 -0
  64. package/dist/queen/integration-example.js +220 -0
  65. package/dist/queen/integration-example.js.map +1 -0
  66. package/dist/queen/integration-test.d.ts +72 -0
  67. package/dist/queen/integration-test.d.ts.map +1 -0
  68. package/dist/queen/integration-test.js +564 -0
  69. package/dist/queen/integration-test.js.map +1 -0
  70. package/dist/queen/mock-mcp-client.d.ts +66 -0
  71. package/dist/queen/mock-mcp-client.d.ts.map +1 -0
  72. package/dist/queen/mock-mcp-client.js +297 -0
  73. package/dist/queen/mock-mcp-client.js.map +1 -0
  74. package/dist/queen/neural-learning.d.ts +28 -0
  75. package/dist/queen/neural-learning.d.ts.map +1 -0
  76. package/dist/queen/neural-learning.js +244 -0
  77. package/dist/queen/neural-learning.js.map +1 -0
  78. package/dist/queen/queen-memory.d.ts +25 -0
  79. package/dist/queen/queen-memory.d.ts.map +1 -0
  80. package/dist/queen/queen-memory.js +273 -0
  81. package/dist/queen/queen-memory.js.map +1 -0
  82. package/dist/queen/run-integration-tests.d.ts +9 -0
  83. package/dist/queen/run-integration-tests.d.ts.map +1 -0
  84. package/dist/queen/run-integration-tests.js +28 -0
  85. package/dist/queen/run-integration-tests.js.map +1 -0
  86. package/dist/queen/servicenow-queen.d.ts +56 -0
  87. package/dist/queen/servicenow-queen.d.ts.map +1 -0
  88. package/dist/queen/servicenow-queen.js +659 -0
  89. package/dist/queen/servicenow-queen.js.map +1 -0
  90. package/dist/queen/types.d.ts +58 -0
  91. package/dist/queen/types.d.ts.map +1 -0
  92. package/dist/queen/types.js +7 -0
  93. package/dist/queen/types.js.map +1 -0
  94. package/dist/version.d.ts +3 -1
  95. package/dist/version.d.ts.map +1 -1
  96. package/dist/version.js +27 -2
  97. package/dist/version.js.map +1 -1
  98. package/docker/base/Dockerfile.base +45 -0
  99. package/docker/generate-services.js +244 -0
  100. package/docker/nginx/Dockerfile +71 -0
  101. package/docker/nginx/consul-template.hcl +64 -0
  102. package/docker/nginx/healthcheck.sh +178 -0
  103. package/docker/nginx/nginx.conf +210 -0
  104. package/docker/nginx/supervisord.conf +57 -0
  105. package/docker/nginx/templates/upstreams.conf.tpl +48 -0
  106. package/docker/services/automation-mcp/Dockerfile +32 -0
  107. package/docker/services/automation-mcp/config/service.json +28 -0
  108. package/docker/services/automation-mcp/entrypoint.js +51 -0
  109. package/docker/services/deployment-mcp/Dockerfile +32 -0
  110. package/docker/services/deployment-mcp/entrypoint.js +51 -0
  111. package/docker/services/flow-composer-mcp/Dockerfile +32 -0
  112. package/docker/services/flow-composer-mcp/config/service.json +28 -0
  113. package/docker/services/flow-composer-mcp/entrypoint.js +51 -0
  114. package/docker/services/graph-memory-mcp/Dockerfile +32 -0
  115. package/docker/services/graph-memory-mcp/config/service.json +28 -0
  116. package/docker/services/graph-memory-mcp/entrypoint.js +51 -0
  117. package/docker/services/integration-mcp/Dockerfile +32 -0
  118. package/docker/services/integration-mcp/config/service.json +28 -0
  119. package/docker/services/integration-mcp/entrypoint.js +51 -0
  120. package/docker/services/intelligent-mcp/Dockerfile +32 -0
  121. package/docker/services/intelligent-mcp/config/service.json +28 -0
  122. package/docker/services/intelligent-mcp/entrypoint.js +51 -0
  123. package/docker/services/operations-mcp/Dockerfile +32 -0
  124. package/docker/services/operations-mcp/config/service.json +28 -0
  125. package/docker/services/operations-mcp/entrypoint.js +51 -0
  126. package/docker/services/platform-development-mcp/Dockerfile +32 -0
  127. package/docker/services/platform-development-mcp/config/service.json +28 -0
  128. package/docker/services/platform-development-mcp/entrypoint.js +51 -0
  129. package/docker/services/reporting-analytics-mcp/Dockerfile +32 -0
  130. package/docker/services/reporting-analytics-mcp/config/service.json +28 -0
  131. package/docker/services/reporting-analytics-mcp/entrypoint.js +51 -0
  132. package/docker/services/security-compliance-mcp/Dockerfile +32 -0
  133. package/docker/services/security-compliance-mcp/config/service.json +28 -0
  134. package/docker/services/security-compliance-mcp/entrypoint.js +51 -0
  135. package/docker/services/update-set-mcp/Dockerfile +32 -0
  136. package/docker/services/update-set-mcp/config/service.json +28 -0
  137. package/docker/services/update-set-mcp/entrypoint.js +51 -0
  138. package/docker-compose.override.yml +132 -0
  139. package/docker-compose.prod.yml +340 -0
  140. package/docker-compose.yml +579 -0
  141. package/k8s/automation-mcp.yaml +232 -0
  142. package/k8s/configmap.yaml +237 -0
  143. package/k8s/deployment-mcp.yaml +232 -0
  144. package/k8s/flow-composer-mcp.yaml +232 -0
  145. package/k8s/generate-k8s-manifests.js +453 -0
  146. package/k8s/graph-memory-mcp.yaml +232 -0
  147. package/k8s/infrastructure.yaml +456 -0
  148. package/k8s/ingress.yaml +361 -0
  149. package/k8s/integration-mcp.yaml +232 -0
  150. package/k8s/intelligent-mcp.yaml +232 -0
  151. package/k8s/kustomization.yaml +111 -0
  152. package/k8s/mcp-services.yaml +2552 -0
  153. package/k8s/monitoring.yaml +515 -0
  154. package/k8s/namespace.yaml +80 -0
  155. package/k8s/operations-mcp.yaml +232 -0
  156. package/k8s/platform-development-mcp.yaml +232 -0
  157. package/k8s/rbac.yaml +140 -0
  158. package/k8s/reporting-analytics-mcp.yaml +232 -0
  159. package/k8s/security-compliance-mcp.yaml +232 -0
  160. package/k8s/update-set-mcp.yaml +232 -0
  161. package/package.json +2 -2
@@ -0,0 +1,2552 @@
1
+ # ServiceNow Deployment MCP Deployment
2
+ apiVersion: apps/v1
3
+ kind: Deployment
4
+ metadata:
5
+ name: deployment-mcp
6
+ namespace: servicenow-mcp
7
+ labels:
8
+ app.kubernetes.io/name: deployment-mcp
9
+ app.kubernetes.io/instance: deployment-mcp
10
+ app.kubernetes.io/version: "1.0.0"
11
+ app.kubernetes.io/component: mcp-service
12
+ app.kubernetes.io/part-of: servicenow-mcp
13
+ app.kubernetes.io/managed-by: kubectl
14
+ spec:
15
+ replicas: 2
16
+ strategy:
17
+ type: RollingUpdate
18
+ rollingUpdate:
19
+ maxSurge: 1
20
+ maxUnavailable: 0
21
+ selector:
22
+ matchLabels:
23
+ app.kubernetes.io/name: deployment-mcp
24
+ app.kubernetes.io/instance: deployment-mcp
25
+ template:
26
+ metadata:
27
+ labels:
28
+ app.kubernetes.io/name: deployment-mcp
29
+ app.kubernetes.io/instance: deployment-mcp
30
+ app.kubernetes.io/version: "1.0.0"
31
+ app.kubernetes.io/component: mcp-service
32
+ annotations:
33
+ prometheus.io/scrape: "true"
34
+ prometheus.io/port: "3001"
35
+ prometheus.io/path: "/metrics"
36
+ spec:
37
+ serviceAccountName: mcp-service-account
38
+ securityContext:
39
+ runAsNonRoot: true
40
+ runAsUser: 1001
41
+ runAsGroup: 1001
42
+ fsGroup: 1001
43
+ containers:
44
+ - name: deployment-mcp
45
+ image: servicenow-mcp/deployment-mcp:latest
46
+ imagePullPolicy: IfNotPresent
47
+ ports:
48
+ - name: http
49
+ containerPort: 3001
50
+ protocol: TCP
51
+ env:
52
+ - name: SERVICE_NAME
53
+ value: "deployment-mcp"
54
+ - name: SERVER_PORT
55
+ value: "3001"
56
+ - name: SERVICE_IP
57
+ valueFrom:
58
+ fieldRef:
59
+ fieldPath: status.podIP
60
+ - name: HOSTNAME
61
+ valueFrom:
62
+ fieldRef:
63
+ fieldPath: metadata.name
64
+ envFrom:
65
+ - configMapRef:
66
+ name: mcp-config
67
+ - secretRef:
68
+ name: servicenow-credentials
69
+ - secretRef:
70
+ name: neo4j-credentials
71
+ livenessProbe:
72
+ httpGet:
73
+ path: /health
74
+ port: http
75
+ initialDelaySeconds: 30
76
+ periodSeconds: 30
77
+ timeoutSeconds: 10
78
+ failureThreshold: 3
79
+ successThreshold: 1
80
+ readinessProbe:
81
+ httpGet:
82
+ path: /ready
83
+ port: http
84
+ initialDelaySeconds: 15
85
+ periodSeconds: 10
86
+ timeoutSeconds: 5
87
+ failureThreshold: 3
88
+ successThreshold: 1
89
+ resources:
90
+ requests:
91
+ memory: "256Mi"
92
+ cpu: "250m"
93
+ limits:
94
+ memory: "512Mi"
95
+ cpu: "500m"
96
+ securityContext:
97
+ allowPrivilegeEscalation: false
98
+ readOnlyRootFilesystem: true
99
+ capabilities:
100
+ drop:
101
+ - ALL
102
+ volumeMounts:
103
+ - name: tmp
104
+ mountPath: /tmp
105
+ - name: logs
106
+ mountPath: /app/logs
107
+ volumes:
108
+ - name: tmp
109
+ emptyDir: {}
110
+ - name: logs
111
+ emptyDir: {}
112
+ affinity:
113
+ podAntiAffinity:
114
+ preferredDuringSchedulingIgnoredDuringExecution:
115
+ - weight: 100
116
+ podAffinityTerm:
117
+ labelSelector:
118
+ matchExpressions:
119
+ - key: app.kubernetes.io/name
120
+ operator: In
121
+ values:
122
+ - deployment-mcp
123
+ topologyKey: kubernetes.io/hostname
124
+ terminationGracePeriodSeconds: 30
125
+ ---
126
+ # ServiceNow Deployment MCP Service
127
+ apiVersion: v1
128
+ kind: Service
129
+ metadata:
130
+ name: deployment-mcp
131
+ namespace: servicenow-mcp
132
+ labels:
133
+ app.kubernetes.io/name: deployment-mcp
134
+ app.kubernetes.io/instance: deployment-mcp
135
+ app.kubernetes.io/version: "1.0.0"
136
+ app.kubernetes.io/component: mcp-service
137
+ app.kubernetes.io/part-of: servicenow-mcp
138
+ annotations:
139
+ service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
140
+ spec:
141
+ type: ClusterIP
142
+ ports:
143
+ - port: 3001
144
+ targetPort: http
145
+ protocol: TCP
146
+ name: http
147
+ selector:
148
+ app.kubernetes.io/name: deployment-mcp
149
+ app.kubernetes.io/instance: deployment-mcp
150
+ ---
151
+ # ServiceNow Deployment MCP Horizontal Pod Autoscaler
152
+ apiVersion: autoscaling/v2
153
+ kind: HorizontalPodAutoscaler
154
+ metadata:
155
+ name: deployment-mcp-hpa
156
+ namespace: servicenow-mcp
157
+ labels:
158
+ app.kubernetes.io/name: deployment-mcp
159
+ app.kubernetes.io/instance: deployment-mcp
160
+ app.kubernetes.io/component: autoscaler
161
+ spec:
162
+ scaleTargetRef:
163
+ apiVersion: apps/v1
164
+ kind: Deployment
165
+ name: deployment-mcp
166
+ minReplicas: 2
167
+ maxReplicas: 6
168
+ metrics:
169
+ - type: Resource
170
+ resource:
171
+ name: cpu
172
+ target:
173
+ type: Utilization
174
+ averageUtilization: 70
175
+ - type: Resource
176
+ resource:
177
+ name: memory
178
+ target:
179
+ type: Utilization
180
+ averageUtilization: 80
181
+ behavior:
182
+ scaleUp:
183
+ stabilizationWindowSeconds: 60
184
+ policies:
185
+ - type: Percent
186
+ value: 50
187
+ periodSeconds: 60
188
+ scaleDown:
189
+ stabilizationWindowSeconds: 300
190
+ policies:
191
+ - type: Percent
192
+ value: 25
193
+ periodSeconds: 60
194
+ ---
195
+ # ServiceNow Deployment MCP ServiceMonitor for Prometheus
196
+ apiVersion: monitoring.coreos.com/v1
197
+ kind: ServiceMonitor
198
+ metadata:
199
+ name: deployment-mcp
200
+ namespace: servicenow-mcp
201
+ labels:
202
+ app.kubernetes.io/name: deployment-mcp
203
+ app.kubernetes.io/instance: deployment-mcp
204
+ app.kubernetes.io/component: monitoring
205
+ spec:
206
+ selector:
207
+ matchLabels:
208
+ app.kubernetes.io/name: deployment-mcp
209
+ app.kubernetes.io/instance: deployment-mcp
210
+ endpoints:
211
+ - port: http
212
+ interval: 30s
213
+ path: /metrics
214
+ scrapeTimeout: 10s
215
+ ---
216
+ # ServiceNow Deployment MCP Pod Disruption Budget
217
+ apiVersion: policy/v1
218
+ kind: PodDisruptionBudget
219
+ metadata:
220
+ name: deployment-mcp-pdb
221
+ namespace: servicenow-mcp
222
+ labels:
223
+ app.kubernetes.io/name: deployment-mcp
224
+ app.kubernetes.io/instance: deployment-mcp
225
+ app.kubernetes.io/component: availability
226
+ spec:
227
+ minAvailable: 1
228
+ selector:
229
+ matchLabels:
230
+ app.kubernetes.io/name: deployment-mcp
231
+ app.kubernetes.io/instance: deployment-mcp
232
+ ---
233
+ # ServiceNow Flow Composer MCP Deployment
234
+ apiVersion: apps/v1
235
+ kind: Deployment
236
+ metadata:
237
+ name: flow-composer-mcp
238
+ namespace: servicenow-mcp
239
+ labels:
240
+ app.kubernetes.io/name: flow-composer-mcp
241
+ app.kubernetes.io/instance: flow-composer-mcp
242
+ app.kubernetes.io/version: "1.0.0"
243
+ app.kubernetes.io/component: mcp-service
244
+ app.kubernetes.io/part-of: servicenow-mcp
245
+ app.kubernetes.io/managed-by: kubectl
246
+ spec:
247
+ replicas: 2
248
+ strategy:
249
+ type: RollingUpdate
250
+ rollingUpdate:
251
+ maxSurge: 1
252
+ maxUnavailable: 0
253
+ selector:
254
+ matchLabels:
255
+ app.kubernetes.io/name: flow-composer-mcp
256
+ app.kubernetes.io/instance: flow-composer-mcp
257
+ template:
258
+ metadata:
259
+ labels:
260
+ app.kubernetes.io/name: flow-composer-mcp
261
+ app.kubernetes.io/instance: flow-composer-mcp
262
+ app.kubernetes.io/version: "1.0.0"
263
+ app.kubernetes.io/component: mcp-service
264
+ annotations:
265
+ prometheus.io/scrape: "true"
266
+ prometheus.io/port: "3002"
267
+ prometheus.io/path: "/metrics"
268
+ spec:
269
+ serviceAccountName: mcp-service-account
270
+ securityContext:
271
+ runAsNonRoot: true
272
+ runAsUser: 1001
273
+ runAsGroup: 1001
274
+ fsGroup: 1001
275
+ containers:
276
+ - name: flow-composer-mcp
277
+ image: servicenow-mcp/flow-composer-mcp:latest
278
+ imagePullPolicy: IfNotPresent
279
+ ports:
280
+ - name: http
281
+ containerPort: 3002
282
+ protocol: TCP
283
+ env:
284
+ - name: SERVICE_NAME
285
+ value: "flow-composer-mcp"
286
+ - name: SERVER_PORT
287
+ value: "3002"
288
+ - name: SERVICE_IP
289
+ valueFrom:
290
+ fieldRef:
291
+ fieldPath: status.podIP
292
+ - name: HOSTNAME
293
+ valueFrom:
294
+ fieldRef:
295
+ fieldPath: metadata.name
296
+ envFrom:
297
+ - configMapRef:
298
+ name: mcp-config
299
+ - secretRef:
300
+ name: servicenow-credentials
301
+ - secretRef:
302
+ name: neo4j-credentials
303
+ livenessProbe:
304
+ httpGet:
305
+ path: /health
306
+ port: http
307
+ initialDelaySeconds: 30
308
+ periodSeconds: 30
309
+ timeoutSeconds: 10
310
+ failureThreshold: 3
311
+ successThreshold: 1
312
+ readinessProbe:
313
+ httpGet:
314
+ path: /ready
315
+ port: http
316
+ initialDelaySeconds: 15
317
+ periodSeconds: 10
318
+ timeoutSeconds: 5
319
+ failureThreshold: 3
320
+ successThreshold: 1
321
+ resources:
322
+ requests:
323
+ memory: "256Mi"
324
+ cpu: "250m"
325
+ limits:
326
+ memory: "512Mi"
327
+ cpu: "500m"
328
+ securityContext:
329
+ allowPrivilegeEscalation: false
330
+ readOnlyRootFilesystem: true
331
+ capabilities:
332
+ drop:
333
+ - ALL
334
+ volumeMounts:
335
+ - name: tmp
336
+ mountPath: /tmp
337
+ - name: logs
338
+ mountPath: /app/logs
339
+ volumes:
340
+ - name: tmp
341
+ emptyDir: {}
342
+ - name: logs
343
+ emptyDir: {}
344
+ affinity:
345
+ podAntiAffinity:
346
+ preferredDuringSchedulingIgnoredDuringExecution:
347
+ - weight: 100
348
+ podAffinityTerm:
349
+ labelSelector:
350
+ matchExpressions:
351
+ - key: app.kubernetes.io/name
352
+ operator: In
353
+ values:
354
+ - flow-composer-mcp
355
+ topologyKey: kubernetes.io/hostname
356
+ terminationGracePeriodSeconds: 30
357
+ ---
358
+ # ServiceNow Flow Composer MCP Service
359
+ apiVersion: v1
360
+ kind: Service
361
+ metadata:
362
+ name: flow-composer-mcp
363
+ namespace: servicenow-mcp
364
+ labels:
365
+ app.kubernetes.io/name: flow-composer-mcp
366
+ app.kubernetes.io/instance: flow-composer-mcp
367
+ app.kubernetes.io/version: "1.0.0"
368
+ app.kubernetes.io/component: mcp-service
369
+ app.kubernetes.io/part-of: servicenow-mcp
370
+ annotations:
371
+ service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
372
+ spec:
373
+ type: ClusterIP
374
+ ports:
375
+ - port: 3002
376
+ targetPort: http
377
+ protocol: TCP
378
+ name: http
379
+ selector:
380
+ app.kubernetes.io/name: flow-composer-mcp
381
+ app.kubernetes.io/instance: flow-composer-mcp
382
+ ---
383
+ # ServiceNow Flow Composer MCP Horizontal Pod Autoscaler
384
+ apiVersion: autoscaling/v2
385
+ kind: HorizontalPodAutoscaler
386
+ metadata:
387
+ name: flow-composer-mcp-hpa
388
+ namespace: servicenow-mcp
389
+ labels:
390
+ app.kubernetes.io/name: flow-composer-mcp
391
+ app.kubernetes.io/instance: flow-composer-mcp
392
+ app.kubernetes.io/component: autoscaler
393
+ spec:
394
+ scaleTargetRef:
395
+ apiVersion: apps/v1
396
+ kind: Deployment
397
+ name: flow-composer-mcp
398
+ minReplicas: 2
399
+ maxReplicas: 6
400
+ metrics:
401
+ - type: Resource
402
+ resource:
403
+ name: cpu
404
+ target:
405
+ type: Utilization
406
+ averageUtilization: 70
407
+ - type: Resource
408
+ resource:
409
+ name: memory
410
+ target:
411
+ type: Utilization
412
+ averageUtilization: 80
413
+ behavior:
414
+ scaleUp:
415
+ stabilizationWindowSeconds: 60
416
+ policies:
417
+ - type: Percent
418
+ value: 50
419
+ periodSeconds: 60
420
+ scaleDown:
421
+ stabilizationWindowSeconds: 300
422
+ policies:
423
+ - type: Percent
424
+ value: 25
425
+ periodSeconds: 60
426
+ ---
427
+ # ServiceNow Flow Composer MCP ServiceMonitor for Prometheus
428
+ apiVersion: monitoring.coreos.com/v1
429
+ kind: ServiceMonitor
430
+ metadata:
431
+ name: flow-composer-mcp
432
+ namespace: servicenow-mcp
433
+ labels:
434
+ app.kubernetes.io/name: flow-composer-mcp
435
+ app.kubernetes.io/instance: flow-composer-mcp
436
+ app.kubernetes.io/component: monitoring
437
+ spec:
438
+ selector:
439
+ matchLabels:
440
+ app.kubernetes.io/name: flow-composer-mcp
441
+ app.kubernetes.io/instance: flow-composer-mcp
442
+ endpoints:
443
+ - port: http
444
+ interval: 30s
445
+ path: /metrics
446
+ scrapeTimeout: 10s
447
+ ---
448
+ # ServiceNow Flow Composer MCP Pod Disruption Budget
449
+ apiVersion: policy/v1
450
+ kind: PodDisruptionBudget
451
+ metadata:
452
+ name: flow-composer-mcp-pdb
453
+ namespace: servicenow-mcp
454
+ labels:
455
+ app.kubernetes.io/name: flow-composer-mcp
456
+ app.kubernetes.io/instance: flow-composer-mcp
457
+ app.kubernetes.io/component: availability
458
+ spec:
459
+ minAvailable: 1
460
+ selector:
461
+ matchLabels:
462
+ app.kubernetes.io/name: flow-composer-mcp
463
+ app.kubernetes.io/instance: flow-composer-mcp
464
+ ---
465
+ # ServiceNow Intelligent MCP Deployment
466
+ apiVersion: apps/v1
467
+ kind: Deployment
468
+ metadata:
469
+ name: intelligent-mcp
470
+ namespace: servicenow-mcp
471
+ labels:
472
+ app.kubernetes.io/name: intelligent-mcp
473
+ app.kubernetes.io/instance: intelligent-mcp
474
+ app.kubernetes.io/version: "1.0.0"
475
+ app.kubernetes.io/component: mcp-service
476
+ app.kubernetes.io/part-of: servicenow-mcp
477
+ app.kubernetes.io/managed-by: kubectl
478
+ spec:
479
+ replicas: 3
480
+ strategy:
481
+ type: RollingUpdate
482
+ rollingUpdate:
483
+ maxSurge: 1
484
+ maxUnavailable: 0
485
+ selector:
486
+ matchLabels:
487
+ app.kubernetes.io/name: intelligent-mcp
488
+ app.kubernetes.io/instance: intelligent-mcp
489
+ template:
490
+ metadata:
491
+ labels:
492
+ app.kubernetes.io/name: intelligent-mcp
493
+ app.kubernetes.io/instance: intelligent-mcp
494
+ app.kubernetes.io/version: "1.0.0"
495
+ app.kubernetes.io/component: mcp-service
496
+ annotations:
497
+ prometheus.io/scrape: "true"
498
+ prometheus.io/port: "3003"
499
+ prometheus.io/path: "/metrics"
500
+ spec:
501
+ serviceAccountName: mcp-service-account
502
+ securityContext:
503
+ runAsNonRoot: true
504
+ runAsUser: 1001
505
+ runAsGroup: 1001
506
+ fsGroup: 1001
507
+ containers:
508
+ - name: intelligent-mcp
509
+ image: servicenow-mcp/intelligent-mcp:latest
510
+ imagePullPolicy: IfNotPresent
511
+ ports:
512
+ - name: http
513
+ containerPort: 3003
514
+ protocol: TCP
515
+ env:
516
+ - name: SERVICE_NAME
517
+ value: "intelligent-mcp"
518
+ - name: SERVER_PORT
519
+ value: "3003"
520
+ - name: SERVICE_IP
521
+ valueFrom:
522
+ fieldRef:
523
+ fieldPath: status.podIP
524
+ - name: HOSTNAME
525
+ valueFrom:
526
+ fieldRef:
527
+ fieldPath: metadata.name
528
+ envFrom:
529
+ - configMapRef:
530
+ name: mcp-config
531
+ - secretRef:
532
+ name: servicenow-credentials
533
+ - secretRef:
534
+ name: neo4j-credentials
535
+ livenessProbe:
536
+ httpGet:
537
+ path: /health
538
+ port: http
539
+ initialDelaySeconds: 30
540
+ periodSeconds: 30
541
+ timeoutSeconds: 10
542
+ failureThreshold: 3
543
+ successThreshold: 1
544
+ readinessProbe:
545
+ httpGet:
546
+ path: /ready
547
+ port: http
548
+ initialDelaySeconds: 15
549
+ periodSeconds: 10
550
+ timeoutSeconds: 5
551
+ failureThreshold: 3
552
+ successThreshold: 1
553
+ resources:
554
+ requests:
555
+ memory: "512Mi"
556
+ cpu: "500m"
557
+ limits:
558
+ memory: "1Gi"
559
+ cpu: "1000m"
560
+ securityContext:
561
+ allowPrivilegeEscalation: false
562
+ readOnlyRootFilesystem: true
563
+ capabilities:
564
+ drop:
565
+ - ALL
566
+ volumeMounts:
567
+ - name: tmp
568
+ mountPath: /tmp
569
+ - name: logs
570
+ mountPath: /app/logs
571
+ volumes:
572
+ - name: tmp
573
+ emptyDir: {}
574
+ - name: logs
575
+ emptyDir: {}
576
+ affinity:
577
+ podAntiAffinity:
578
+ preferredDuringSchedulingIgnoredDuringExecution:
579
+ - weight: 100
580
+ podAffinityTerm:
581
+ labelSelector:
582
+ matchExpressions:
583
+ - key: app.kubernetes.io/name
584
+ operator: In
585
+ values:
586
+ - intelligent-mcp
587
+ topologyKey: kubernetes.io/hostname
588
+ terminationGracePeriodSeconds: 30
589
+ ---
590
+ # ServiceNow Intelligent MCP Service
591
+ apiVersion: v1
592
+ kind: Service
593
+ metadata:
594
+ name: intelligent-mcp
595
+ namespace: servicenow-mcp
596
+ labels:
597
+ app.kubernetes.io/name: intelligent-mcp
598
+ app.kubernetes.io/instance: intelligent-mcp
599
+ app.kubernetes.io/version: "1.0.0"
600
+ app.kubernetes.io/component: mcp-service
601
+ app.kubernetes.io/part-of: servicenow-mcp
602
+ annotations:
603
+ service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
604
+ spec:
605
+ type: ClusterIP
606
+ ports:
607
+ - port: 3003
608
+ targetPort: http
609
+ protocol: TCP
610
+ name: http
611
+ selector:
612
+ app.kubernetes.io/name: intelligent-mcp
613
+ app.kubernetes.io/instance: intelligent-mcp
614
+ ---
615
+ # ServiceNow Intelligent MCP Horizontal Pod Autoscaler
616
+ apiVersion: autoscaling/v2
617
+ kind: HorizontalPodAutoscaler
618
+ metadata:
619
+ name: intelligent-mcp-hpa
620
+ namespace: servicenow-mcp
621
+ labels:
622
+ app.kubernetes.io/name: intelligent-mcp
623
+ app.kubernetes.io/instance: intelligent-mcp
624
+ app.kubernetes.io/component: autoscaler
625
+ spec:
626
+ scaleTargetRef:
627
+ apiVersion: apps/v1
628
+ kind: Deployment
629
+ name: intelligent-mcp
630
+ minReplicas: 3
631
+ maxReplicas: 9
632
+ metrics:
633
+ - type: Resource
634
+ resource:
635
+ name: cpu
636
+ target:
637
+ type: Utilization
638
+ averageUtilization: 70
639
+ - type: Resource
640
+ resource:
641
+ name: memory
642
+ target:
643
+ type: Utilization
644
+ averageUtilization: 80
645
+ behavior:
646
+ scaleUp:
647
+ stabilizationWindowSeconds: 60
648
+ policies:
649
+ - type: Percent
650
+ value: 50
651
+ periodSeconds: 60
652
+ scaleDown:
653
+ stabilizationWindowSeconds: 300
654
+ policies:
655
+ - type: Percent
656
+ value: 25
657
+ periodSeconds: 60
658
+ ---
659
+ # ServiceNow Intelligent MCP ServiceMonitor for Prometheus
660
+ apiVersion: monitoring.coreos.com/v1
661
+ kind: ServiceMonitor
662
+ metadata:
663
+ name: intelligent-mcp
664
+ namespace: servicenow-mcp
665
+ labels:
666
+ app.kubernetes.io/name: intelligent-mcp
667
+ app.kubernetes.io/instance: intelligent-mcp
668
+ app.kubernetes.io/component: monitoring
669
+ spec:
670
+ selector:
671
+ matchLabels:
672
+ app.kubernetes.io/name: intelligent-mcp
673
+ app.kubernetes.io/instance: intelligent-mcp
674
+ endpoints:
675
+ - port: http
676
+ interval: 30s
677
+ path: /metrics
678
+ scrapeTimeout: 10s
679
+ ---
680
+ # ServiceNow Intelligent MCP Pod Disruption Budget
681
+ apiVersion: policy/v1
682
+ kind: PodDisruptionBudget
683
+ metadata:
684
+ name: intelligent-mcp-pdb
685
+ namespace: servicenow-mcp
686
+ labels:
687
+ app.kubernetes.io/name: intelligent-mcp
688
+ app.kubernetes.io/instance: intelligent-mcp
689
+ app.kubernetes.io/component: availability
690
+ spec:
691
+ minAvailable: 1
692
+ selector:
693
+ matchLabels:
694
+ app.kubernetes.io/name: intelligent-mcp
695
+ app.kubernetes.io/instance: intelligent-mcp
696
+ ---
697
+ # ServiceNow Update Set MCP Deployment
698
+ apiVersion: apps/v1
699
+ kind: Deployment
700
+ metadata:
701
+ name: update-set-mcp
702
+ namespace: servicenow-mcp
703
+ labels:
704
+ app.kubernetes.io/name: update-set-mcp
705
+ app.kubernetes.io/instance: update-set-mcp
706
+ app.kubernetes.io/version: "1.0.0"
707
+ app.kubernetes.io/component: mcp-service
708
+ app.kubernetes.io/part-of: servicenow-mcp
709
+ app.kubernetes.io/managed-by: kubectl
710
+ spec:
711
+ replicas: 2
712
+ strategy:
713
+ type: RollingUpdate
714
+ rollingUpdate:
715
+ maxSurge: 1
716
+ maxUnavailable: 0
717
+ selector:
718
+ matchLabels:
719
+ app.kubernetes.io/name: update-set-mcp
720
+ app.kubernetes.io/instance: update-set-mcp
721
+ template:
722
+ metadata:
723
+ labels:
724
+ app.kubernetes.io/name: update-set-mcp
725
+ app.kubernetes.io/instance: update-set-mcp
726
+ app.kubernetes.io/version: "1.0.0"
727
+ app.kubernetes.io/component: mcp-service
728
+ annotations:
729
+ prometheus.io/scrape: "true"
730
+ prometheus.io/port: "3004"
731
+ prometheus.io/path: "/metrics"
732
+ spec:
733
+ serviceAccountName: mcp-service-account
734
+ securityContext:
735
+ runAsNonRoot: true
736
+ runAsUser: 1001
737
+ runAsGroup: 1001
738
+ fsGroup: 1001
739
+ containers:
740
+ - name: update-set-mcp
741
+ image: servicenow-mcp/update-set-mcp:latest
742
+ imagePullPolicy: IfNotPresent
743
+ ports:
744
+ - name: http
745
+ containerPort: 3004
746
+ protocol: TCP
747
+ env:
748
+ - name: SERVICE_NAME
749
+ value: "update-set-mcp"
750
+ - name: SERVER_PORT
751
+ value: "3004"
752
+ - name: SERVICE_IP
753
+ valueFrom:
754
+ fieldRef:
755
+ fieldPath: status.podIP
756
+ - name: HOSTNAME
757
+ valueFrom:
758
+ fieldRef:
759
+ fieldPath: metadata.name
760
+ envFrom:
761
+ - configMapRef:
762
+ name: mcp-config
763
+ - secretRef:
764
+ name: servicenow-credentials
765
+ - secretRef:
766
+ name: neo4j-credentials
767
+ livenessProbe:
768
+ httpGet:
769
+ path: /health
770
+ port: http
771
+ initialDelaySeconds: 30
772
+ periodSeconds: 30
773
+ timeoutSeconds: 10
774
+ failureThreshold: 3
775
+ successThreshold: 1
776
+ readinessProbe:
777
+ httpGet:
778
+ path: /ready
779
+ port: http
780
+ initialDelaySeconds: 15
781
+ periodSeconds: 10
782
+ timeoutSeconds: 5
783
+ failureThreshold: 3
784
+ successThreshold: 1
785
+ resources:
786
+ requests:
787
+ memory: "256Mi"
788
+ cpu: "250m"
789
+ limits:
790
+ memory: "512Mi"
791
+ cpu: "500m"
792
+ securityContext:
793
+ allowPrivilegeEscalation: false
794
+ readOnlyRootFilesystem: true
795
+ capabilities:
796
+ drop:
797
+ - ALL
798
+ volumeMounts:
799
+ - name: tmp
800
+ mountPath: /tmp
801
+ - name: logs
802
+ mountPath: /app/logs
803
+ volumes:
804
+ - name: tmp
805
+ emptyDir: {}
806
+ - name: logs
807
+ emptyDir: {}
808
+ affinity:
809
+ podAntiAffinity:
810
+ preferredDuringSchedulingIgnoredDuringExecution:
811
+ - weight: 100
812
+ podAffinityTerm:
813
+ labelSelector:
814
+ matchExpressions:
815
+ - key: app.kubernetes.io/name
816
+ operator: In
817
+ values:
818
+ - update-set-mcp
819
+ topologyKey: kubernetes.io/hostname
820
+ terminationGracePeriodSeconds: 30
821
+ ---
822
+ # ServiceNow Update Set MCP Service
823
+ apiVersion: v1
824
+ kind: Service
825
+ metadata:
826
+ name: update-set-mcp
827
+ namespace: servicenow-mcp
828
+ labels:
829
+ app.kubernetes.io/name: update-set-mcp
830
+ app.kubernetes.io/instance: update-set-mcp
831
+ app.kubernetes.io/version: "1.0.0"
832
+ app.kubernetes.io/component: mcp-service
833
+ app.kubernetes.io/part-of: servicenow-mcp
834
+ annotations:
835
+ service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
836
+ spec:
837
+ type: ClusterIP
838
+ ports:
839
+ - port: 3004
840
+ targetPort: http
841
+ protocol: TCP
842
+ name: http
843
+ selector:
844
+ app.kubernetes.io/name: update-set-mcp
845
+ app.kubernetes.io/instance: update-set-mcp
846
+ ---
847
+ # ServiceNow Update Set MCP Horizontal Pod Autoscaler
848
+ apiVersion: autoscaling/v2
849
+ kind: HorizontalPodAutoscaler
850
+ metadata:
851
+ name: update-set-mcp-hpa
852
+ namespace: servicenow-mcp
853
+ labels:
854
+ app.kubernetes.io/name: update-set-mcp
855
+ app.kubernetes.io/instance: update-set-mcp
856
+ app.kubernetes.io/component: autoscaler
857
+ spec:
858
+ scaleTargetRef:
859
+ apiVersion: apps/v1
860
+ kind: Deployment
861
+ name: update-set-mcp
862
+ minReplicas: 2
863
+ maxReplicas: 6
864
+ metrics:
865
+ - type: Resource
866
+ resource:
867
+ name: cpu
868
+ target:
869
+ type: Utilization
870
+ averageUtilization: 70
871
+ - type: Resource
872
+ resource:
873
+ name: memory
874
+ target:
875
+ type: Utilization
876
+ averageUtilization: 80
877
+ behavior:
878
+ scaleUp:
879
+ stabilizationWindowSeconds: 60
880
+ policies:
881
+ - type: Percent
882
+ value: 50
883
+ periodSeconds: 60
884
+ scaleDown:
885
+ stabilizationWindowSeconds: 300
886
+ policies:
887
+ - type: Percent
888
+ value: 25
889
+ periodSeconds: 60
890
+ ---
891
+ # ServiceNow Update Set MCP ServiceMonitor for Prometheus
892
+ apiVersion: monitoring.coreos.com/v1
893
+ kind: ServiceMonitor
894
+ metadata:
895
+ name: update-set-mcp
896
+ namespace: servicenow-mcp
897
+ labels:
898
+ app.kubernetes.io/name: update-set-mcp
899
+ app.kubernetes.io/instance: update-set-mcp
900
+ app.kubernetes.io/component: monitoring
901
+ spec:
902
+ selector:
903
+ matchLabels:
904
+ app.kubernetes.io/name: update-set-mcp
905
+ app.kubernetes.io/instance: update-set-mcp
906
+ endpoints:
907
+ - port: http
908
+ interval: 30s
909
+ path: /metrics
910
+ scrapeTimeout: 10s
911
+ ---
912
+ # ServiceNow Update Set MCP Pod Disruption Budget
913
+ apiVersion: policy/v1
914
+ kind: PodDisruptionBudget
915
+ metadata:
916
+ name: update-set-mcp-pdb
917
+ namespace: servicenow-mcp
918
+ labels:
919
+ app.kubernetes.io/name: update-set-mcp
920
+ app.kubernetes.io/instance: update-set-mcp
921
+ app.kubernetes.io/component: availability
922
+ spec:
923
+ minAvailable: 1
924
+ selector:
925
+ matchLabels:
926
+ app.kubernetes.io/name: update-set-mcp
927
+ app.kubernetes.io/instance: update-set-mcp
928
+ ---
929
+ # ServiceNow Graph Memory MCP Deployment
930
+ apiVersion: apps/v1
931
+ kind: Deployment
932
+ metadata:
933
+ name: graph-memory-mcp
934
+ namespace: servicenow-mcp
935
+ labels:
936
+ app.kubernetes.io/name: graph-memory-mcp
937
+ app.kubernetes.io/instance: graph-memory-mcp
938
+ app.kubernetes.io/version: "1.0.0"
939
+ app.kubernetes.io/component: mcp-service
940
+ app.kubernetes.io/part-of: servicenow-mcp
941
+ app.kubernetes.io/managed-by: kubectl
942
+ spec:
943
+ replicas: 2
944
+ strategy:
945
+ type: RollingUpdate
946
+ rollingUpdate:
947
+ maxSurge: 1
948
+ maxUnavailable: 0
949
+ selector:
950
+ matchLabels:
951
+ app.kubernetes.io/name: graph-memory-mcp
952
+ app.kubernetes.io/instance: graph-memory-mcp
953
+ template:
954
+ metadata:
955
+ labels:
956
+ app.kubernetes.io/name: graph-memory-mcp
957
+ app.kubernetes.io/instance: graph-memory-mcp
958
+ app.kubernetes.io/version: "1.0.0"
959
+ app.kubernetes.io/component: mcp-service
960
+ annotations:
961
+ prometheus.io/scrape: "true"
962
+ prometheus.io/port: "3005"
963
+ prometheus.io/path: "/metrics"
964
+ spec:
965
+ serviceAccountName: mcp-service-account
966
+ securityContext:
967
+ runAsNonRoot: true
968
+ runAsUser: 1001
969
+ runAsGroup: 1001
970
+ fsGroup: 1001
971
+ containers:
972
+ - name: graph-memory-mcp
973
+ image: servicenow-mcp/graph-memory-mcp:latest
974
+ imagePullPolicy: IfNotPresent
975
+ ports:
976
+ - name: http
977
+ containerPort: 3005
978
+ protocol: TCP
979
+ env:
980
+ - name: SERVICE_NAME
981
+ value: "graph-memory-mcp"
982
+ - name: SERVER_PORT
983
+ value: "3005"
984
+ - name: SERVICE_IP
985
+ valueFrom:
986
+ fieldRef:
987
+ fieldPath: status.podIP
988
+ - name: HOSTNAME
989
+ valueFrom:
990
+ fieldRef:
991
+ fieldPath: metadata.name
992
+ envFrom:
993
+ - configMapRef:
994
+ name: mcp-config
995
+ - secretRef:
996
+ name: servicenow-credentials
997
+ - secretRef:
998
+ name: neo4j-credentials
999
+ livenessProbe:
1000
+ httpGet:
1001
+ path: /health
1002
+ port: http
1003
+ initialDelaySeconds: 30
1004
+ periodSeconds: 30
1005
+ timeoutSeconds: 10
1006
+ failureThreshold: 3
1007
+ successThreshold: 1
1008
+ readinessProbe:
1009
+ httpGet:
1010
+ path: /ready
1011
+ port: http
1012
+ initialDelaySeconds: 15
1013
+ periodSeconds: 10
1014
+ timeoutSeconds: 5
1015
+ failureThreshold: 3
1016
+ successThreshold: 1
1017
+ resources:
1018
+ requests:
1019
+ memory: "512Mi"
1020
+ cpu: "500m"
1021
+ limits:
1022
+ memory: "1Gi"
1023
+ cpu: "1000m"
1024
+ securityContext:
1025
+ allowPrivilegeEscalation: false
1026
+ readOnlyRootFilesystem: true
1027
+ capabilities:
1028
+ drop:
1029
+ - ALL
1030
+ volumeMounts:
1031
+ - name: tmp
1032
+ mountPath: /tmp
1033
+ - name: logs
1034
+ mountPath: /app/logs
1035
+ volumes:
1036
+ - name: tmp
1037
+ emptyDir: {}
1038
+ - name: logs
1039
+ emptyDir: {}
1040
+ affinity:
1041
+ podAntiAffinity:
1042
+ preferredDuringSchedulingIgnoredDuringExecution:
1043
+ - weight: 100
1044
+ podAffinityTerm:
1045
+ labelSelector:
1046
+ matchExpressions:
1047
+ - key: app.kubernetes.io/name
1048
+ operator: In
1049
+ values:
1050
+ - graph-memory-mcp
1051
+ topologyKey: kubernetes.io/hostname
1052
+ terminationGracePeriodSeconds: 30
1053
+ ---
1054
+ # ServiceNow Graph Memory MCP Service
1055
+ apiVersion: v1
1056
+ kind: Service
1057
+ metadata:
1058
+ name: graph-memory-mcp
1059
+ namespace: servicenow-mcp
1060
+ labels:
1061
+ app.kubernetes.io/name: graph-memory-mcp
1062
+ app.kubernetes.io/instance: graph-memory-mcp
1063
+ app.kubernetes.io/version: "1.0.0"
1064
+ app.kubernetes.io/component: mcp-service
1065
+ app.kubernetes.io/part-of: servicenow-mcp
1066
+ annotations:
1067
+ service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
1068
+ spec:
1069
+ type: ClusterIP
1070
+ ports:
1071
+ - port: 3005
1072
+ targetPort: http
1073
+ protocol: TCP
1074
+ name: http
1075
+ selector:
1076
+ app.kubernetes.io/name: graph-memory-mcp
1077
+ app.kubernetes.io/instance: graph-memory-mcp
1078
+ ---
1079
+ # ServiceNow Graph Memory MCP Horizontal Pod Autoscaler
1080
+ apiVersion: autoscaling/v2
1081
+ kind: HorizontalPodAutoscaler
1082
+ metadata:
1083
+ name: graph-memory-mcp-hpa
1084
+ namespace: servicenow-mcp
1085
+ labels:
1086
+ app.kubernetes.io/name: graph-memory-mcp
1087
+ app.kubernetes.io/instance: graph-memory-mcp
1088
+ app.kubernetes.io/component: autoscaler
1089
+ spec:
1090
+ scaleTargetRef:
1091
+ apiVersion: apps/v1
1092
+ kind: Deployment
1093
+ name: graph-memory-mcp
1094
+ minReplicas: 2
1095
+ maxReplicas: 6
1096
+ metrics:
1097
+ - type: Resource
1098
+ resource:
1099
+ name: cpu
1100
+ target:
1101
+ type: Utilization
1102
+ averageUtilization: 70
1103
+ - type: Resource
1104
+ resource:
1105
+ name: memory
1106
+ target:
1107
+ type: Utilization
1108
+ averageUtilization: 80
1109
+ behavior:
1110
+ scaleUp:
1111
+ stabilizationWindowSeconds: 60
1112
+ policies:
1113
+ - type: Percent
1114
+ value: 50
1115
+ periodSeconds: 60
1116
+ scaleDown:
1117
+ stabilizationWindowSeconds: 300
1118
+ policies:
1119
+ - type: Percent
1120
+ value: 25
1121
+ periodSeconds: 60
1122
+ ---
1123
+ # ServiceNow Graph Memory MCP ServiceMonitor for Prometheus
1124
+ apiVersion: monitoring.coreos.com/v1
1125
+ kind: ServiceMonitor
1126
+ metadata:
1127
+ name: graph-memory-mcp
1128
+ namespace: servicenow-mcp
1129
+ labels:
1130
+ app.kubernetes.io/name: graph-memory-mcp
1131
+ app.kubernetes.io/instance: graph-memory-mcp
1132
+ app.kubernetes.io/component: monitoring
1133
+ spec:
1134
+ selector:
1135
+ matchLabels:
1136
+ app.kubernetes.io/name: graph-memory-mcp
1137
+ app.kubernetes.io/instance: graph-memory-mcp
1138
+ endpoints:
1139
+ - port: http
1140
+ interval: 30s
1141
+ path: /metrics
1142
+ scrapeTimeout: 10s
1143
+ ---
1144
+ # ServiceNow Graph Memory MCP Pod Disruption Budget
1145
+ apiVersion: policy/v1
1146
+ kind: PodDisruptionBudget
1147
+ metadata:
1148
+ name: graph-memory-mcp-pdb
1149
+ namespace: servicenow-mcp
1150
+ labels:
1151
+ app.kubernetes.io/name: graph-memory-mcp
1152
+ app.kubernetes.io/instance: graph-memory-mcp
1153
+ app.kubernetes.io/component: availability
1154
+ spec:
1155
+ minAvailable: 1
1156
+ selector:
1157
+ matchLabels:
1158
+ app.kubernetes.io/name: graph-memory-mcp
1159
+ app.kubernetes.io/instance: graph-memory-mcp
1160
+ ---
1161
+ # ServiceNow Operations MCP Deployment
1162
+ apiVersion: apps/v1
1163
+ kind: Deployment
1164
+ metadata:
1165
+ name: operations-mcp
1166
+ namespace: servicenow-mcp
1167
+ labels:
1168
+ app.kubernetes.io/name: operations-mcp
1169
+ app.kubernetes.io/instance: operations-mcp
1170
+ app.kubernetes.io/version: "1.0.0"
1171
+ app.kubernetes.io/component: mcp-service
1172
+ app.kubernetes.io/part-of: servicenow-mcp
1173
+ app.kubernetes.io/managed-by: kubectl
1174
+ spec:
1175
+ replicas: 3
1176
+ strategy:
1177
+ type: RollingUpdate
1178
+ rollingUpdate:
1179
+ maxSurge: 1
1180
+ maxUnavailable: 0
1181
+ selector:
1182
+ matchLabels:
1183
+ app.kubernetes.io/name: operations-mcp
1184
+ app.kubernetes.io/instance: operations-mcp
1185
+ template:
1186
+ metadata:
1187
+ labels:
1188
+ app.kubernetes.io/name: operations-mcp
1189
+ app.kubernetes.io/instance: operations-mcp
1190
+ app.kubernetes.io/version: "1.0.0"
1191
+ app.kubernetes.io/component: mcp-service
1192
+ annotations:
1193
+ prometheus.io/scrape: "true"
1194
+ prometheus.io/port: "3006"
1195
+ prometheus.io/path: "/metrics"
1196
+ spec:
1197
+ serviceAccountName: mcp-service-account
1198
+ securityContext:
1199
+ runAsNonRoot: true
1200
+ runAsUser: 1001
1201
+ runAsGroup: 1001
1202
+ fsGroup: 1001
1203
+ containers:
1204
+ - name: operations-mcp
1205
+ image: servicenow-mcp/operations-mcp:latest
1206
+ imagePullPolicy: IfNotPresent
1207
+ ports:
1208
+ - name: http
1209
+ containerPort: 3006
1210
+ protocol: TCP
1211
+ env:
1212
+ - name: SERVICE_NAME
1213
+ value: "operations-mcp"
1214
+ - name: SERVER_PORT
1215
+ value: "3006"
1216
+ - name: SERVICE_IP
1217
+ valueFrom:
1218
+ fieldRef:
1219
+ fieldPath: status.podIP
1220
+ - name: HOSTNAME
1221
+ valueFrom:
1222
+ fieldRef:
1223
+ fieldPath: metadata.name
1224
+ envFrom:
1225
+ - configMapRef:
1226
+ name: mcp-config
1227
+ - secretRef:
1228
+ name: servicenow-credentials
1229
+ - secretRef:
1230
+ name: neo4j-credentials
1231
+ livenessProbe:
1232
+ httpGet:
1233
+ path: /health
1234
+ port: http
1235
+ initialDelaySeconds: 30
1236
+ periodSeconds: 30
1237
+ timeoutSeconds: 10
1238
+ failureThreshold: 3
1239
+ successThreshold: 1
1240
+ readinessProbe:
1241
+ httpGet:
1242
+ path: /ready
1243
+ port: http
1244
+ initialDelaySeconds: 15
1245
+ periodSeconds: 10
1246
+ timeoutSeconds: 5
1247
+ failureThreshold: 3
1248
+ successThreshold: 1
1249
+ resources:
1250
+ requests:
1251
+ memory: "256Mi"
1252
+ cpu: "250m"
1253
+ limits:
1254
+ memory: "512Mi"
1255
+ cpu: "500m"
1256
+ securityContext:
1257
+ allowPrivilegeEscalation: false
1258
+ readOnlyRootFilesystem: true
1259
+ capabilities:
1260
+ drop:
1261
+ - ALL
1262
+ volumeMounts:
1263
+ - name: tmp
1264
+ mountPath: /tmp
1265
+ - name: logs
1266
+ mountPath: /app/logs
1267
+ volumes:
1268
+ - name: tmp
1269
+ emptyDir: {}
1270
+ - name: logs
1271
+ emptyDir: {}
1272
+ affinity:
1273
+ podAntiAffinity:
1274
+ preferredDuringSchedulingIgnoredDuringExecution:
1275
+ - weight: 100
1276
+ podAffinityTerm:
1277
+ labelSelector:
1278
+ matchExpressions:
1279
+ - key: app.kubernetes.io/name
1280
+ operator: In
1281
+ values:
1282
+ - operations-mcp
1283
+ topologyKey: kubernetes.io/hostname
1284
+ terminationGracePeriodSeconds: 30
1285
+ ---
1286
+ # ServiceNow Operations MCP Service
1287
+ apiVersion: v1
1288
+ kind: Service
1289
+ metadata:
1290
+ name: operations-mcp
1291
+ namespace: servicenow-mcp
1292
+ labels:
1293
+ app.kubernetes.io/name: operations-mcp
1294
+ app.kubernetes.io/instance: operations-mcp
1295
+ app.kubernetes.io/version: "1.0.0"
1296
+ app.kubernetes.io/component: mcp-service
1297
+ app.kubernetes.io/part-of: servicenow-mcp
1298
+ annotations:
1299
+ service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
1300
+ spec:
1301
+ type: ClusterIP
1302
+ ports:
1303
+ - port: 3006
1304
+ targetPort: http
1305
+ protocol: TCP
1306
+ name: http
1307
+ selector:
1308
+ app.kubernetes.io/name: operations-mcp
1309
+ app.kubernetes.io/instance: operations-mcp
1310
+ ---
1311
+ # ServiceNow Operations MCP Horizontal Pod Autoscaler
1312
+ apiVersion: autoscaling/v2
1313
+ kind: HorizontalPodAutoscaler
1314
+ metadata:
1315
+ name: operations-mcp-hpa
1316
+ namespace: servicenow-mcp
1317
+ labels:
1318
+ app.kubernetes.io/name: operations-mcp
1319
+ app.kubernetes.io/instance: operations-mcp
1320
+ app.kubernetes.io/component: autoscaler
1321
+ spec:
1322
+ scaleTargetRef:
1323
+ apiVersion: apps/v1
1324
+ kind: Deployment
1325
+ name: operations-mcp
1326
+ minReplicas: 3
1327
+ maxReplicas: 9
1328
+ metrics:
1329
+ - type: Resource
1330
+ resource:
1331
+ name: cpu
1332
+ target:
1333
+ type: Utilization
1334
+ averageUtilization: 70
1335
+ - type: Resource
1336
+ resource:
1337
+ name: memory
1338
+ target:
1339
+ type: Utilization
1340
+ averageUtilization: 80
1341
+ behavior:
1342
+ scaleUp:
1343
+ stabilizationWindowSeconds: 60
1344
+ policies:
1345
+ - type: Percent
1346
+ value: 50
1347
+ periodSeconds: 60
1348
+ scaleDown:
1349
+ stabilizationWindowSeconds: 300
1350
+ policies:
1351
+ - type: Percent
1352
+ value: 25
1353
+ periodSeconds: 60
1354
+ ---
1355
+ # ServiceNow Operations MCP ServiceMonitor for Prometheus
1356
+ apiVersion: monitoring.coreos.com/v1
1357
+ kind: ServiceMonitor
1358
+ metadata:
1359
+ name: operations-mcp
1360
+ namespace: servicenow-mcp
1361
+ labels:
1362
+ app.kubernetes.io/name: operations-mcp
1363
+ app.kubernetes.io/instance: operations-mcp
1364
+ app.kubernetes.io/component: monitoring
1365
+ spec:
1366
+ selector:
1367
+ matchLabels:
1368
+ app.kubernetes.io/name: operations-mcp
1369
+ app.kubernetes.io/instance: operations-mcp
1370
+ endpoints:
1371
+ - port: http
1372
+ interval: 30s
1373
+ path: /metrics
1374
+ scrapeTimeout: 10s
1375
+ ---
1376
+ # ServiceNow Operations MCP Pod Disruption Budget
1377
+ apiVersion: policy/v1
1378
+ kind: PodDisruptionBudget
1379
+ metadata:
1380
+ name: operations-mcp-pdb
1381
+ namespace: servicenow-mcp
1382
+ labels:
1383
+ app.kubernetes.io/name: operations-mcp
1384
+ app.kubernetes.io/instance: operations-mcp
1385
+ app.kubernetes.io/component: availability
1386
+ spec:
1387
+ minAvailable: 1
1388
+ selector:
1389
+ matchLabels:
1390
+ app.kubernetes.io/name: operations-mcp
1391
+ app.kubernetes.io/instance: operations-mcp
1392
+ ---
1393
+ # ServiceNow Platform Development MCP Deployment
1394
+ apiVersion: apps/v1
1395
+ kind: Deployment
1396
+ metadata:
1397
+ name: platform-development-mcp
1398
+ namespace: servicenow-mcp
1399
+ labels:
1400
+ app.kubernetes.io/name: platform-development-mcp
1401
+ app.kubernetes.io/instance: platform-development-mcp
1402
+ app.kubernetes.io/version: "1.0.0"
1403
+ app.kubernetes.io/component: mcp-service
1404
+ app.kubernetes.io/part-of: servicenow-mcp
1405
+ app.kubernetes.io/managed-by: kubectl
1406
+ spec:
1407
+ replicas: 2
1408
+ strategy:
1409
+ type: RollingUpdate
1410
+ rollingUpdate:
1411
+ maxSurge: 1
1412
+ maxUnavailable: 0
1413
+ selector:
1414
+ matchLabels:
1415
+ app.kubernetes.io/name: platform-development-mcp
1416
+ app.kubernetes.io/instance: platform-development-mcp
1417
+ template:
1418
+ metadata:
1419
+ labels:
1420
+ app.kubernetes.io/name: platform-development-mcp
1421
+ app.kubernetes.io/instance: platform-development-mcp
1422
+ app.kubernetes.io/version: "1.0.0"
1423
+ app.kubernetes.io/component: mcp-service
1424
+ annotations:
1425
+ prometheus.io/scrape: "true"
1426
+ prometheus.io/port: "3007"
1427
+ prometheus.io/path: "/metrics"
1428
+ spec:
1429
+ serviceAccountName: mcp-service-account
1430
+ securityContext:
1431
+ runAsNonRoot: true
1432
+ runAsUser: 1001
1433
+ runAsGroup: 1001
1434
+ fsGroup: 1001
1435
+ containers:
1436
+ - name: platform-development-mcp
1437
+ image: servicenow-mcp/platform-development-mcp:latest
1438
+ imagePullPolicy: IfNotPresent
1439
+ ports:
1440
+ - name: http
1441
+ containerPort: 3007
1442
+ protocol: TCP
1443
+ env:
1444
+ - name: SERVICE_NAME
1445
+ value: "platform-development-mcp"
1446
+ - name: SERVER_PORT
1447
+ value: "3007"
1448
+ - name: SERVICE_IP
1449
+ valueFrom:
1450
+ fieldRef:
1451
+ fieldPath: status.podIP
1452
+ - name: HOSTNAME
1453
+ valueFrom:
1454
+ fieldRef:
1455
+ fieldPath: metadata.name
1456
+ envFrom:
1457
+ - configMapRef:
1458
+ name: mcp-config
1459
+ - secretRef:
1460
+ name: servicenow-credentials
1461
+ - secretRef:
1462
+ name: neo4j-credentials
1463
+ livenessProbe:
1464
+ httpGet:
1465
+ path: /health
1466
+ port: http
1467
+ initialDelaySeconds: 30
1468
+ periodSeconds: 30
1469
+ timeoutSeconds: 10
1470
+ failureThreshold: 3
1471
+ successThreshold: 1
1472
+ readinessProbe:
1473
+ httpGet:
1474
+ path: /ready
1475
+ port: http
1476
+ initialDelaySeconds: 15
1477
+ periodSeconds: 10
1478
+ timeoutSeconds: 5
1479
+ failureThreshold: 3
1480
+ successThreshold: 1
1481
+ resources:
1482
+ requests:
1483
+ memory: "256Mi"
1484
+ cpu: "250m"
1485
+ limits:
1486
+ memory: "512Mi"
1487
+ cpu: "500m"
1488
+ securityContext:
1489
+ allowPrivilegeEscalation: false
1490
+ readOnlyRootFilesystem: true
1491
+ capabilities:
1492
+ drop:
1493
+ - ALL
1494
+ volumeMounts:
1495
+ - name: tmp
1496
+ mountPath: /tmp
1497
+ - name: logs
1498
+ mountPath: /app/logs
1499
+ volumes:
1500
+ - name: tmp
1501
+ emptyDir: {}
1502
+ - name: logs
1503
+ emptyDir: {}
1504
+ affinity:
1505
+ podAntiAffinity:
1506
+ preferredDuringSchedulingIgnoredDuringExecution:
1507
+ - weight: 100
1508
+ podAffinityTerm:
1509
+ labelSelector:
1510
+ matchExpressions:
1511
+ - key: app.kubernetes.io/name
1512
+ operator: In
1513
+ values:
1514
+ - platform-development-mcp
1515
+ topologyKey: kubernetes.io/hostname
1516
+ terminationGracePeriodSeconds: 30
1517
+ ---
1518
+ # ServiceNow Platform Development MCP Service
1519
+ apiVersion: v1
1520
+ kind: Service
1521
+ metadata:
1522
+ name: platform-development-mcp
1523
+ namespace: servicenow-mcp
1524
+ labels:
1525
+ app.kubernetes.io/name: platform-development-mcp
1526
+ app.kubernetes.io/instance: platform-development-mcp
1527
+ app.kubernetes.io/version: "1.0.0"
1528
+ app.kubernetes.io/component: mcp-service
1529
+ app.kubernetes.io/part-of: servicenow-mcp
1530
+ annotations:
1531
+ service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
1532
+ spec:
1533
+ type: ClusterIP
1534
+ ports:
1535
+ - port: 3007
1536
+ targetPort: http
1537
+ protocol: TCP
1538
+ name: http
1539
+ selector:
1540
+ app.kubernetes.io/name: platform-development-mcp
1541
+ app.kubernetes.io/instance: platform-development-mcp
1542
+ ---
1543
+ # ServiceNow Platform Development MCP Horizontal Pod Autoscaler
1544
+ apiVersion: autoscaling/v2
1545
+ kind: HorizontalPodAutoscaler
1546
+ metadata:
1547
+ name: platform-development-mcp-hpa
1548
+ namespace: servicenow-mcp
1549
+ labels:
1550
+ app.kubernetes.io/name: platform-development-mcp
1551
+ app.kubernetes.io/instance: platform-development-mcp
1552
+ app.kubernetes.io/component: autoscaler
1553
+ spec:
1554
+ scaleTargetRef:
1555
+ apiVersion: apps/v1
1556
+ kind: Deployment
1557
+ name: platform-development-mcp
1558
+ minReplicas: 2
1559
+ maxReplicas: 6
1560
+ metrics:
1561
+ - type: Resource
1562
+ resource:
1563
+ name: cpu
1564
+ target:
1565
+ type: Utilization
1566
+ averageUtilization: 70
1567
+ - type: Resource
1568
+ resource:
1569
+ name: memory
1570
+ target:
1571
+ type: Utilization
1572
+ averageUtilization: 80
1573
+ behavior:
1574
+ scaleUp:
1575
+ stabilizationWindowSeconds: 60
1576
+ policies:
1577
+ - type: Percent
1578
+ value: 50
1579
+ periodSeconds: 60
1580
+ scaleDown:
1581
+ stabilizationWindowSeconds: 300
1582
+ policies:
1583
+ - type: Percent
1584
+ value: 25
1585
+ periodSeconds: 60
1586
+ ---
1587
+ # ServiceNow Platform Development MCP ServiceMonitor for Prometheus
1588
+ apiVersion: monitoring.coreos.com/v1
1589
+ kind: ServiceMonitor
1590
+ metadata:
1591
+ name: platform-development-mcp
1592
+ namespace: servicenow-mcp
1593
+ labels:
1594
+ app.kubernetes.io/name: platform-development-mcp
1595
+ app.kubernetes.io/instance: platform-development-mcp
1596
+ app.kubernetes.io/component: monitoring
1597
+ spec:
1598
+ selector:
1599
+ matchLabels:
1600
+ app.kubernetes.io/name: platform-development-mcp
1601
+ app.kubernetes.io/instance: platform-development-mcp
1602
+ endpoints:
1603
+ - port: http
1604
+ interval: 30s
1605
+ path: /metrics
1606
+ scrapeTimeout: 10s
1607
+ ---
1608
+ # ServiceNow Platform Development MCP Pod Disruption Budget
1609
+ apiVersion: policy/v1
1610
+ kind: PodDisruptionBudget
1611
+ metadata:
1612
+ name: platform-development-mcp-pdb
1613
+ namespace: servicenow-mcp
1614
+ labels:
1615
+ app.kubernetes.io/name: platform-development-mcp
1616
+ app.kubernetes.io/instance: platform-development-mcp
1617
+ app.kubernetes.io/component: availability
1618
+ spec:
1619
+ minAvailable: 1
1620
+ selector:
1621
+ matchLabels:
1622
+ app.kubernetes.io/name: platform-development-mcp
1623
+ app.kubernetes.io/instance: platform-development-mcp
1624
+ ---
1625
+ # ServiceNow Integration MCP Deployment
1626
+ apiVersion: apps/v1
1627
+ kind: Deployment
1628
+ metadata:
1629
+ name: integration-mcp
1630
+ namespace: servicenow-mcp
1631
+ labels:
1632
+ app.kubernetes.io/name: integration-mcp
1633
+ app.kubernetes.io/instance: integration-mcp
1634
+ app.kubernetes.io/version: "1.0.0"
1635
+ app.kubernetes.io/component: mcp-service
1636
+ app.kubernetes.io/part-of: servicenow-mcp
1637
+ app.kubernetes.io/managed-by: kubectl
1638
+ spec:
1639
+ replicas: 2
1640
+ strategy:
1641
+ type: RollingUpdate
1642
+ rollingUpdate:
1643
+ maxSurge: 1
1644
+ maxUnavailable: 0
1645
+ selector:
1646
+ matchLabels:
1647
+ app.kubernetes.io/name: integration-mcp
1648
+ app.kubernetes.io/instance: integration-mcp
1649
+ template:
1650
+ metadata:
1651
+ labels:
1652
+ app.kubernetes.io/name: integration-mcp
1653
+ app.kubernetes.io/instance: integration-mcp
1654
+ app.kubernetes.io/version: "1.0.0"
1655
+ app.kubernetes.io/component: mcp-service
1656
+ annotations:
1657
+ prometheus.io/scrape: "true"
1658
+ prometheus.io/port: "3008"
1659
+ prometheus.io/path: "/metrics"
1660
+ spec:
1661
+ serviceAccountName: mcp-service-account
1662
+ securityContext:
1663
+ runAsNonRoot: true
1664
+ runAsUser: 1001
1665
+ runAsGroup: 1001
1666
+ fsGroup: 1001
1667
+ containers:
1668
+ - name: integration-mcp
1669
+ image: servicenow-mcp/integration-mcp:latest
1670
+ imagePullPolicy: IfNotPresent
1671
+ ports:
1672
+ - name: http
1673
+ containerPort: 3008
1674
+ protocol: TCP
1675
+ env:
1676
+ - name: SERVICE_NAME
1677
+ value: "integration-mcp"
1678
+ - name: SERVER_PORT
1679
+ value: "3008"
1680
+ - name: SERVICE_IP
1681
+ valueFrom:
1682
+ fieldRef:
1683
+ fieldPath: status.podIP
1684
+ - name: HOSTNAME
1685
+ valueFrom:
1686
+ fieldRef:
1687
+ fieldPath: metadata.name
1688
+ envFrom:
1689
+ - configMapRef:
1690
+ name: mcp-config
1691
+ - secretRef:
1692
+ name: servicenow-credentials
1693
+ - secretRef:
1694
+ name: neo4j-credentials
1695
+ livenessProbe:
1696
+ httpGet:
1697
+ path: /health
1698
+ port: http
1699
+ initialDelaySeconds: 30
1700
+ periodSeconds: 30
1701
+ timeoutSeconds: 10
1702
+ failureThreshold: 3
1703
+ successThreshold: 1
1704
+ readinessProbe:
1705
+ httpGet:
1706
+ path: /ready
1707
+ port: http
1708
+ initialDelaySeconds: 15
1709
+ periodSeconds: 10
1710
+ timeoutSeconds: 5
1711
+ failureThreshold: 3
1712
+ successThreshold: 1
1713
+ resources:
1714
+ requests:
1715
+ memory: "256Mi"
1716
+ cpu: "250m"
1717
+ limits:
1718
+ memory: "512Mi"
1719
+ cpu: "500m"
1720
+ securityContext:
1721
+ allowPrivilegeEscalation: false
1722
+ readOnlyRootFilesystem: true
1723
+ capabilities:
1724
+ drop:
1725
+ - ALL
1726
+ volumeMounts:
1727
+ - name: tmp
1728
+ mountPath: /tmp
1729
+ - name: logs
1730
+ mountPath: /app/logs
1731
+ volumes:
1732
+ - name: tmp
1733
+ emptyDir: {}
1734
+ - name: logs
1735
+ emptyDir: {}
1736
+ affinity:
1737
+ podAntiAffinity:
1738
+ preferredDuringSchedulingIgnoredDuringExecution:
1739
+ - weight: 100
1740
+ podAffinityTerm:
1741
+ labelSelector:
1742
+ matchExpressions:
1743
+ - key: app.kubernetes.io/name
1744
+ operator: In
1745
+ values:
1746
+ - integration-mcp
1747
+ topologyKey: kubernetes.io/hostname
1748
+ terminationGracePeriodSeconds: 30
1749
+ ---
1750
+ # ServiceNow Integration MCP Service
1751
+ apiVersion: v1
1752
+ kind: Service
1753
+ metadata:
1754
+ name: integration-mcp
1755
+ namespace: servicenow-mcp
1756
+ labels:
1757
+ app.kubernetes.io/name: integration-mcp
1758
+ app.kubernetes.io/instance: integration-mcp
1759
+ app.kubernetes.io/version: "1.0.0"
1760
+ app.kubernetes.io/component: mcp-service
1761
+ app.kubernetes.io/part-of: servicenow-mcp
1762
+ annotations:
1763
+ service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
1764
+ spec:
1765
+ type: ClusterIP
1766
+ ports:
1767
+ - port: 3008
1768
+ targetPort: http
1769
+ protocol: TCP
1770
+ name: http
1771
+ selector:
1772
+ app.kubernetes.io/name: integration-mcp
1773
+ app.kubernetes.io/instance: integration-mcp
1774
+ ---
1775
+ # ServiceNow Integration MCP Horizontal Pod Autoscaler
1776
+ apiVersion: autoscaling/v2
1777
+ kind: HorizontalPodAutoscaler
1778
+ metadata:
1779
+ name: integration-mcp-hpa
1780
+ namespace: servicenow-mcp
1781
+ labels:
1782
+ app.kubernetes.io/name: integration-mcp
1783
+ app.kubernetes.io/instance: integration-mcp
1784
+ app.kubernetes.io/component: autoscaler
1785
+ spec:
1786
+ scaleTargetRef:
1787
+ apiVersion: apps/v1
1788
+ kind: Deployment
1789
+ name: integration-mcp
1790
+ minReplicas: 2
1791
+ maxReplicas: 6
1792
+ metrics:
1793
+ - type: Resource
1794
+ resource:
1795
+ name: cpu
1796
+ target:
1797
+ type: Utilization
1798
+ averageUtilization: 70
1799
+ - type: Resource
1800
+ resource:
1801
+ name: memory
1802
+ target:
1803
+ type: Utilization
1804
+ averageUtilization: 80
1805
+ behavior:
1806
+ scaleUp:
1807
+ stabilizationWindowSeconds: 60
1808
+ policies:
1809
+ - type: Percent
1810
+ value: 50
1811
+ periodSeconds: 60
1812
+ scaleDown:
1813
+ stabilizationWindowSeconds: 300
1814
+ policies:
1815
+ - type: Percent
1816
+ value: 25
1817
+ periodSeconds: 60
1818
+ ---
1819
+ # ServiceNow Integration MCP ServiceMonitor for Prometheus
1820
+ apiVersion: monitoring.coreos.com/v1
1821
+ kind: ServiceMonitor
1822
+ metadata:
1823
+ name: integration-mcp
1824
+ namespace: servicenow-mcp
1825
+ labels:
1826
+ app.kubernetes.io/name: integration-mcp
1827
+ app.kubernetes.io/instance: integration-mcp
1828
+ app.kubernetes.io/component: monitoring
1829
+ spec:
1830
+ selector:
1831
+ matchLabels:
1832
+ app.kubernetes.io/name: integration-mcp
1833
+ app.kubernetes.io/instance: integration-mcp
1834
+ endpoints:
1835
+ - port: http
1836
+ interval: 30s
1837
+ path: /metrics
1838
+ scrapeTimeout: 10s
1839
+ ---
1840
+ # ServiceNow Integration MCP Pod Disruption Budget
1841
+ apiVersion: policy/v1
1842
+ kind: PodDisruptionBudget
1843
+ metadata:
1844
+ name: integration-mcp-pdb
1845
+ namespace: servicenow-mcp
1846
+ labels:
1847
+ app.kubernetes.io/name: integration-mcp
1848
+ app.kubernetes.io/instance: integration-mcp
1849
+ app.kubernetes.io/component: availability
1850
+ spec:
1851
+ minAvailable: 1
1852
+ selector:
1853
+ matchLabels:
1854
+ app.kubernetes.io/name: integration-mcp
1855
+ app.kubernetes.io/instance: integration-mcp
1856
+ ---
1857
+ # ServiceNow Automation MCP Deployment
1858
+ apiVersion: apps/v1
1859
+ kind: Deployment
1860
+ metadata:
1861
+ name: automation-mcp
1862
+ namespace: servicenow-mcp
1863
+ labels:
1864
+ app.kubernetes.io/name: automation-mcp
1865
+ app.kubernetes.io/instance: automation-mcp
1866
+ app.kubernetes.io/version: "1.0.0"
1867
+ app.kubernetes.io/component: mcp-service
1868
+ app.kubernetes.io/part-of: servicenow-mcp
1869
+ app.kubernetes.io/managed-by: kubectl
1870
+ spec:
1871
+ replicas: 2
1872
+ strategy:
1873
+ type: RollingUpdate
1874
+ rollingUpdate:
1875
+ maxSurge: 1
1876
+ maxUnavailable: 0
1877
+ selector:
1878
+ matchLabels:
1879
+ app.kubernetes.io/name: automation-mcp
1880
+ app.kubernetes.io/instance: automation-mcp
1881
+ template:
1882
+ metadata:
1883
+ labels:
1884
+ app.kubernetes.io/name: automation-mcp
1885
+ app.kubernetes.io/instance: automation-mcp
1886
+ app.kubernetes.io/version: "1.0.0"
1887
+ app.kubernetes.io/component: mcp-service
1888
+ annotations:
1889
+ prometheus.io/scrape: "true"
1890
+ prometheus.io/port: "3009"
1891
+ prometheus.io/path: "/metrics"
1892
+ spec:
1893
+ serviceAccountName: mcp-service-account
1894
+ securityContext:
1895
+ runAsNonRoot: true
1896
+ runAsUser: 1001
1897
+ runAsGroup: 1001
1898
+ fsGroup: 1001
1899
+ containers:
1900
+ - name: automation-mcp
1901
+ image: servicenow-mcp/automation-mcp:latest
1902
+ imagePullPolicy: IfNotPresent
1903
+ ports:
1904
+ - name: http
1905
+ containerPort: 3009
1906
+ protocol: TCP
1907
+ env:
1908
+ - name: SERVICE_NAME
1909
+ value: "automation-mcp"
1910
+ - name: SERVER_PORT
1911
+ value: "3009"
1912
+ - name: SERVICE_IP
1913
+ valueFrom:
1914
+ fieldRef:
1915
+ fieldPath: status.podIP
1916
+ - name: HOSTNAME
1917
+ valueFrom:
1918
+ fieldRef:
1919
+ fieldPath: metadata.name
1920
+ envFrom:
1921
+ - configMapRef:
1922
+ name: mcp-config
1923
+ - secretRef:
1924
+ name: servicenow-credentials
1925
+ - secretRef:
1926
+ name: neo4j-credentials
1927
+ livenessProbe:
1928
+ httpGet:
1929
+ path: /health
1930
+ port: http
1931
+ initialDelaySeconds: 30
1932
+ periodSeconds: 30
1933
+ timeoutSeconds: 10
1934
+ failureThreshold: 3
1935
+ successThreshold: 1
1936
+ readinessProbe:
1937
+ httpGet:
1938
+ path: /ready
1939
+ port: http
1940
+ initialDelaySeconds: 15
1941
+ periodSeconds: 10
1942
+ timeoutSeconds: 5
1943
+ failureThreshold: 3
1944
+ successThreshold: 1
1945
+ resources:
1946
+ requests:
1947
+ memory: "256Mi"
1948
+ cpu: "250m"
1949
+ limits:
1950
+ memory: "512Mi"
1951
+ cpu: "500m"
1952
+ securityContext:
1953
+ allowPrivilegeEscalation: false
1954
+ readOnlyRootFilesystem: true
1955
+ capabilities:
1956
+ drop:
1957
+ - ALL
1958
+ volumeMounts:
1959
+ - name: tmp
1960
+ mountPath: /tmp
1961
+ - name: logs
1962
+ mountPath: /app/logs
1963
+ volumes:
1964
+ - name: tmp
1965
+ emptyDir: {}
1966
+ - name: logs
1967
+ emptyDir: {}
1968
+ affinity:
1969
+ podAntiAffinity:
1970
+ preferredDuringSchedulingIgnoredDuringExecution:
1971
+ - weight: 100
1972
+ podAffinityTerm:
1973
+ labelSelector:
1974
+ matchExpressions:
1975
+ - key: app.kubernetes.io/name
1976
+ operator: In
1977
+ values:
1978
+ - automation-mcp
1979
+ topologyKey: kubernetes.io/hostname
1980
+ terminationGracePeriodSeconds: 30
1981
+ ---
1982
+ # ServiceNow Automation MCP Service
1983
+ apiVersion: v1
1984
+ kind: Service
1985
+ metadata:
1986
+ name: automation-mcp
1987
+ namespace: servicenow-mcp
1988
+ labels:
1989
+ app.kubernetes.io/name: automation-mcp
1990
+ app.kubernetes.io/instance: automation-mcp
1991
+ app.kubernetes.io/version: "1.0.0"
1992
+ app.kubernetes.io/component: mcp-service
1993
+ app.kubernetes.io/part-of: servicenow-mcp
1994
+ annotations:
1995
+ service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
1996
+ spec:
1997
+ type: ClusterIP
1998
+ ports:
1999
+ - port: 3009
2000
+ targetPort: http
2001
+ protocol: TCP
2002
+ name: http
2003
+ selector:
2004
+ app.kubernetes.io/name: automation-mcp
2005
+ app.kubernetes.io/instance: automation-mcp
2006
+ ---
2007
+ # ServiceNow Automation MCP Horizontal Pod Autoscaler
2008
+ apiVersion: autoscaling/v2
2009
+ kind: HorizontalPodAutoscaler
2010
+ metadata:
2011
+ name: automation-mcp-hpa
2012
+ namespace: servicenow-mcp
2013
+ labels:
2014
+ app.kubernetes.io/name: automation-mcp
2015
+ app.kubernetes.io/instance: automation-mcp
2016
+ app.kubernetes.io/component: autoscaler
2017
+ spec:
2018
+ scaleTargetRef:
2019
+ apiVersion: apps/v1
2020
+ kind: Deployment
2021
+ name: automation-mcp
2022
+ minReplicas: 2
2023
+ maxReplicas: 6
2024
+ metrics:
2025
+ - type: Resource
2026
+ resource:
2027
+ name: cpu
2028
+ target:
2029
+ type: Utilization
2030
+ averageUtilization: 70
2031
+ - type: Resource
2032
+ resource:
2033
+ name: memory
2034
+ target:
2035
+ type: Utilization
2036
+ averageUtilization: 80
2037
+ behavior:
2038
+ scaleUp:
2039
+ stabilizationWindowSeconds: 60
2040
+ policies:
2041
+ - type: Percent
2042
+ value: 50
2043
+ periodSeconds: 60
2044
+ scaleDown:
2045
+ stabilizationWindowSeconds: 300
2046
+ policies:
2047
+ - type: Percent
2048
+ value: 25
2049
+ periodSeconds: 60
2050
+ ---
2051
+ # ServiceNow Automation MCP ServiceMonitor for Prometheus
2052
+ apiVersion: monitoring.coreos.com/v1
2053
+ kind: ServiceMonitor
2054
+ metadata:
2055
+ name: automation-mcp
2056
+ namespace: servicenow-mcp
2057
+ labels:
2058
+ app.kubernetes.io/name: automation-mcp
2059
+ app.kubernetes.io/instance: automation-mcp
2060
+ app.kubernetes.io/component: monitoring
2061
+ spec:
2062
+ selector:
2063
+ matchLabels:
2064
+ app.kubernetes.io/name: automation-mcp
2065
+ app.kubernetes.io/instance: automation-mcp
2066
+ endpoints:
2067
+ - port: http
2068
+ interval: 30s
2069
+ path: /metrics
2070
+ scrapeTimeout: 10s
2071
+ ---
2072
+ # ServiceNow Automation MCP Pod Disruption Budget
2073
+ apiVersion: policy/v1
2074
+ kind: PodDisruptionBudget
2075
+ metadata:
2076
+ name: automation-mcp-pdb
2077
+ namespace: servicenow-mcp
2078
+ labels:
2079
+ app.kubernetes.io/name: automation-mcp
2080
+ app.kubernetes.io/instance: automation-mcp
2081
+ app.kubernetes.io/component: availability
2082
+ spec:
2083
+ minAvailable: 1
2084
+ selector:
2085
+ matchLabels:
2086
+ app.kubernetes.io/name: automation-mcp
2087
+ app.kubernetes.io/instance: automation-mcp
2088
+ ---
2089
+ # ServiceNow Security & Compliance MCP Deployment
2090
+ apiVersion: apps/v1
2091
+ kind: Deployment
2092
+ metadata:
2093
+ name: security-compliance-mcp
2094
+ namespace: servicenow-mcp
2095
+ labels:
2096
+ app.kubernetes.io/name: security-compliance-mcp
2097
+ app.kubernetes.io/instance: security-compliance-mcp
2098
+ app.kubernetes.io/version: "1.0.0"
2099
+ app.kubernetes.io/component: mcp-service
2100
+ app.kubernetes.io/part-of: servicenow-mcp
2101
+ app.kubernetes.io/managed-by: kubectl
2102
+ spec:
2103
+ replicas: 2
2104
+ strategy:
2105
+ type: RollingUpdate
2106
+ rollingUpdate:
2107
+ maxSurge: 1
2108
+ maxUnavailable: 0
2109
+ selector:
2110
+ matchLabels:
2111
+ app.kubernetes.io/name: security-compliance-mcp
2112
+ app.kubernetes.io/instance: security-compliance-mcp
2113
+ template:
2114
+ metadata:
2115
+ labels:
2116
+ app.kubernetes.io/name: security-compliance-mcp
2117
+ app.kubernetes.io/instance: security-compliance-mcp
2118
+ app.kubernetes.io/version: "1.0.0"
2119
+ app.kubernetes.io/component: mcp-service
2120
+ annotations:
2121
+ prometheus.io/scrape: "true"
2122
+ prometheus.io/port: "3010"
2123
+ prometheus.io/path: "/metrics"
2124
+ spec:
2125
+ serviceAccountName: mcp-service-account
2126
+ securityContext:
2127
+ runAsNonRoot: true
2128
+ runAsUser: 1001
2129
+ runAsGroup: 1001
2130
+ fsGroup: 1001
2131
+ containers:
2132
+ - name: security-compliance-mcp
2133
+ image: servicenow-mcp/security-compliance-mcp:latest
2134
+ imagePullPolicy: IfNotPresent
2135
+ ports:
2136
+ - name: http
2137
+ containerPort: 3010
2138
+ protocol: TCP
2139
+ env:
2140
+ - name: SERVICE_NAME
2141
+ value: "security-compliance-mcp"
2142
+ - name: SERVER_PORT
2143
+ value: "3010"
2144
+ - name: SERVICE_IP
2145
+ valueFrom:
2146
+ fieldRef:
2147
+ fieldPath: status.podIP
2148
+ - name: HOSTNAME
2149
+ valueFrom:
2150
+ fieldRef:
2151
+ fieldPath: metadata.name
2152
+ envFrom:
2153
+ - configMapRef:
2154
+ name: mcp-config
2155
+ - secretRef:
2156
+ name: servicenow-credentials
2157
+ - secretRef:
2158
+ name: neo4j-credentials
2159
+ livenessProbe:
2160
+ httpGet:
2161
+ path: /health
2162
+ port: http
2163
+ initialDelaySeconds: 30
2164
+ periodSeconds: 30
2165
+ timeoutSeconds: 10
2166
+ failureThreshold: 3
2167
+ successThreshold: 1
2168
+ readinessProbe:
2169
+ httpGet:
2170
+ path: /ready
2171
+ port: http
2172
+ initialDelaySeconds: 15
2173
+ periodSeconds: 10
2174
+ timeoutSeconds: 5
2175
+ failureThreshold: 3
2176
+ successThreshold: 1
2177
+ resources:
2178
+ requests:
2179
+ memory: "256Mi"
2180
+ cpu: "250m"
2181
+ limits:
2182
+ memory: "512Mi"
2183
+ cpu: "500m"
2184
+ securityContext:
2185
+ allowPrivilegeEscalation: false
2186
+ readOnlyRootFilesystem: true
2187
+ capabilities:
2188
+ drop:
2189
+ - ALL
2190
+ volumeMounts:
2191
+ - name: tmp
2192
+ mountPath: /tmp
2193
+ - name: logs
2194
+ mountPath: /app/logs
2195
+ volumes:
2196
+ - name: tmp
2197
+ emptyDir: {}
2198
+ - name: logs
2199
+ emptyDir: {}
2200
+ affinity:
2201
+ podAntiAffinity:
2202
+ preferredDuringSchedulingIgnoredDuringExecution:
2203
+ - weight: 100
2204
+ podAffinityTerm:
2205
+ labelSelector:
2206
+ matchExpressions:
2207
+ - key: app.kubernetes.io/name
2208
+ operator: In
2209
+ values:
2210
+ - security-compliance-mcp
2211
+ topologyKey: kubernetes.io/hostname
2212
+ terminationGracePeriodSeconds: 30
2213
+ ---
2214
+ # ServiceNow Security & Compliance MCP Service
2215
+ apiVersion: v1
2216
+ kind: Service
2217
+ metadata:
2218
+ name: security-compliance-mcp
2219
+ namespace: servicenow-mcp
2220
+ labels:
2221
+ app.kubernetes.io/name: security-compliance-mcp
2222
+ app.kubernetes.io/instance: security-compliance-mcp
2223
+ app.kubernetes.io/version: "1.0.0"
2224
+ app.kubernetes.io/component: mcp-service
2225
+ app.kubernetes.io/part-of: servicenow-mcp
2226
+ annotations:
2227
+ service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
2228
+ spec:
2229
+ type: ClusterIP
2230
+ ports:
2231
+ - port: 3010
2232
+ targetPort: http
2233
+ protocol: TCP
2234
+ name: http
2235
+ selector:
2236
+ app.kubernetes.io/name: security-compliance-mcp
2237
+ app.kubernetes.io/instance: security-compliance-mcp
2238
+ ---
2239
+ # ServiceNow Security & Compliance MCP Horizontal Pod Autoscaler
2240
+ apiVersion: autoscaling/v2
2241
+ kind: HorizontalPodAutoscaler
2242
+ metadata:
2243
+ name: security-compliance-mcp-hpa
2244
+ namespace: servicenow-mcp
2245
+ labels:
2246
+ app.kubernetes.io/name: security-compliance-mcp
2247
+ app.kubernetes.io/instance: security-compliance-mcp
2248
+ app.kubernetes.io/component: autoscaler
2249
+ spec:
2250
+ scaleTargetRef:
2251
+ apiVersion: apps/v1
2252
+ kind: Deployment
2253
+ name: security-compliance-mcp
2254
+ minReplicas: 2
2255
+ maxReplicas: 6
2256
+ metrics:
2257
+ - type: Resource
2258
+ resource:
2259
+ name: cpu
2260
+ target:
2261
+ type: Utilization
2262
+ averageUtilization: 70
2263
+ - type: Resource
2264
+ resource:
2265
+ name: memory
2266
+ target:
2267
+ type: Utilization
2268
+ averageUtilization: 80
2269
+ behavior:
2270
+ scaleUp:
2271
+ stabilizationWindowSeconds: 60
2272
+ policies:
2273
+ - type: Percent
2274
+ value: 50
2275
+ periodSeconds: 60
2276
+ scaleDown:
2277
+ stabilizationWindowSeconds: 300
2278
+ policies:
2279
+ - type: Percent
2280
+ value: 25
2281
+ periodSeconds: 60
2282
+ ---
2283
+ # ServiceNow Security & Compliance MCP ServiceMonitor for Prometheus
2284
+ apiVersion: monitoring.coreos.com/v1
2285
+ kind: ServiceMonitor
2286
+ metadata:
2287
+ name: security-compliance-mcp
2288
+ namespace: servicenow-mcp
2289
+ labels:
2290
+ app.kubernetes.io/name: security-compliance-mcp
2291
+ app.kubernetes.io/instance: security-compliance-mcp
2292
+ app.kubernetes.io/component: monitoring
2293
+ spec:
2294
+ selector:
2295
+ matchLabels:
2296
+ app.kubernetes.io/name: security-compliance-mcp
2297
+ app.kubernetes.io/instance: security-compliance-mcp
2298
+ endpoints:
2299
+ - port: http
2300
+ interval: 30s
2301
+ path: /metrics
2302
+ scrapeTimeout: 10s
2303
+ ---
2304
+ # ServiceNow Security & Compliance MCP Pod Disruption Budget
2305
+ apiVersion: policy/v1
2306
+ kind: PodDisruptionBudget
2307
+ metadata:
2308
+ name: security-compliance-mcp-pdb
2309
+ namespace: servicenow-mcp
2310
+ labels:
2311
+ app.kubernetes.io/name: security-compliance-mcp
2312
+ app.kubernetes.io/instance: security-compliance-mcp
2313
+ app.kubernetes.io/component: availability
2314
+ spec:
2315
+ minAvailable: 1
2316
+ selector:
2317
+ matchLabels:
2318
+ app.kubernetes.io/name: security-compliance-mcp
2319
+ app.kubernetes.io/instance: security-compliance-mcp
2320
+ ---
2321
+ # ServiceNow Reporting & Analytics MCP Deployment
2322
+ apiVersion: apps/v1
2323
+ kind: Deployment
2324
+ metadata:
2325
+ name: reporting-analytics-mcp
2326
+ namespace: servicenow-mcp
2327
+ labels:
2328
+ app.kubernetes.io/name: reporting-analytics-mcp
2329
+ app.kubernetes.io/instance: reporting-analytics-mcp
2330
+ app.kubernetes.io/version: "1.0.0"
2331
+ app.kubernetes.io/component: mcp-service
2332
+ app.kubernetes.io/part-of: servicenow-mcp
2333
+ app.kubernetes.io/managed-by: kubectl
2334
+ spec:
2335
+ replicas: 2
2336
+ strategy:
2337
+ type: RollingUpdate
2338
+ rollingUpdate:
2339
+ maxSurge: 1
2340
+ maxUnavailable: 0
2341
+ selector:
2342
+ matchLabels:
2343
+ app.kubernetes.io/name: reporting-analytics-mcp
2344
+ app.kubernetes.io/instance: reporting-analytics-mcp
2345
+ template:
2346
+ metadata:
2347
+ labels:
2348
+ app.kubernetes.io/name: reporting-analytics-mcp
2349
+ app.kubernetes.io/instance: reporting-analytics-mcp
2350
+ app.kubernetes.io/version: "1.0.0"
2351
+ app.kubernetes.io/component: mcp-service
2352
+ annotations:
2353
+ prometheus.io/scrape: "true"
2354
+ prometheus.io/port: "3011"
2355
+ prometheus.io/path: "/metrics"
2356
+ spec:
2357
+ serviceAccountName: mcp-service-account
2358
+ securityContext:
2359
+ runAsNonRoot: true
2360
+ runAsUser: 1001
2361
+ runAsGroup: 1001
2362
+ fsGroup: 1001
2363
+ containers:
2364
+ - name: reporting-analytics-mcp
2365
+ image: servicenow-mcp/reporting-analytics-mcp:latest
2366
+ imagePullPolicy: IfNotPresent
2367
+ ports:
2368
+ - name: http
2369
+ containerPort: 3011
2370
+ protocol: TCP
2371
+ env:
2372
+ - name: SERVICE_NAME
2373
+ value: "reporting-analytics-mcp"
2374
+ - name: SERVER_PORT
2375
+ value: "3011"
2376
+ - name: SERVICE_IP
2377
+ valueFrom:
2378
+ fieldRef:
2379
+ fieldPath: status.podIP
2380
+ - name: HOSTNAME
2381
+ valueFrom:
2382
+ fieldRef:
2383
+ fieldPath: metadata.name
2384
+ envFrom:
2385
+ - configMapRef:
2386
+ name: mcp-config
2387
+ - secretRef:
2388
+ name: servicenow-credentials
2389
+ - secretRef:
2390
+ name: neo4j-credentials
2391
+ livenessProbe:
2392
+ httpGet:
2393
+ path: /health
2394
+ port: http
2395
+ initialDelaySeconds: 30
2396
+ periodSeconds: 30
2397
+ timeoutSeconds: 10
2398
+ failureThreshold: 3
2399
+ successThreshold: 1
2400
+ readinessProbe:
2401
+ httpGet:
2402
+ path: /ready
2403
+ port: http
2404
+ initialDelaySeconds: 15
2405
+ periodSeconds: 10
2406
+ timeoutSeconds: 5
2407
+ failureThreshold: 3
2408
+ successThreshold: 1
2409
+ resources:
2410
+ requests:
2411
+ memory: "384Mi"
2412
+ cpu: "375m"
2413
+ limits:
2414
+ memory: "768Mi"
2415
+ cpu: "750m"
2416
+ securityContext:
2417
+ allowPrivilegeEscalation: false
2418
+ readOnlyRootFilesystem: true
2419
+ capabilities:
2420
+ drop:
2421
+ - ALL
2422
+ volumeMounts:
2423
+ - name: tmp
2424
+ mountPath: /tmp
2425
+ - name: logs
2426
+ mountPath: /app/logs
2427
+ volumes:
2428
+ - name: tmp
2429
+ emptyDir: {}
2430
+ - name: logs
2431
+ emptyDir: {}
2432
+ affinity:
2433
+ podAntiAffinity:
2434
+ preferredDuringSchedulingIgnoredDuringExecution:
2435
+ - weight: 100
2436
+ podAffinityTerm:
2437
+ labelSelector:
2438
+ matchExpressions:
2439
+ - key: app.kubernetes.io/name
2440
+ operator: In
2441
+ values:
2442
+ - reporting-analytics-mcp
2443
+ topologyKey: kubernetes.io/hostname
2444
+ terminationGracePeriodSeconds: 30
2445
+ ---
2446
+ # ServiceNow Reporting & Analytics MCP Service
2447
+ apiVersion: v1
2448
+ kind: Service
2449
+ metadata:
2450
+ name: reporting-analytics-mcp
2451
+ namespace: servicenow-mcp
2452
+ labels:
2453
+ app.kubernetes.io/name: reporting-analytics-mcp
2454
+ app.kubernetes.io/instance: reporting-analytics-mcp
2455
+ app.kubernetes.io/version: "1.0.0"
2456
+ app.kubernetes.io/component: mcp-service
2457
+ app.kubernetes.io/part-of: servicenow-mcp
2458
+ annotations:
2459
+ service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
2460
+ spec:
2461
+ type: ClusterIP
2462
+ ports:
2463
+ - port: 3011
2464
+ targetPort: http
2465
+ protocol: TCP
2466
+ name: http
2467
+ selector:
2468
+ app.kubernetes.io/name: reporting-analytics-mcp
2469
+ app.kubernetes.io/instance: reporting-analytics-mcp
2470
+ ---
2471
+ # ServiceNow Reporting & Analytics MCP Horizontal Pod Autoscaler
2472
+ apiVersion: autoscaling/v2
2473
+ kind: HorizontalPodAutoscaler
2474
+ metadata:
2475
+ name: reporting-analytics-mcp-hpa
2476
+ namespace: servicenow-mcp
2477
+ labels:
2478
+ app.kubernetes.io/name: reporting-analytics-mcp
2479
+ app.kubernetes.io/instance: reporting-analytics-mcp
2480
+ app.kubernetes.io/component: autoscaler
2481
+ spec:
2482
+ scaleTargetRef:
2483
+ apiVersion: apps/v1
2484
+ kind: Deployment
2485
+ name: reporting-analytics-mcp
2486
+ minReplicas: 2
2487
+ maxReplicas: 6
2488
+ metrics:
2489
+ - type: Resource
2490
+ resource:
2491
+ name: cpu
2492
+ target:
2493
+ type: Utilization
2494
+ averageUtilization: 70
2495
+ - type: Resource
2496
+ resource:
2497
+ name: memory
2498
+ target:
2499
+ type: Utilization
2500
+ averageUtilization: 80
2501
+ behavior:
2502
+ scaleUp:
2503
+ stabilizationWindowSeconds: 60
2504
+ policies:
2505
+ - type: Percent
2506
+ value: 50
2507
+ periodSeconds: 60
2508
+ scaleDown:
2509
+ stabilizationWindowSeconds: 300
2510
+ policies:
2511
+ - type: Percent
2512
+ value: 25
2513
+ periodSeconds: 60
2514
+ ---
2515
+ # ServiceNow Reporting & Analytics MCP ServiceMonitor for Prometheus
2516
+ apiVersion: monitoring.coreos.com/v1
2517
+ kind: ServiceMonitor
2518
+ metadata:
2519
+ name: reporting-analytics-mcp
2520
+ namespace: servicenow-mcp
2521
+ labels:
2522
+ app.kubernetes.io/name: reporting-analytics-mcp
2523
+ app.kubernetes.io/instance: reporting-analytics-mcp
2524
+ app.kubernetes.io/component: monitoring
2525
+ spec:
2526
+ selector:
2527
+ matchLabels:
2528
+ app.kubernetes.io/name: reporting-analytics-mcp
2529
+ app.kubernetes.io/instance: reporting-analytics-mcp
2530
+ endpoints:
2531
+ - port: http
2532
+ interval: 30s
2533
+ path: /metrics
2534
+ scrapeTimeout: 10s
2535
+ ---
2536
+ # ServiceNow Reporting & Analytics MCP Pod Disruption Budget
2537
+ apiVersion: policy/v1
2538
+ kind: PodDisruptionBudget
2539
+ metadata:
2540
+ name: reporting-analytics-mcp-pdb
2541
+ namespace: servicenow-mcp
2542
+ labels:
2543
+ app.kubernetes.io/name: reporting-analytics-mcp
2544
+ app.kubernetes.io/instance: reporting-analytics-mcp
2545
+ app.kubernetes.io/component: availability
2546
+ spec:
2547
+ minAvailable: 1
2548
+ selector:
2549
+ matchLabels:
2550
+ app.kubernetes.io/name: reporting-analytics-mcp
2551
+ app.kubernetes.io/instance: reporting-analytics-mcp
2552
+ ---