trustgraph/deploy/minikube/tg-launch-cohere-cassandra.yaml
2024-09-28 11:54:00 +01:00

2068 lines
69 KiB
YAML

apiVersion: v1
items:
- apiVersion: v1
kind: Namespace
metadata:
name: trustgraph
spec: {}
- apiVersion: v1
kind: PersistentVolume
metadata:
name: cassandra
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 20G
hostPath:
path: /data/pv-cassandra
persistentVolumeReclaimPolicy: Delete
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: cassandra
namespace: trustgraph
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20G
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: cassandra
name: cassandra
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: cassandra
template:
metadata:
labels:
app: cassandra
spec:
containers:
- env:
- name: JVM_OPTS
value: -Xms256M -Xmx256M
image: docker.io/cassandra:4.1.6
name: cassandra
ports:
- containerPort: 9042
hostPort: 9042
resources:
limits:
cpu: '1.0'
memory: 800M
requests:
cpu: '0.5'
memory: 800M
securityContext:
runAsGroup: 0
runAsUser: 0
volumeMounts:
- mountPath: /var/lib/cassandra
name: cassandra
volumes:
- name: cassandra
persistentVolumeClaim:
claimName: cassandra
- apiVersion: v1
kind: Service
metadata:
name: cassandra
namespace: trustgraph
spec:
ports:
- name: api
port: 9042
targetPort: 9042
selector:
app: cassandra
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: chunker
name: chunker
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: chunker
template:
metadata:
labels:
app: chunker
spec:
containers:
- command:
- chunker-token
- -p
- pulsar://pulsar:6650
- --chunk-size
- '150'
- --chunk-overlap
- '10'
image: docker.io/trustgraph/trustgraph-flow:0.10.1
name: chunker
resources:
limits:
cpu: '0.5'
memory: 128M
requests:
cpu: '0.1'
memory: 128M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: v1
kind: Service
metadata:
name: chunker
namespace: trustgraph
spec:
ports:
- name: metrics
port: 8000
targetPort: 8000
selector:
app: chunker
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: embeddings
name: embeddings
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: embeddings
template:
metadata:
labels:
app: embeddings
spec:
containers:
- command:
- embeddings-hf
- -p
- pulsar://pulsar:6650
- -m
- all-MiniLM-L6-v2
image: docker.io/trustgraph/trustgraph-flow:0.10.1
name: embeddings
resources:
limits:
cpu: '1.0'
memory: 400M
requests:
cpu: '0.5'
memory: 400M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: v1
kind: Service
metadata:
name: embeddings
namespace: trustgraph
spec:
ports:
- name: metrics
port: 8000
targetPort: 8000
selector:
app: embeddings
type: LoadBalancer
- apiVersion: v1
kind: PersistentVolume
metadata:
name: grafana-storage
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 20G
hostPath:
path: /data/pv-grafana-storage
persistentVolumeReclaimPolicy: Delete
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: grafana-storage
namespace: trustgraph
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20G
- apiVersion: v1
data:
dashboard.yml: "\napiVersion: 1\n\nproviders:\n\n - name: 'trustgraph.ai'\n \
\ orgId: 1\n folder: 'TrustGraph'\n folderUid: 'b6c5be90-d432-4df8-aeab-737c7b151228'\n\
\ type: file\n disableDeletion: false\n updateIntervalSeconds: 30\n\
\ allowUiUpdates: true\n options:\n path: /var/lib/grafana/dashboards\n\
\ foldersFromFilesStructure: false\n\n"
kind: ConfigMap
metadata:
name: prov-dash
namespace: trustgraph
- apiVersion: v1
data:
datasource.yml: "apiVersion: 1\n\nprune: true\n\ndatasources:\n - name: Prometheus\n\
\ type: prometheus\n access: proxy\n orgId: 1\n # <string> Sets\
\ a custom UID to reference this\n # data source in other parts of the configuration.\n\
\ # If not specified, Grafana generates one.\n uid: 'f6b18033-5918-4e05-a1ca-4cb30343b129'\n\
\n url: http://prometheus:9090\n\n basicAuth: false\n withCredentials:\
\ false\n isDefault: true\n editable: true\n\n"
kind: ConfigMap
metadata:
name: prov-data
namespace: trustgraph
- apiVersion: v1
data:
dashboard.json: "{\n \"annotations\": {\n \"list\": [\n {\n \"\
builtIn\": 1,\n \"datasource\": {\n \"type\": \"grafana\",\n\
\ \"uid\": \"-- Grafana --\"\n },\n \"enable\": true,\n\
\ \"hide\": true,\n \"iconColor\": \"rgba(0, 211, 255, 1)\",\n\
\ \"name\": \"Annotations & Alerts\",\n \"type\": \"dashboard\"\
\n }\n ]\n },\n \"editable\": true,\n \"fiscalYearStartMonth\": 0,\n\
\ \"graphTooltip\": 0,\n \"id\": 2,\n \"links\": [],\n \"liveNow\": false,\n\
\ \"panels\": [\n {\n \"datasource\": {\n \"type\": \"prometheus\"\
,\n \"uid\": \"f6b18033-5918-4e05-a1ca-4cb30343b129\"\n },\n \
\ \"fieldConfig\": {\n \"defaults\": {\n \"custom\": {\n \
\ \"hideFrom\": {\n \"legend\": false,\n \
\ \"tooltip\": false,\n \"viz\": false\n },\n \
\ \"scaleDistribution\": {\n \"type\": \"linear\"\n \
\ }\n }\n },\n \"overrides\": []\n },\n \
\ \"gridPos\": {\n \"h\": 8,\n \"w\": 12,\n \"x\": 0,\n\
\ \"y\": 0\n },\n \"id\": 7,\n \"options\": {\n \
\ \"calculate\": false,\n \"cellGap\": 1,\n \"color\": {\n \
\ \"exponent\": 0.5,\n \"fill\": \"dark-orange\",\n \
\ \"mode\": \"scheme\",\n \"reverse\": false,\n \"scale\"\
: \"exponential\",\n \"scheme\": \"Oranges\",\n \"steps\"\
: 64\n },\n \"exemplars\": {\n \"color\": \"rgba(255,0,255,0.7)\"\
\n },\n \"filterValues\": {\n \"le\": 1e-9\n },\n\
\ \"legend\": {\n \"show\": true\n },\n \"rowsFrame\"\
: {\n \"layout\": \"auto\"\n },\n \"tooltip\": {\n \
\ \"mode\": \"single\",\n \"showColorScale\": false,\n \
\ \"yHistogram\": false\n },\n \"yAxis\": {\n \"\
axisPlacement\": \"left\",\n \"reverse\": false\n }\n },\n\
\ \"pluginVersion\": \"11.1.4\",\n \"targets\": [\n {\n \
\ \"datasource\": {\n \"type\": \"prometheus\",\n \
\ \"uid\": \"f6b18033-5918-4e05-a1ca-4cb30343b129\"\n },\n \
\ \"editorMode\": \"code\",\n \"exemplar\": false,\n \"\
expr\": \"max by(le) (text_completion_duration_bucket)\",\n \"format\"\
: \"heatmap\",\n \"instant\": false,\n \"legendFormat\": \"\
99%\",\n \"range\": true,\n \"refId\": \"A\"\n }\n\
\ ],\n \"title\": \"LLM latency\",\n \"type\": \"heatmap\"\n\
\ },\n {\n \"datasource\": {\n \"type\": \"prometheus\",\n\
\ \"uid\": \"f6b18033-5918-4e05-a1ca-4cb30343b129\"\n },\n \
\ \"fieldConfig\": {\n \"defaults\": {\n \"custom\": {\n \
\ \"hideFrom\": {\n \"legend\": false,\n \"\
tooltip\": false,\n \"viz\": false\n },\n \
\ \"scaleDistribution\": {\n \"type\": \"linear\"\n \
\ }\n }\n },\n \"overrides\": []\n },\n \"\
gridPos\": {\n \"h\": 8,\n \"w\": 12,\n \"x\": 12,\n \
\ \"y\": 0\n },\n \"id\": 2,\n \"options\": {\n \"\
calculate\": false,\n \"cellGap\": 5,\n \"cellValues\": {\n \
\ \"unit\": \"\"\n },\n \"color\": {\n \"exponent\"\
: 0.5,\n \"fill\": \"dark-orange\",\n \"mode\": \"scheme\"\
,\n \"reverse\": false,\n \"scale\": \"exponential\",\n \
\ \"scheme\": \"Oranges\",\n \"steps\": 64\n },\n \
\ \"exemplars\": {\n \"color\": \"rgba(255,0,255,0.7)\"\n \
\ },\n \"filterValues\": {\n \"le\": 1e-9\n },\n \
\ \"legend\": {\n \"show\": true\n },\n \"rowsFrame\"\
: {\n \"layout\": \"auto\"\n },\n \"tooltip\": {\n \
\ \"mode\": \"single\",\n \"showColorScale\": false,\n \
\ \"yHistogram\": false\n },\n \"yAxis\": {\n \"\
axisLabel\": \"processing status\",\n \"axisPlacement\": \"left\",\n\
\ \"reverse\": false\n }\n },\n \"pluginVersion\"\
: \"11.1.4\",\n \"targets\": [\n {\n \"datasource\": {\n\
\ \"type\": \"prometheus\",\n \"uid\": \"f6b18033-5918-4e05-a1ca-4cb30343b129\"\
\n },\n \"disableTextWrap\": false,\n \"editorMode\"\
: \"builder\",\n \"exemplar\": false,\n \"expr\": \"sum by(status)\
\ (rate(processing_count_total{status!=\\\"success\\\"}[$__rate_interval]))\"\
,\n \"format\": \"heatmap\",\n \"fullMetaSearch\": false,\n\
\ \"includeNullMetadata\": true,\n \"instant\": false,\n \
\ \"interval\": \"\",\n \"legendFormat\": \"{{status}}\",\n\
\ \"range\": true,\n \"refId\": \"A\",\n \"useBackend\"\
: false\n }\n ],\n \"title\": \"Error rate\",\n \"type\"\
: \"heatmap\"\n },\n {\n \"datasource\": {\n \"type\": \"\
prometheus\",\n \"uid\": \"f6b18033-5918-4e05-a1ca-4cb30343b129\"\n \
\ },\n \"fieldConfig\": {\n \"defaults\": {\n \"color\"\
: {\n \"mode\": \"palette-classic\"\n },\n \"custom\"\
: {\n \"axisBorderShow\": false,\n \"axisCenteredZero\"\
: false,\n \"axisColorMode\": \"text\",\n \"axisLabel\"\
: \"\",\n \"axisPlacement\": \"auto\",\n \"barAlignment\"\
: 0,\n \"drawStyle\": \"line\",\n \"fillOpacity\": 0,\n\
\ \"gradientMode\": \"none\",\n \"hideFrom\": {\n \
\ \"legend\": false,\n \"tooltip\": false,\n \
\ \"viz\": false\n },\n \"insertNulls\": false,\n\
\ \"lineInterpolation\": \"linear\",\n \"lineWidth\":\
\ 1,\n \"pointSize\": 5,\n \"scaleDistribution\": {\n\
\ \"type\": \"linear\"\n },\n \"showPoints\"\
: \"auto\",\n \"spanNulls\": false,\n \"stacking\": {\n\
\ \"group\": \"A\",\n \"mode\": \"none\"\n \
\ },\n \"thresholdsStyle\": {\n \"mode\": \"off\"\
\n }\n },\n \"mappings\": [],\n \"thresholds\"\
: {\n \"mode\": \"absolute\",\n \"steps\": [\n \
\ {\n \"color\": \"green\",\n \"value\"\
: null\n },\n {\n \"color\": \"red\"\
,\n \"value\": 80\n }\n ]\n \
\ }\n },\n \"overrides\": []\n },\n \"gridPos\": {\n\
\ \"h\": 9,\n \"w\": 12,\n \"x\": 0,\n \"y\": 8\n\
\ },\n \"id\": 1,\n \"options\": {\n \"legend\": {\n \
\ \"calcs\": [],\n \"displayMode\": \"list\",\n \"\
placement\": \"bottom\",\n \"showLegend\": true\n },\n \
\ \"tooltip\": {\n \"mode\": \"single\",\n \"sort\": \"\
none\"\n }\n },\n \"targets\": [\n {\n \"datasource\"\
: {\n \"type\": \"prometheus\",\n \"uid\": \"f6b18033-5918-4e05-a1ca-4cb30343b129\"\
\n },\n \"editorMode\": \"builder\",\n \"expr\":\
\ \"rate(request_latency_count[1m])\",\n \"instant\": false,\n \
\ \"legendFormat\": \"{{instance}}\",\n \"range\": true,\n \
\ \"refId\": \"A\"\n }\n ],\n \"title\": \"Request rate\"\
,\n \"type\": \"timeseries\"\n },\n {\n \"datasource\": {\n\
\ \"type\": \"prometheus\",\n \"uid\": \"f6b18033-5918-4e05-a1ca-4cb30343b129\"\
\n },\n \"fieldConfig\": {\n \"defaults\": {\n \"\
color\": {\n \"mode\": \"palette-classic\"\n },\n \
\ \"custom\": {\n \"axisBorderShow\": false,\n \"axisCenteredZero\"\
: false,\n \"axisColorMode\": \"text\",\n \"axisLabel\"\
: \"\",\n \"axisPlacement\": \"auto\",\n \"barAlignment\"\
: 0,\n \"drawStyle\": \"line\",\n \"fillOpacity\": 0,\n\
\ \"gradientMode\": \"none\",\n \"hideFrom\": {\n \
\ \"legend\": false,\n \"tooltip\": false,\n \
\ \"viz\": false\n },\n \"insertNulls\": false,\n\
\ \"lineInterpolation\": \"linear\",\n \"lineWidth\":\
\ 1,\n \"pointSize\": 5,\n \"scaleDistribution\": {\n\
\ \"type\": \"linear\"\n },\n \"showPoints\"\
: \"auto\",\n \"spanNulls\": false,\n \"stacking\": {\n\
\ \"group\": \"A\",\n \"mode\": \"none\"\n \
\ },\n \"thresholdsStyle\": {\n \"mode\": \"off\"\
\n }\n },\n \"mappings\": [],\n \"thresholds\"\
: {\n \"mode\": \"absolute\",\n \"steps\": [\n \
\ {\n \"color\": \"green\",\n \"value\"\
: null\n },\n {\n \"color\": \"red\"\
,\n \"value\": 80\n }\n ]\n \
\ }\n },\n \"overrides\": []\n },\n \"gridPos\": {\n\
\ \"h\": 9,\n \"w\": 12,\n \"x\": 12,\n \"y\": 8\n\
\ },\n \"id\": 5,\n \"options\": {\n \"legend\": {\n \
\ \"calcs\": [],\n \"displayMode\": \"list\",\n \"\
placement\": \"bottom\",\n \"showLegend\": true\n },\n \
\ \"tooltip\": {\n \"mode\": \"single\",\n \"sort\": \"\
none\"\n }\n },\n \"pluginVersion\": \"10.0.0\",\n \"\
targets\": [\n {\n \"datasource\": {\n \"type\":\
\ \"prometheus\",\n \"uid\": \"f6b18033-5918-4e05-a1ca-4cb30343b129\"\
\n },\n \"editorMode\": \"builder\",\n \"expr\":\
\ \"pulsar_msg_backlog\",\n \"instant\": false,\n \"legendFormat\"\
: \"{{topic}}\",\n \"range\": true,\n \"refId\": \"A\"\n \
\ }\n ],\n \"title\": \"Pub/sub backlog\",\n \"type\":\
\ \"timeseries\"\n },\n {\n \"datasource\": {\n \"type\":\
\ \"prometheus\",\n \"uid\": \"f6b18033-5918-4e05-a1ca-4cb30343b129\"\
\n },\n \"fieldConfig\": {\n \"defaults\": {\n \"\
color\": {\n \"fixedColor\": \"semi-dark-green\",\n \"\
mode\": \"palette-classic-by-name\"\n },\n \"custom\": {\n\
\ \"axisBorderShow\": false,\n \"axisCenteredZero\": false,\n\
\ \"axisColorMode\": \"text\",\n \"axisLabel\": \"\",\n\
\ \"axisPlacement\": \"auto\",\n \"fillOpacity\": 80,\n\
\ \"gradientMode\": \"none\",\n \"hideFrom\": {\n \
\ \"legend\": false,\n \"tooltip\": false,\n \
\ \"viz\": false\n },\n \"lineWidth\": 1,\n \
\ \"scaleDistribution\": {\n \"type\": \"linear\"\n \
\ },\n \"thresholdsStyle\": {\n \"mode\": \"off\"\
\n }\n },\n \"mappings\": [],\n \"thresholds\"\
: {\n \"mode\": \"absolute\",\n \"steps\": [\n \
\ {\n \"color\": \"green\",\n \"value\"\
: null\n },\n {\n \"color\": \"red\"\
,\n \"value\": 80\n }\n ]\n \
\ }\n },\n \"overrides\": []\n },\n \"gridPos\": {\n\
\ \"h\": 7,\n \"w\": 12,\n \"x\": 0,\n \"y\": 17\n\
\ },\n \"id\": 10,\n \"options\": {\n \"barRadius\": 0,\n\
\ \"barWidth\": 0.97,\n \"fullHighlight\": false,\n \"\
groupWidth\": 0.7,\n \"legend\": {\n \"calcs\": [],\n \
\ \"displayMode\": \"list\",\n \"placement\": \"bottom\",\n \
\ \"showLegend\": true\n },\n \"orientation\": \"auto\",\n\
\ \"showValue\": \"auto\",\n \"stacking\": \"none\",\n \
\ \"tooltip\": {\n \"mode\": \"single\",\n \"sort\": \"none\"\
\n },\n \"xTickLabelRotation\": 0,\n \"xTickLabelSpacing\"\
: 0\n },\n \"pluginVersion\": \"11.1.4\",\n \"targets\": [\n\
\ {\n \"datasource\": {\n \"type\": \"prometheus\"\
,\n \"uid\": \"f6b18033-5918-4e05-a1ca-4cb30343b129\"\n \
\ },\n \"disableTextWrap\": false,\n \"editorMode\": \"builder\"\
,\n \"exemplar\": false,\n \"expr\": \"max by(le) (chunk_size_bucket)\"\
,\n \"format\": \"heatmap\",\n \"fullMetaSearch\": false,\n\
\ \"includeNullMetadata\": false,\n \"instant\": true,\n \
\ \"legendFormat\": \"{{le}}\",\n \"range\": false,\n \
\ \"refId\": \"A\",\n \"useBackend\": false\n }\n ],\n\
\ \"title\": \"Chunk size\",\n \"type\": \"barchart\"\n },\n \
\ {\n \"datasource\": {\n \"type\": \"prometheus\",\n \"\
uid\": \"f6b18033-5918-4e05-a1ca-4cb30343b129\"\n },\n \"fieldConfig\"\
: {\n \"defaults\": {\n \"color\": {\n \"mode\":\
\ \"palette-classic\"\n },\n \"custom\": {\n \"\
axisBorderShow\": false,\n \"axisCenteredZero\": false,\n \
\ \"axisColorMode\": \"text\",\n \"axisLabel\": \"\",\n \
\ \"axisPlacement\": \"auto\",\n \"barAlignment\": 0,\n \
\ \"drawStyle\": \"line\",\n \"fillOpacity\": 0,\n \
\ \"gradientMode\": \"none\",\n \"hideFrom\": {\n \
\ \"legend\": false,\n \"tooltip\": false,\n \"\
viz\": false\n },\n \"insertNulls\": false,\n \
\ \"lineInterpolation\": \"linear\",\n \"lineWidth\": 1,\n \
\ \"pointSize\": 5,\n \"scaleDistribution\": {\n \
\ \"type\": \"linear\"\n },\n \"showPoints\": \"\
auto\",\n \"spanNulls\": false,\n \"stacking\": {\n \
\ \"group\": \"A\",\n \"mode\": \"none\"\n \
\ },\n \"thresholdsStyle\": {\n \"mode\": \"off\"\n\
\ }\n },\n \"mappings\": [],\n \"thresholds\"\
: {\n \"mode\": \"absolute\",\n \"steps\": [\n \
\ {\n \"color\": \"green\",\n \"value\"\
: null\n },\n {\n \"color\": \"red\"\
,\n \"value\": 80\n }\n ]\n \
\ }\n },\n \"overrides\": []\n },\n \"gridPos\": {\n\
\ \"h\": 7,\n \"w\": 12,\n \"x\": 12,\n \"y\": 17\n\
\ },\n \"id\": 11,\n \"options\": {\n \"legend\": {\n\
\ \"calcs\": [],\n \"displayMode\": \"list\",\n \"\
placement\": \"bottom\",\n \"showLegend\": true\n },\n \
\ \"tooltip\": {\n \"mode\": \"single\",\n \"sort\": \"\
none\"\n }\n },\n \"pluginVersion\": \"11.1.4\",\n \"\
targets\": [\n {\n \"datasource\": {\n \"type\":\
\ \"prometheus\",\n \"uid\": \"f6b18033-5918-4e05-a1ca-4cb30343b129\"\
\n },\n \"disableTextWrap\": false,\n \"editorMode\"\
: \"builder\",\n \"exemplar\": false,\n \"expr\": \"increase(processing_count_total{status!=\\\
\"success\\\"}[$__rate_interval])\",\n \"format\": \"time_series\"\
,\n \"fullMetaSearch\": false,\n \"includeNullMetadata\":\
\ true,\n \"instant\": false,\n \"legendFormat\": \"{{instance}}\"\
,\n \"range\": true,\n \"refId\": \"A\",\n \"useBackend\"\
: false\n }\n ],\n \"title\": \"Errors\",\n \"type\":\
\ \"timeseries\"\n },\n {\n \"datasource\": {\n \"type\":\
\ \"prometheus\",\n \"uid\": \"f6b18033-5918-4e05-a1ca-4cb30343b129\"\
\n },\n \"fieldConfig\": {\n \"defaults\": {\n \"\
color\": {\n \"fixedColor\": \"light-blue\",\n \"mode\"\
: \"palette-classic\"\n },\n \"custom\": {\n \"\
axisBorderShow\": false,\n \"axisCenteredZero\": false,\n \
\ \"axisColorMode\": \"text\",\n \"axisLabel\": \"\",\n \
\ \"axisPlacement\": \"auto\",\n \"barAlignment\": 0,\n \
\ \"drawStyle\": \"line\",\n \"fillOpacity\": 0,\n \
\ \"gradientMode\": \"none\",\n \"hideFrom\": {\n \
\ \"legend\": false,\n \"tooltip\": false,\n \"\
viz\": false\n },\n \"insertNulls\": false,\n \
\ \"lineInterpolation\": \"linear\",\n \"lineWidth\": 1,\n \
\ \"pointSize\": 5,\n \"scaleDistribution\": {\n \
\ \"type\": \"linear\"\n },\n \"showPoints\": \"\
auto\",\n \"spanNulls\": false,\n \"stacking\": {\n \
\ \"group\": \"A\",\n \"mode\": \"none\"\n \
\ },\n \"thresholdsStyle\": {\n \"mode\": \"off\"\n\
\ }\n },\n \"mappings\": [],\n \"thresholds\"\
: {\n \"mode\": \"absolute\",\n \"steps\": [\n \
\ {\n \"color\": \"green\",\n \"value\"\
: null\n },\n {\n \"color\": \"red\"\
,\n \"value\": 80\n }\n ]\n \
\ }\n },\n \"overrides\": []\n },\n \"gridPos\": {\n\
\ \"h\": 8,\n \"w\": 12,\n \"x\": 0,\n \"y\": 24\n\
\ },\n \"id\": 12,\n \"options\": {\n \"legend\": {\n\
\ \"calcs\": [],\n \"displayMode\": \"list\",\n \"\
placement\": \"bottom\",\n \"showLegend\": true\n },\n \
\ \"tooltip\": {\n \"mode\": \"single\",\n \"sort\": \"\
none\"\n }\n },\n \"pluginVersion\": \"11.1.4\",\n \"\
targets\": [\n {\n \"datasource\": {\n \"type\":\
\ \"prometheus\",\n \"uid\": \"f6b18033-5918-4e05-a1ca-4cb30343b129\"\
\n },\n \"disableTextWrap\": false,\n \"editorMode\"\
: \"builder\",\n \"expr\": \"rate(process_cpu_seconds_total[$__rate_interval])\"\
,\n \"fullMetaSearch\": false,\n \"includeNullMetadata\":\
\ true,\n \"instant\": false,\n \"legendFormat\": \"{{instance}}\"\
,\n \"range\": true,\n \"refId\": \"A\",\n \"useBackend\"\
: false\n }\n ],\n \"title\": \"CPU\",\n \"type\": \"\
timeseries\"\n },\n {\n \"datasource\": {\n \"type\": \"prometheus\"\
,\n \"uid\": \"f6b18033-5918-4e05-a1ca-4cb30343b129\"\n },\n \
\ \"fieldConfig\": {\n \"defaults\": {\n \"color\": {\n \
\ \"mode\": \"palette-classic\"\n },\n \"custom\"\
: {\n \"axisBorderShow\": false,\n \"axisCenteredZero\"\
: false,\n \"axisColorMode\": \"text\",\n \"axisLabel\"\
: \"GB\",\n \"axisPlacement\": \"auto\",\n \"barAlignment\"\
: 0,\n \"drawStyle\": \"line\",\n \"fillOpacity\": 0,\n\
\ \"gradientMode\": \"none\",\n \"hideFrom\": {\n \
\ \"legend\": false,\n \"tooltip\": false,\n \
\ \"viz\": false\n },\n \"insertNulls\": false,\n\
\ \"lineInterpolation\": \"linear\",\n \"lineWidth\":\
\ 1,\n \"pointSize\": 5,\n \"scaleDistribution\": {\n\
\ \"type\": \"linear\"\n },\n \"showPoints\"\
: \"auto\",\n \"spanNulls\": false,\n \"stacking\": {\n\
\ \"group\": \"A\",\n \"mode\": \"none\"\n \
\ },\n \"thresholdsStyle\": {\n \"mode\": \"off\"\
\n }\n },\n \"mappings\": [],\n \"thresholds\"\
: {\n \"mode\": \"absolute\",\n \"steps\": [\n \
\ {\n \"color\": \"green\",\n \"value\"\
: null\n },\n {\n \"color\": \"red\"\
,\n \"value\": 80\n }\n ]\n \
\ }\n },\n \"overrides\": []\n },\n \"gridPos\": {\n\
\ \"h\": 8,\n \"w\": 12,\n \"x\": 12,\n \"y\": 24\n\
\ },\n \"id\": 13,\n \"options\": {\n \"legend\": {\n\
\ \"calcs\": [],\n \"displayMode\": \"list\",\n \"\
placement\": \"bottom\",\n \"showLegend\": true\n },\n \
\ \"tooltip\": {\n \"mode\": \"single\",\n \"sort\": \"\
none\"\n }\n },\n \"targets\": [\n {\n \"datasource\"\
: {\n \"type\": \"prometheus\",\n \"uid\": \"f6b18033-5918-4e05-a1ca-4cb30343b129\"\
\n },\n \"disableTextWrap\": false,\n \"editorMode\"\
: \"builder\",\n \"expr\": \"process_resident_memory_bytes / 1073741824\"\
,\n \"fullMetaSearch\": false,\n \"includeNullMetadata\":\
\ true,\n \"instant\": false,\n \"legendFormat\": \"{{instance}}\"\
,\n \"range\": true,\n \"refId\": \"A\",\n \"useBackend\"\
: false\n }\n ],\n \"title\": \"Memory\",\n \"type\":\
\ \"timeseries\"\n },\n {\n \"datasource\": {\n \"type\":\
\ \"prometheus\",\n \"uid\": \"f6b18033-5918-4e05-a1ca-4cb30343b129\"\
\n },\n \"fieldConfig\": {\n \"defaults\": {\n \"\
color\": {\n \"mode\": \"thresholds\"\n },\n \"\
custom\": {\n \"align\": \"auto\",\n \"cellOptions\":\
\ {\n \"type\": \"auto\"\n },\n \"filterable\"\
: false,\n \"inspect\": false\n },\n \"mappings\"\
: [],\n \"thresholds\": {\n \"mode\": \"absolute\",\n \
\ \"steps\": [\n {\n \"color\": \"green\"\
,\n \"value\": null\n },\n {\n \
\ \"color\": \"red\",\n \"value\": 80\n \
\ }\n ]\n }\n },\n \"overrides\": []\n\
\ },\n \"gridPos\": {\n \"h\": 7,\n \"w\": 12,\n \
\ \"x\": 0,\n \"y\": 32\n },\n \"id\": 14,\n \"options\"\
: {\n \"cellHeight\": \"sm\",\n \"footer\": {\n \"countRows\"\
: false,\n \"fields\": \"\",\n \"reducer\": [\n \
\ \"sum\"\n ],\n \"show\": false\n },\n \"\
showHeader\": true\n },\n \"pluginVersion\": \"11.1.4\",\n \"\
targets\": [\n {\n \"datasource\": {\n \"type\":\
\ \"prometheus\",\n \"uid\": \"f6b18033-5918-4e05-a1ca-4cb30343b129\"\
\n },\n \"disableTextWrap\": false,\n \"editorMode\"\
: \"builder\",\n \"exemplar\": false,\n \"expr\": \"last_over_time(params_info[$__interval])\"\
,\n \"format\": \"table\",\n \"fullMetaSearch\": false,\n\
\ \"includeNullMetadata\": true,\n \"instant\": true,\n \
\ \"legendFormat\": \"__auto\",\n \"range\": false,\n \
\ \"refId\": \"A\",\n \"useBackend\": false\n }\n ],\n\
\ \"title\": \"Model parameters\",\n \"transformations\": [\n \
\ {\n \"id\": \"filterFieldsByName\",\n \"options\": {\n\
\ \"include\": {\n \"names\": [\n \"\
instance\",\n \"model\"\n ]\n }\n \
\ }\n },\n {\n \"id\": \"filterByValue\",\n \
\ \"options\": {\n \"filters\": [\n {\n \
\ \"config\": {\n \"id\": \"equal\",\n \
\ \"options\": {\n \"value\": \"\"\n \
\ }\n },\n \"fieldName\": \"model\"\n \
\ }\n ],\n \"match\": \"all\",\n \"\
type\": \"exclude\"\n }\n }\n ],\n \"type\": \"table\"\
\n }\n ],\n \"refresh\": \"5s\",\n \"schemaVersion\": 39,\n \"tags\"\
: [],\n \"templating\": {\n \"list\": []\n },\n \"time\": {\n \"from\"\
: \"now-5m\",\n \"to\": \"now\"\n },\n \"timepicker\": {},\n \"timezone\"\
: \"\",\n \"title\": \"Overview\",\n \"uid\": \"b5c8abf8-fe79-496b-b028-10bde917d1f0\"\
,\n \"version\": 3,\n \"weekStart\": \"\"\n}\n"
kind: ConfigMap
metadata:
name: dashboards
namespace: trustgraph
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: grafana
name: grafana
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: grafana
template:
metadata:
labels:
app: grafana
spec:
containers:
- env:
- name: GF_ORG_NAME
value: trustgraph.ai
image: docker.io/grafana/grafana:11.1.4
name: grafana
ports:
- containerPort: 3000
hostPort: 3000
resources:
limits:
cpu: '1.0'
memory: 256M
requests:
cpu: '0.5'
memory: 256M
securityContext:
runAsGroup: 0
runAsUser: 0
volumeMounts:
- mountPath: /var/lib/grafana
name: grafana-storage
- mountPath: /etc/grafana/provisioning/dashboards/
name: prov-dash
- mountPath: /etc/grafana/provisioning/datasources/
name: prov-data
- mountPath: /var/lib/grafana/dashboards/
name: dashboards
volumes:
- name: grafana-storage
persistentVolumeClaim:
claimName: grafana-storage
- configMap:
name: prov-dash
name: prov-dash
- configMap:
name: prov-data
name: prov-data
- configMap:
name: dashboards
name: dashboards
- apiVersion: v1
kind: Service
metadata:
name: grafana
namespace: trustgraph
spec:
ports:
- name: http
port: 3000
targetPort: 3000
selector:
app: grafana
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: graph-rag
name: graph-rag
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: graph-rag
template:
metadata:
labels:
app: graph-rag
spec:
containers:
- command:
- graph-rag
- -p
- pulsar://pulsar:6650
- --prompt-request-queue
- non-persistent://tg/request/prompt-rag
- --prompt-response-queue
- non-persistent://tg/response/prompt-rag-response
- --entity-limit
- '50'
- --triple-limit
- '30'
- --max-subgraph-size
- '3000'
image: docker.io/trustgraph/trustgraph-flow:0.10.1
name: graph-rag
resources:
limits:
cpu: '0.5'
memory: 128M
requests:
cpu: '0.1'
memory: 128M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: v1
kind: Service
metadata:
name: graph-rag
namespace: trustgraph
spec:
ports:
- name: metrics
port: 8000
targetPort: 8000
selector:
app: graph-rag
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: kg-extract-definitions
name: kg-extract-definitions
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: kg-extract-definitions
template:
metadata:
labels:
app: kg-extract-definitions
spec:
containers:
- command:
- kg-extract-definitions
- -p
- pulsar://pulsar:6650
image: docker.io/trustgraph/trustgraph-flow:0.10.1
name: kg-extract-definitions
resources:
limits:
cpu: '0.5'
memory: 128M
requests:
cpu: '0.1'
memory: 128M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: v1
kind: Service
metadata:
name: kg-extract-definitions
namespace: trustgraph
spec:
ports:
- name: metrics
port: 8000
targetPort: 8000
selector:
app: kg-extract-definitions
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: kg-extract-relationships
name: kg-extract-relationships
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: kg-extract-relationships
template:
metadata:
labels:
app: kg-extract-relationships
spec:
containers:
- command:
- kg-extract-relationships
- -p
- pulsar://pulsar:6650
image: docker.io/trustgraph/trustgraph-flow:0.10.1
name: kg-extract-relationships
resources:
limits:
cpu: '0.5'
memory: 128M
requests:
cpu: '0.1'
memory: 128M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: v1
kind: Service
metadata:
name: kg-extract-relationships
namespace: trustgraph
spec:
ports:
- name: metrics
port: 8000
targetPort: 8000
selector:
app: kg-extract-relationships
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: kg-extract-topics
name: kg-extract-topics
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: kg-extract-topics
template:
metadata:
labels:
app: kg-extract-topics
spec:
containers:
- command:
- kg-extract-topics
- -p
- pulsar://pulsar:6650
image: docker.io/trustgraph/trustgraph-flow:0.10.1
name: kg-extract-topics
resources:
limits:
cpu: '0.5'
memory: 128M
requests:
cpu: '0.1'
memory: 128M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: pdf-decoder
name: pdf-decoder
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: pdf-decoder
template:
metadata:
labels:
app: pdf-decoder
spec:
containers:
- command:
- pdf-decoder
- -p
- pulsar://pulsar:6650
image: docker.io/trustgraph/trustgraph-flow:0.10.1
name: pdf-decoder
resources:
limits:
cpu: '0.5'
memory: 128M
requests:
cpu: '0.1'
memory: 128M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: v1
kind: Service
metadata:
name: pdf-decoder
namespace: trustgraph
spec:
ports:
- name: metrics
port: 8000
targetPort: 8000
selector:
app: pdf-decoder
type: LoadBalancer
- apiVersion: v1
data:
prometheus.yml: "global:\n\n scrape_interval: 15s # By default, scrape targets\
\ every 15 seconds.\n\n # Attach these labels to any time series or alerts\
\ when communicating with\n # external systems (federation, remote storage,\
\ Alertmanager).\n external_labels:\n monitor: 'trustgraph'\n\n# A scrape\
\ configuration containing exactly one endpoint to scrape:\n# Here it's Prometheus\
\ itself.\nscrape_configs:\n\n # The job name is added as a label `job=<job_name>`\
\ to any timeseries\n # scraped from this config.\n\n - job_name: 'trustgraph'\n\
\n # Override the global default and scrape targets from this job every\n\
\ # 5 seconds.\n scrape_interval: 5s\n\n static_configs:\n - targets:\n\
\ - 'pdf-decoder:8000'\n - 'chunker:8000'\n - 'vectorize:8000'\n\
\ - 'embeddings:8000'\n - 'kg-extract-definitions:8000'\n \
\ - 'kg-extract-topics:8000'\n - 'kg-extract-relationships:8000'\n\
\ - 'store-graph-embeddings:8000'\n - 'store-triples:8000'\n \
\ - 'text-completion:8000'\n - 'text-completion-rag:8000'\n \
\ - 'graph-rag:8000'\n - 'prompt:8000'\n - 'prompt-rag:8000'\n\
\ - 'query-graph-embeddings:8000'\n - 'query-triples:8000'\n \
\ - 'pulsar:8080'\n\n"
kind: ConfigMap
metadata:
name: prometheus-cfg
namespace: trustgraph
- apiVersion: v1
kind: PersistentVolume
metadata:
name: prometheus-data
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 20G
hostPath:
path: /data/pv-prometheus-data
persistentVolumeReclaimPolicy: Delete
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: prometheus-data
namespace: trustgraph
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20G
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: prometheus
name: prometheus
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: prometheus
template:
metadata:
labels:
app: prometheus
spec:
containers:
- image: docker.io/prom/prometheus:v2.53.2
name: prometheus
ports:
- containerPort: 9090
hostPort: 9090
resources:
limits:
cpu: '0.5'
memory: 128M
requests:
cpu: '0.1'
memory: 128M
securityContext:
runAsGroup: 0
runAsUser: 0
volumeMounts:
- mountPath: /etc/prometheus/
name: prometheus-cfg
- mountPath: /prometheus
name: prometheus-data
volumes:
- configMap:
name: prometheus-cfg
name: prometheus-cfg
- name: prometheus-data
persistentVolumeClaim:
claimName: prometheus-data
- apiVersion: v1
kind: Service
metadata:
name: prometheus
namespace: trustgraph
spec:
ports:
- name: http
port: 9090
targetPort: 9090
selector:
app: prometheus
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: prompt
name: prompt
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: prompt
template:
metadata:
labels:
app: prompt
spec:
containers:
- command:
- prompt-template
- -p
- pulsar://pulsar:6650
- --text-completion-request-queue
- non-persistent://tg/request/text-completion
- --text-completion-response-queue
- non-persistent://tg/response/text-completion-response
- --definition-template
- '<instructions>
Study the following text and derive definitions for any discovered entities.
Do not provide definitions for entities whose definitions are incomplete
or unknown.
Output relationships in JSON format as an arary of objects with fields:
- entity: the name of the entity
- definition: English text which defines the entity
</instructions>
<text>
{text}
</text>
<requirements>
You will respond only with raw JSON format data. Do not provide
explanations. Do not use special characters in the abstract text. The
abstract will be written as plain text. Do not add markdown formatting
or headers or prefixes. Do not include null or unknown definitions.
</requirements>'
- --relationship-template
- '<instructions>
Study the following text and derive entity relationships. For each
relationship, derive the subject, predicate and object of the relationship.
Output relationships in JSON format as an arary of objects with fields:
- subject: the subject of the relationship
- predicate: the predicate
- object: the object of the relationship
- object-entity: false if the object is a simple data type: name, value
or date. true if it is an entity.
</instructions>
<text>
{text}
</text>
<requirements>
You will respond only with raw JSON format data. Do not provide
explanations. Do not use special characters in the abstract text. The
abstract must be written as plain text. Do not add markdown formatting
or headers or prefixes.
</requirements>'
- --topic-template
- "You are a helpful assistant that performs information extraction tasks\
\ for a provided text.\nRead the provided text. You will identify topics\
\ and their definitions in JSON.\n\nReading Instructions:\n- Ignore document\
\ formatting in the provided text.\n- Study the provided text carefully.\n\
\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond\
\ with special characters.\n- Return only topics that are concepts and\
\ unique to the provided text.\n- Respond only with well-formed JSON.\n\
- The JSON response shall be an array of objects with keys \"topic\" and\
\ \"definition\". \n- The JSON response shall use the following structure:\n\
\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do\
\ not write any additional text or explanations."
- --knowledge-query-template
- 'Study the following set of knowledge statements. The statements are written
in Cypher format that has been extracted from a knowledge graph. Use only
the provided set of knowledge statements in your response. Do not speculate
if the answer is not found in the provided set of knowledge statements.
Here''s the knowledge statements:
{graph}
Use only the provided knowledge statements to respond to the following:
{query}
'
- --document-query-template
- 'Study the following context. Use only the information provided in the
context in your response. Do not speculate if the answer is not found
in the provided set of knowledge statements.
Here is the context:
{documents}
Use only the provided knowledge statements to respond to the following:
{query}
'
- --rows-template
- '<instructions>
Study the following text and derive objects which match the schema provided.
You must output an array of JSON objects for each object you discover
which matches the schema. For each object, output a JSON object whose
fields
carry the name field specified in the schema.
</instructions>
<schema>
{schema}
</schema>
<text>
{text}
</text>
<requirements>
You will respond only with raw JSON format data. Do not provide
explanations. Do not add markdown formatting or headers or prefixes.
</requirements>'
image: docker.io/trustgraph/trustgraph-flow:0.10.1
name: prompt
resources:
limits:
cpu: '0.5'
memory: 128M
requests:
cpu: '0.1'
memory: 128M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: v1
kind: Service
metadata:
name: prompt
namespace: trustgraph
spec:
ports:
- name: metrics
port: 8080
targetPort: 8080
selector:
app: prompt
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: prompt-rag
name: prompt-rag
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: prompt-rag
template:
metadata:
labels:
app: prompt-rag
spec:
containers:
- command:
- prompt-template
- -p
- pulsar://pulsar:6650
- -i
- non-persistent://tg/request/prompt-rag
- -o
- non-persistent://tg/response/prompt-rag-response
- --text-completion-request-queue
- non-persistent://tg/request/text-completion-rag
- --text-completion-response-queue
- non-persistent://tg/response/text-completion-rag-response
- --definition-template
- '<instructions>
Study the following text and derive definitions for any discovered entities.
Do not provide definitions for entities whose definitions are incomplete
or unknown.
Output relationships in JSON format as an arary of objects with fields:
- entity: the name of the entity
- definition: English text which defines the entity
</instructions>
<text>
{text}
</text>
<requirements>
You will respond only with raw JSON format data. Do not provide
explanations. Do not use special characters in the abstract text. The
abstract will be written as plain text. Do not add markdown formatting
or headers or prefixes. Do not include null or unknown definitions.
</requirements>'
- --relationship-template
- '<instructions>
Study the following text and derive entity relationships. For each
relationship, derive the subject, predicate and object of the relationship.
Output relationships in JSON format as an arary of objects with fields:
- subject: the subject of the relationship
- predicate: the predicate
- object: the object of the relationship
- object-entity: false if the object is a simple data type: name, value
or date. true if it is an entity.
</instructions>
<text>
{text}
</text>
<requirements>
You will respond only with raw JSON format data. Do not provide
explanations. Do not use special characters in the abstract text. The
abstract must be written as plain text. Do not add markdown formatting
or headers or prefixes.
</requirements>'
- --topic-template
- "You are a helpful assistant that performs information extraction tasks\
\ for a provided text.\nRead the provided text. You will identify topics\
\ and their definitions in JSON.\n\nReading Instructions:\n- Ignore document\
\ formatting in the provided text.\n- Study the provided text carefully.\n\
\nHere is the text:\n{text}\n\nResponse Instructions: \n- Do not respond\
\ with special characters.\n- Return only topics that are concepts and\
\ unique to the provided text.\n- Respond only with well-formed JSON.\n\
- The JSON response shall be an array of objects with keys \"topic\" and\
\ \"definition\". \n- The JSON response shall use the following structure:\n\
\n```json\n[{{\"topic\": string, \"definition\": string}}]\n```\n\n- Do\
\ not write any additional text or explanations."
- --knowledge-query-template
- 'Study the following set of knowledge statements. The statements are written
in Cypher format that has been extracted from a knowledge graph. Use only
the provided set of knowledge statements in your response. Do not speculate
if the answer is not found in the provided set of knowledge statements.
Here''s the knowledge statements:
{graph}
Use only the provided knowledge statements to respond to the following:
{query}
'
- --document-query-template
- 'Study the following context. Use only the information provided in the
context in your response. Do not speculate if the answer is not found
in the provided set of knowledge statements.
Here is the context:
{documents}
Use only the provided knowledge statements to respond to the following:
{query}
'
- --rows-template
- '<instructions>
Study the following text and derive objects which match the schema provided.
You must output an array of JSON objects for each object you discover
which matches the schema. For each object, output a JSON object whose
fields
carry the name field specified in the schema.
</instructions>
<schema>
{schema}
</schema>
<text>
{text}
</text>
<requirements>
You will respond only with raw JSON format data. Do not provide
explanations. Do not add markdown formatting or headers or prefixes.
</requirements>'
image: docker.io/trustgraph/trustgraph-flow:0.10.1
name: prompt-rag
resources:
limits:
cpu: '0.5'
memory: 128M
requests:
cpu: '0.1'
memory: 128M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: v1
kind: Service
metadata:
name: prompt-rag
namespace: trustgraph
spec:
ports:
- name: metrics
port: 8080
targetPort: 8080
selector:
app: prompt-rag
type: LoadBalancer
- apiVersion: v1
kind: PersistentVolume
metadata:
name: pulsar-data
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 20G
hostPath:
path: /data/pv-pulsar-data
persistentVolumeReclaimPolicy: Delete
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pulsar-data
namespace: trustgraph
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20G
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: pulsar
name: pulsar
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: pulsar
template:
metadata:
labels:
app: pulsar
spec:
containers:
- command:
- bin/pulsar
- standalone
env:
- name: PULSAR_MEM
value: -Xms600M -Xmx600M
image: docker.io/apachepulsar/pulsar:3.3.1
name: pulsar
ports:
- containerPort: 6650
hostPort: 6650
- containerPort: 8080
hostPort: 8080
resources:
limits:
cpu: '2.0'
memory: 1500M
requests:
cpu: '1.0'
memory: 1500M
securityContext:
runAsGroup: 0
runAsUser: 0
volumeMounts:
- mountPath: /pulsar/data
name: pulsar-data
volumes:
- name: pulsar-data
persistentVolumeClaim:
claimName: pulsar-data
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: init-pulsar
name: init-pulsar
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: init-pulsar
template:
metadata:
labels:
app: init-pulsar
spec:
containers:
- command:
- sh
- -c
- while true; do pulsar-admin --admin-url http://pulsar:8080 tenants create
tg ; pulsar-admin --admin-url http://pulsar:8080 namespaces create tg/flow
; pulsar-admin --admin-url http://pulsar:8080 namespaces create tg/request
; pulsar-admin --admin-url http://pulsar:8080 namespaces create tg/response
; pulsar-admin --admin-url http://pulsar:8080 namespaces set-retention
--size -1 --time 3m tg/response; sleep 20; done
image: docker.io/apachepulsar/pulsar:3.3.1
name: init-pulsar
resources:
limits:
cpu: '1'
memory: 400M
requests:
cpu: '0.1'
memory: 400M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: v1
kind: Service
metadata:
name: pulsar
namespace: trustgraph
spec:
ports:
- name: bookie
port: 6650
targetPort: 6650
- name: http
port: 8080
targetPort: 8080
selector:
app: pulsar
type: LoadBalancer
- apiVersion: v1
kind: PersistentVolume
metadata:
name: qdrant
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 20G
hostPath:
path: /data/pv-qdrant
persistentVolumeReclaimPolicy: Delete
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: qdrant
namespace: trustgraph
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20G
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: qdrant
name: qdrant
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: qdrant
template:
metadata:
labels:
app: qdrant
spec:
containers:
- image: docker.io/qdrant/qdrant:v1.11.1
name: qdrant
ports:
- containerPort: 6333
hostPort: 6333
- containerPort: 6334
hostPort: 6334
resources:
limits:
cpu: '1.0'
memory: 256M
requests:
cpu: '0.5'
memory: 256M
securityContext:
runAsGroup: 0
runAsUser: 0
volumeMounts:
- mountPath: /qdrant/storage
name: qdrant
volumes:
- name: qdrant
persistentVolumeClaim:
claimName: qdrant
- apiVersion: v1
kind: Service
metadata:
name: qdrant
namespace: trustgraph
spec:
ports:
- name: api
port: 6333
targetPort: 6333
- name: api2
port: 6334
targetPort: 6334
selector:
app: qdrant
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: query-doc-embeddings
name: query-doc-embeddings
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: query-doc-embeddings
template:
metadata:
labels:
app: query-doc-embeddings
spec:
containers:
- command:
- de-query-qdrant
- -p
- pulsar://pulsar:6650
- -t
- http://qdrant:6333
image: docker.io/trustgraph/trustgraph-flow:0.10.1
name: query-doc-embeddings
resources:
limits:
cpu: '0.5'
memory: 128M
requests:
cpu: '0.1'
memory: 128M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: v1
kind: Service
metadata:
name: query-doc-embeddings
namespace: trustgraph
spec:
ports:
- name: metrics
port: 8080
targetPort: 8080
selector:
app: query-doc-embeddings
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: query-graph-embeddings
name: query-graph-embeddings
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: query-graph-embeddings
template:
metadata:
labels:
app: query-graph-embeddings
spec:
containers:
- command:
- ge-query-qdrant
- -p
- pulsar://pulsar:6650
- -t
- http://qdrant:6333
image: docker.io/trustgraph/trustgraph-flow:0.10.1
name: query-graph-embeddings
resources:
limits:
cpu: '0.5'
memory: 128M
requests:
cpu: '0.1'
memory: 128M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: v1
kind: Service
metadata:
name: query-graph-embeddings
namespace: trustgraph
spec:
ports:
- name: metrics
port: 8080
targetPort: 8080
selector:
app: query-graph-embeddings
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: query-triples
name: query-triples
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: query-triples
template:
metadata:
labels:
app: query-triples
spec:
containers:
- command:
- triples-query-cassandra
- -p
- pulsar://pulsar:6650
- -g
- cassandra
image: docker.io/trustgraph/trustgraph-flow:0.10.1
name: query-triples
resources:
limits:
cpu: '0.5'
memory: 512M
requests:
cpu: '0.1'
memory: 512M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: v1
kind: Service
metadata:
name: query-triples
namespace: trustgraph
spec:
ports:
- name: metrics
port: 8080
targetPort: 8080
selector:
app: query-triples
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: store-doc-embeddings
name: store-doc-embeddings
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: store-doc-embeddings
template:
metadata:
labels:
app: store-doc-embeddings
spec:
containers:
- command:
- de-write-qdrant
- -p
- pulsar://pulsar:6650
- -t
- http://qdrant:6333
image: docker.io/trustgraph/trustgraph-flow:0.10.1
name: store-doc-embeddings
resources:
limits:
cpu: '0.5'
memory: 128M
requests:
cpu: '0.1'
memory: 128M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: v1
kind: Service
metadata:
name: store-doc-embeddings
namespace: trustgraph
spec:
ports:
- name: metrics
port: 8080
targetPort: 8080
selector:
app: store-doc-embeddings
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: store-graph-embeddings
name: store-graph-embeddings
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: store-graph-embeddings
template:
metadata:
labels:
app: store-graph-embeddings
spec:
containers:
- command:
- ge-write-qdrant
- -p
- pulsar://pulsar:6650
- -t
- http://qdrant:6333
image: docker.io/trustgraph/trustgraph-flow:0.10.1
name: store-graph-embeddings
resources:
limits:
cpu: '0.5'
memory: 128M
requests:
cpu: '0.1'
memory: 128M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: v1
kind: Service
metadata:
name: store-graph-embeddings
namespace: trustgraph
spec:
ports:
- name: metrics
port: 8080
targetPort: 8080
selector:
app: store-graph-embeddings
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: store-triples
name: store-triples
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: store-triples
template:
metadata:
labels:
app: store-triples
spec:
containers:
- command:
- triples-write-cassandra
- -p
- pulsar://pulsar:6650
- -g
- cassandra
image: docker.io/trustgraph/trustgraph-flow:0.10.1
name: store-triples
resources:
limits:
cpu: '0.5'
memory: 128M
requests:
cpu: '0.1'
memory: 128M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: v1
kind: Service
metadata:
name: stop-triples
namespace: trustgraph
spec:
ports:
- name: metrics
port: 8080
targetPort: 8080
selector:
app: stop-triples
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: text-completion
name: text-completion
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: text-completion
template:
metadata:
labels:
app: text-completion
spec:
containers:
- command:
- text-completion-cohere
- -p
- pulsar://pulsar:6650
- -k
- ${COHERE_KEY}
- -t
- 0
image: docker.io/trustgraph/trustgraph-flow:0.10.1
name: text-completion
resources:
limits:
cpu: '0.5'
memory: 128M
requests:
cpu: '0.1'
memory: 128M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: v1
kind: Service
metadata:
name: text-completion
namespace: trustgraph
spec:
ports:
- name: metrics
port: 8000
targetPort: 8000
selector:
app: text-completion
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: text-completion-rag
name: text-completion-rag
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: text-completion-rag
template:
metadata:
labels:
app: text-completion-rag
spec:
containers:
- command:
- text-completion-cohere
- -p
- pulsar://pulsar:6650
- -k
- ${COHERE_KEY}
- -t
- 0
- -i
- non-persistent://tg/request/text-completion-rag
- -o
- non-persistent://tg/response/text-completion-rag-response
image: docker.io/trustgraph/trustgraph-flow:0.10.1
name: text-completion-rag
resources:
limits:
cpu: '0.5'
memory: 128M
requests:
cpu: '0.1'
memory: 128M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: v1
kind: Service
metadata:
name: text-completion-rag
namespace: trustgraph
spec:
ports:
- name: metrics
port: 8000
targetPort: 8000
selector:
app: text-completion-rag
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: vectorize
name: vectorize
namespace: trustgraph
spec:
replicas: 1
selector:
matchLabels:
app: vectorize
template:
metadata:
labels:
app: vectorize
spec:
containers:
- command:
- embeddings-vectorize
- -p
- pulsar://pulsar:6650
image: docker.io/trustgraph/trustgraph-flow:0.10.1
name: vectorize
resources:
limits:
cpu: '1.0'
memory: 512M
requests:
cpu: '0.5'
memory: 512M
securityContext:
runAsGroup: 0
runAsUser: 0
volumes: []
- apiVersion: v1
kind: Service
metadata:
name: vectorize
namespace: trustgraph
spec:
ports:
- name: metrics
port: 8000
targetPort: 8000
selector:
app: vectorize
type: LoadBalancer
kind: List