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 - '250' - --chunk-overlap - '15' 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 # 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=`\ \ 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-generic - -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 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-generic - -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 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-ollama - -p - pulsar://pulsar:6650 - -m - gemma2:9b - -r - ${OLLAMA_HOST} 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: 8080 targetPort: 8080 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-ollama - -p - pulsar://pulsar:6650 - -m - gemma2:9b - -r - ${OLLAMA_HOST} - -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: 8080 targetPort: 8080 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