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,515 @@
1
+ # Monitoring stack for ServiceNow MCP services
2
+ # Prometheus deployment
3
+ apiVersion: apps/v1
4
+ kind: Deployment
5
+ metadata:
6
+ name: prometheus
7
+ namespace: servicenow-mcp
8
+ labels:
9
+ app.kubernetes.io/name: prometheus
10
+ app.kubernetes.io/component: monitoring
11
+ spec:
12
+ replicas: 1
13
+ strategy:
14
+ type: Recreate
15
+ selector:
16
+ matchLabels:
17
+ app.kubernetes.io/name: prometheus
18
+ template:
19
+ metadata:
20
+ labels:
21
+ app.kubernetes.io/name: prometheus
22
+ app.kubernetes.io/component: monitoring
23
+ spec:
24
+ serviceAccountName: mcp-monitoring-account
25
+ containers:
26
+ - name: prometheus
27
+ image: prom/prometheus:v2.45.0
28
+ ports:
29
+ - containerPort: 9090
30
+ name: web
31
+ args:
32
+ - '--config.file=/etc/prometheus/prometheus.yml'
33
+ - '--storage.tsdb.path=/prometheus'
34
+ - '--web.console.libraries=/etc/prometheus/console_libraries'
35
+ - '--web.console.templates=/etc/prometheus/consoles'
36
+ - '--storage.tsdb.retention.time=30d'
37
+ - '--storage.tsdb.retention.size=50GB'
38
+ - '--web.enable-lifecycle'
39
+ - '--web.enable-admin-api'
40
+ resources:
41
+ requests:
42
+ memory: "1Gi"
43
+ cpu: "500m"
44
+ limits:
45
+ memory: "2Gi"
46
+ cpu: "1000m"
47
+ volumeMounts:
48
+ - name: prometheus-config
49
+ mountPath: /etc/prometheus
50
+ - name: prometheus-data
51
+ mountPath: /prometheus
52
+ livenessProbe:
53
+ httpGet:
54
+ path: /-/healthy
55
+ port: 9090
56
+ initialDelaySeconds: 30
57
+ periodSeconds: 30
58
+ readinessProbe:
59
+ httpGet:
60
+ path: /-/ready
61
+ port: 9090
62
+ initialDelaySeconds: 5
63
+ periodSeconds: 5
64
+ volumes:
65
+ - name: prometheus-config
66
+ configMap:
67
+ name: prometheus-config
68
+ - name: prometheus-data
69
+ persistentVolumeClaim:
70
+ claimName: prometheus-data-pvc
71
+ ---
72
+ # Prometheus Service
73
+ apiVersion: v1
74
+ kind: Service
75
+ metadata:
76
+ name: prometheus
77
+ namespace: servicenow-mcp
78
+ labels:
79
+ app.kubernetes.io/name: prometheus
80
+ app.kubernetes.io/component: monitoring
81
+ spec:
82
+ type: ClusterIP
83
+ ports:
84
+ - port: 9090
85
+ targetPort: 9090
86
+ protocol: TCP
87
+ name: web
88
+ selector:
89
+ app.kubernetes.io/name: prometheus
90
+ ---
91
+ # Prometheus PVC
92
+ apiVersion: v1
93
+ kind: PersistentVolumeClaim
94
+ metadata:
95
+ name: prometheus-data-pvc
96
+ namespace: servicenow-mcp
97
+ labels:
98
+ app.kubernetes.io/name: prometheus
99
+ app.kubernetes.io/component: monitoring
100
+ spec:
101
+ accessModes:
102
+ - ReadWriteOnce
103
+ resources:
104
+ requests:
105
+ storage: 100Gi
106
+ storageClassName: fast-ssd
107
+ ---
108
+ # Prometheus Configuration
109
+ apiVersion: v1
110
+ kind: ConfigMap
111
+ metadata:
112
+ name: prometheus-config
113
+ namespace: servicenow-mcp
114
+ labels:
115
+ app.kubernetes.io/name: prometheus
116
+ app.kubernetes.io/component: monitoring
117
+ data:
118
+ prometheus.yml: |
119
+ global:
120
+ scrape_interval: 30s
121
+ evaluation_interval: 30s
122
+ external_labels:
123
+ cluster: 'servicenow-mcp'
124
+ environment: 'production'
125
+
126
+ rule_files:
127
+ - "/etc/prometheus/rules/*.yml"
128
+
129
+ alerting:
130
+ alertmanagers:
131
+ - static_configs:
132
+ - targets:
133
+ - alertmanager:9093
134
+
135
+ scrape_configs:
136
+ # Prometheus self-monitoring
137
+ - job_name: 'prometheus'
138
+ static_configs:
139
+ - targets: ['localhost:9090']
140
+
141
+ # MCP Services
142
+ - job_name: 'mcp-services'
143
+ kubernetes_sd_configs:
144
+ - role: endpoints
145
+ namespaces:
146
+ names:
147
+ - servicenow-mcp
148
+ relabel_configs:
149
+ - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]
150
+ action: keep
151
+ regex: true
152
+ - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
153
+ action: replace
154
+ target_label: __metrics_path__
155
+ regex: (.+)
156
+ - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
157
+ action: replace
158
+ regex: ([^:]+)(?::\d+)?;(\d+)
159
+ replacement: $1:$2
160
+ target_label: __address__
161
+ - action: labelmap
162
+ regex: __meta_kubernetes_service_label_(.+)
163
+ - source_labels: [__meta_kubernetes_namespace]
164
+ action: replace
165
+ target_label: kubernetes_namespace
166
+ - source_labels: [__meta_kubernetes_service_name]
167
+ action: replace
168
+ target_label: kubernetes_name
169
+
170
+ # Infrastructure services
171
+ - job_name: 'consul'
172
+ static_configs:
173
+ - targets: ['consul:8500']
174
+ metrics_path: '/v1/agent/metrics'
175
+ params:
176
+ format: ['prometheus']
177
+
178
+ - job_name: 'redis'
179
+ static_configs:
180
+ - targets: ['redis:6379']
181
+
182
+ - job_name: 'neo4j'
183
+ static_configs:
184
+ - targets: ['neo4j:2004']
185
+ metrics_path: '/metrics'
186
+
187
+ # Kubernetes monitoring
188
+ - job_name: 'kubernetes-apiservers'
189
+ kubernetes_sd_configs:
190
+ - role: endpoints
191
+ scheme: https
192
+ tls_config:
193
+ ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
194
+ bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
195
+ relabel_configs:
196
+ - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
197
+ action: keep
198
+ regex: default;kubernetes;https
199
+
200
+ - job_name: 'kubernetes-nodes'
201
+ kubernetes_sd_configs:
202
+ - role: node
203
+ scheme: https
204
+ tls_config:
205
+ ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
206
+ bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
207
+ relabel_configs:
208
+ - action: labelmap
209
+ regex: __meta_kubernetes_node_label_(.+)
210
+ - target_label: __address__
211
+ replacement: kubernetes.default.svc:443
212
+ - source_labels: [__meta_kubernetes_node_name]
213
+ regex: (.+)
214
+ target_label: __metrics_path__
215
+ replacement: /api/v1/nodes/${1}/proxy/metrics
216
+
217
+ rules.yml: |
218
+ groups:
219
+ - name: mcp-services
220
+ rules:
221
+ # High CPU usage
222
+ - alert: MCPServiceHighCPU
223
+ expr: rate(container_cpu_usage_seconds_total{namespace="servicenow-mcp"}[5m]) > 0.8
224
+ for: 2m
225
+ labels:
226
+ severity: warning
227
+ annotations:
228
+ summary: "MCP Service {{ $labels.pod }} has high CPU usage"
229
+ description: "CPU usage is above 80% for more than 2 minutes"
230
+
231
+ # High memory usage
232
+ - alert: MCPServiceHighMemory
233
+ expr: container_memory_usage_bytes{namespace="servicenow-mcp"} / container_spec_memory_limit_bytes > 0.9
234
+ for: 2m
235
+ labels:
236
+ severity: warning
237
+ annotations:
238
+ summary: "MCP Service {{ $labels.pod }} has high memory usage"
239
+ description: "Memory usage is above 90% for more than 2 minutes"
240
+
241
+ # Service down
242
+ - alert: MCPServiceDown
243
+ expr: up{job="mcp-services"} == 0
244
+ for: 1m
245
+ labels:
246
+ severity: critical
247
+ annotations:
248
+ summary: "MCP Service {{ $labels.instance }} is down"
249
+ description: "Service has been down for more than 1 minute"
250
+
251
+ # High error rate
252
+ - alert: MCPServiceHighErrorRate
253
+ expr: rate(http_requests_total{job="mcp-services",status=~"5.."}[5m]) / rate(http_requests_total{job="mcp-services"}[5m]) > 0.1
254
+ for: 2m
255
+ labels:
256
+ severity: warning
257
+ annotations:
258
+ summary: "MCP Service {{ $labels.instance }} has high error rate"
259
+ description: "Error rate is above 10% for more than 2 minutes"
260
+
261
+ ---
262
+ # Grafana deployment
263
+ apiVersion: apps/v1
264
+ kind: Deployment
265
+ metadata:
266
+ name: grafana
267
+ namespace: servicenow-mcp
268
+ labels:
269
+ app.kubernetes.io/name: grafana
270
+ app.kubernetes.io/component: monitoring
271
+ spec:
272
+ replicas: 1
273
+ strategy:
274
+ type: Recreate
275
+ selector:
276
+ matchLabels:
277
+ app.kubernetes.io/name: grafana
278
+ template:
279
+ metadata:
280
+ labels:
281
+ app.kubernetes.io/name: grafana
282
+ app.kubernetes.io/component: monitoring
283
+ spec:
284
+ serviceAccountName: mcp-monitoring-account
285
+ securityContext:
286
+ fsGroup: 472
287
+ runAsUser: 472
288
+ containers:
289
+ - name: grafana
290
+ image: grafana/grafana:10.0.0
291
+ ports:
292
+ - containerPort: 3000
293
+ name: web
294
+ env:
295
+ - name: GF_SECURITY_ADMIN_USER
296
+ valueFrom:
297
+ secretKeyRef:
298
+ name: monitoring-credentials
299
+ key: GRAFANA_ADMIN_USER
300
+ - name: GF_SECURITY_ADMIN_PASSWORD
301
+ valueFrom:
302
+ secretKeyRef:
303
+ name: monitoring-credentials
304
+ key: GRAFANA_ADMIN_PASSWORD
305
+ - name: GF_USERS_ALLOW_SIGN_UP
306
+ value: "false"
307
+ - name: GF_SERVER_DOMAIN
308
+ value: "localhost"
309
+ - name: GF_SMTP_ENABLED
310
+ value: "false"
311
+ resources:
312
+ requests:
313
+ memory: "256Mi"
314
+ cpu: "250m"
315
+ limits:
316
+ memory: "512Mi"
317
+ cpu: "500m"
318
+ volumeMounts:
319
+ - name: grafana-data
320
+ mountPath: /var/lib/grafana
321
+ - name: grafana-config
322
+ mountPath: /etc/grafana/provisioning
323
+ livenessProbe:
324
+ httpGet:
325
+ path: /api/health
326
+ port: 3000
327
+ initialDelaySeconds: 60
328
+ periodSeconds: 30
329
+ readinessProbe:
330
+ httpGet:
331
+ path: /api/health
332
+ port: 3000
333
+ initialDelaySeconds: 10
334
+ periodSeconds: 10
335
+ volumes:
336
+ - name: grafana-data
337
+ persistentVolumeClaim:
338
+ claimName: grafana-data-pvc
339
+ - name: grafana-config
340
+ configMap:
341
+ name: grafana-config
342
+ ---
343
+ # Grafana Service
344
+ apiVersion: v1
345
+ kind: Service
346
+ metadata:
347
+ name: grafana
348
+ namespace: servicenow-mcp
349
+ labels:
350
+ app.kubernetes.io/name: grafana
351
+ app.kubernetes.io/component: monitoring
352
+ spec:
353
+ type: ClusterIP
354
+ ports:
355
+ - port: 3000
356
+ targetPort: 3000
357
+ protocol: TCP
358
+ name: web
359
+ selector:
360
+ app.kubernetes.io/name: grafana
361
+ ---
362
+ # Grafana PVC
363
+ apiVersion: v1
364
+ kind: PersistentVolumeClaim
365
+ metadata:
366
+ name: grafana-data-pvc
367
+ namespace: servicenow-mcp
368
+ labels:
369
+ app.kubernetes.io/name: grafana
370
+ app.kubernetes.io/component: monitoring
371
+ spec:
372
+ accessModes:
373
+ - ReadWriteOnce
374
+ resources:
375
+ requests:
376
+ storage: 10Gi
377
+ storageClassName: standard
378
+ ---
379
+ # Grafana Configuration
380
+ apiVersion: v1
381
+ kind: ConfigMap
382
+ metadata:
383
+ name: grafana-config
384
+ namespace: servicenow-mcp
385
+ labels:
386
+ app.kubernetes.io/name: grafana
387
+ app.kubernetes.io/component: monitoring
388
+ data:
389
+ datasources.yml: |
390
+ apiVersion: 1
391
+ datasources:
392
+ - name: Prometheus
393
+ type: prometheus
394
+ access: proxy
395
+ url: http://prometheus:9090
396
+ isDefault: true
397
+ editable: true
398
+
399
+ dashboards.yml: |
400
+ apiVersion: 1
401
+ providers:
402
+ - name: 'ServiceNow MCP Dashboards'
403
+ orgId: 1
404
+ folder: 'ServiceNow MCP'
405
+ type: file
406
+ disableDeletion: false
407
+ updateIntervalSeconds: 10
408
+ allowUiUpdates: true
409
+ options:
410
+ path: /var/lib/grafana/dashboards
411
+
412
+ ---
413
+ # AlertManager deployment (optional but recommended)
414
+ apiVersion: apps/v1
415
+ kind: Deployment
416
+ metadata:
417
+ name: alertmanager
418
+ namespace: servicenow-mcp
419
+ labels:
420
+ app.kubernetes.io/name: alertmanager
421
+ app.kubernetes.io/component: monitoring
422
+ spec:
423
+ replicas: 1
424
+ selector:
425
+ matchLabels:
426
+ app.kubernetes.io/name: alertmanager
427
+ template:
428
+ metadata:
429
+ labels:
430
+ app.kubernetes.io/name: alertmanager
431
+ app.kubernetes.io/component: monitoring
432
+ spec:
433
+ serviceAccountName: mcp-monitoring-account
434
+ containers:
435
+ - name: alertmanager
436
+ image: prom/alertmanager:v0.26.0
437
+ ports:
438
+ - containerPort: 9093
439
+ name: web
440
+ args:
441
+ - '--config.file=/etc/alertmanager/alertmanager.yml'
442
+ - '--storage.path=/alertmanager'
443
+ - '--web.external-url=http://localhost:9093'
444
+ resources:
445
+ requests:
446
+ memory: "128Mi"
447
+ cpu: "100m"
448
+ limits:
449
+ memory: "256Mi"
450
+ cpu: "200m"
451
+ volumeMounts:
452
+ - name: alertmanager-config
453
+ mountPath: /etc/alertmanager
454
+ - name: alertmanager-data
455
+ mountPath: /alertmanager
456
+ volumes:
457
+ - name: alertmanager-config
458
+ configMap:
459
+ name: alertmanager-config
460
+ - name: alertmanager-data
461
+ emptyDir: {}
462
+ ---
463
+ # AlertManager Service
464
+ apiVersion: v1
465
+ kind: Service
466
+ metadata:
467
+ name: alertmanager
468
+ namespace: servicenow-mcp
469
+ labels:
470
+ app.kubernetes.io/name: alertmanager
471
+ app.kubernetes.io/component: monitoring
472
+ spec:
473
+ type: ClusterIP
474
+ ports:
475
+ - port: 9093
476
+ targetPort: 9093
477
+ protocol: TCP
478
+ name: web
479
+ selector:
480
+ app.kubernetes.io/name: alertmanager
481
+ ---
482
+ # AlertManager Configuration
483
+ apiVersion: v1
484
+ kind: ConfigMap
485
+ metadata:
486
+ name: alertmanager-config
487
+ namespace: servicenow-mcp
488
+ labels:
489
+ app.kubernetes.io/name: alertmanager
490
+ app.kubernetes.io/component: monitoring
491
+ data:
492
+ alertmanager.yml: |
493
+ global:
494
+ smtp_smarthost: 'localhost:587'
495
+ smtp_from: 'alertmanager@servicenow-mcp.local'
496
+
497
+ route:
498
+ group_by: ['alertname']
499
+ group_wait: 10s
500
+ group_interval: 10s
501
+ repeat_interval: 1h
502
+ receiver: 'web.hook'
503
+
504
+ receivers:
505
+ - name: 'web.hook'
506
+ webhook_configs:
507
+ - url: 'http://localhost:5001/'
508
+ send_resolved: true
509
+
510
+ inhibit_rules:
511
+ - source_match:
512
+ severity: 'critical'
513
+ target_match:
514
+ severity: 'warning'
515
+ equal: ['alertname', 'dev', 'instance']
@@ -0,0 +1,80 @@
1
+ # Kubernetes namespace for ServiceNow MCP services
2
+ apiVersion: v1
3
+ kind: Namespace
4
+ metadata:
5
+ name: servicenow-mcp
6
+ labels:
7
+ name: servicenow-mcp
8
+ app.kubernetes.io/name: servicenow-mcp
9
+ app.kubernetes.io/component: namespace
10
+ app.kubernetes.io/version: "1.0.0"
11
+ app.kubernetes.io/managed-by: kubectl
12
+ annotations:
13
+ description: "ServiceNow Multi-Agent MCP Services"
14
+ contact: "devops@company.com"
15
+ ---
16
+ # Network policies for security
17
+ apiVersion: networking.k8s.io/v1
18
+ kind: NetworkPolicy
19
+ metadata:
20
+ name: mcp-network-policy
21
+ namespace: servicenow-mcp
22
+ spec:
23
+ podSelector: {}
24
+ policyTypes:
25
+ - Ingress
26
+ - Egress
27
+ ingress:
28
+ # Allow traffic within namespace
29
+ - from:
30
+ - namespaceSelector:
31
+ matchLabels:
32
+ name: servicenow-mcp
33
+ # Allow traffic from ingress controller
34
+ - from:
35
+ - namespaceSelector:
36
+ matchLabels:
37
+ name: ingress-nginx
38
+ # Allow traffic from monitoring namespace
39
+ - from:
40
+ - namespaceSelector:
41
+ matchLabels:
42
+ name: monitoring
43
+ egress:
44
+ # Allow all outbound traffic (for ServiceNow API calls)
45
+ - {}
46
+ ---
47
+ # Resource quotas
48
+ apiVersion: v1
49
+ kind: ResourceQuota
50
+ metadata:
51
+ name: mcp-resource-quota
52
+ namespace: servicenow-mcp
53
+ spec:
54
+ hard:
55
+ requests.cpu: "10"
56
+ requests.memory: 20Gi
57
+ limits.cpu: "20"
58
+ limits.memory: 40Gi
59
+ pods: "50"
60
+ services: "20"
61
+ persistentvolumeclaims: "10"
62
+ ---
63
+ # Limit ranges
64
+ apiVersion: v1
65
+ kind: LimitRange
66
+ metadata:
67
+ name: mcp-limit-range
68
+ namespace: servicenow-mcp
69
+ spec:
70
+ limits:
71
+ - default:
72
+ memory: "512Mi"
73
+ cpu: "500m"
74
+ defaultRequest:
75
+ memory: "256Mi"
76
+ cpu: "250m"
77
+ type: Container
78
+ - default:
79
+ storage: "10Gi"
80
+ type: PersistentVolumeClaim