new hrbox chart version

This commit is contained in:
Vlad Bubnov
2026-01-30 12:13:23 +03:00
parent bc74cc395c
commit ed3c059511
9 changed files with 592 additions and 47 deletions
+12 -11
View File
@@ -1,10 +1,11 @@
---
# Chatbox (WebSocket server) - обеспечивает real-time функционал
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}-websocket
name: {{ .Chart.Name }}-chatbox
labels:
app: websocket
app: chatbox
spec:
minReadySeconds: 5
strategy:
@@ -12,14 +13,14 @@ spec:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
replicas: {{ .Values.app.replicas.websocket }}
replicas: {{ .Values.app.replicas.chatbox }}
selector:
matchLabels:
service: {{ .Chart.Name }}-websocket
service: {{ .Chart.Name }}-chatbox
template:
metadata:
labels:
service: {{ .Chart.Name }}-websocket
service: {{ .Chart.Name }}-chatbox
annotations:
prometheus.io/scrape: 'true'
prometheus.io/port: '9797'
@@ -28,21 +29,21 @@ spec:
imagePullSecrets:
- name: regsecret
containers:
- name: websocket
{{- include "websocket_resources" . | indent 10}}
image: cr.yandex/crphnph9c2s776j32sjd/hrbox-websocket:2.1
- name: chatbox
image: {{ .Values.app.chatbox.image }}
imagePullPolicy: Always
env:
{{- include "envs_all" . | indent 12 }}
{{- include "envs_all" . | indent 12 }}
{{- include "chatbox_resources" . | indent 10 }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}-websocket
name: {{ .Chart.Name }}-chatbox
spec:
selector:
service: {{ .Chart.Name }}-websocket
service: {{ .Chart.Name }}-chatbox
ports:
- name: http
port: 80
@@ -0,0 +1,32 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}-document-converter
labels:
app: document-converter
spec:
minReadySeconds: 5
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
replicas: {{ .Values.app.document_converter.replicas }}
selector:
matchLabels:
service: {{ .Chart.Name }}-document-converter
template:
metadata:
labels:
service: {{ .Chart.Name }}-document-converter
spec:
imagePullSecrets:
- name: regsecret
containers:
- name: document-converter
image: {{ .Values.app.document_converter.image }}
imagePullPolicy: Always
env:
{{- include "envs_all" . | indent 12 }}
{{- include "document_converter_resources" . | indent 10 }}
+52
View File
@@ -0,0 +1,52 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}-goworker
labels:
app: goworker
spec:
minReadySeconds: 5
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
replicas: {{ .Values.app.goworker.replicas }}
selector:
matchLabels:
service: {{ .Chart.Name }}-goworker
template:
metadata:
labels:
service: {{ .Chart.Name }}-goworker
spec:
imagePullSecrets:
- name: regsecret
containers:
- name: goworker
stdin: true
tty: true
image: {{ .Values.app.goworker.image }}
imagePullPolicy: Always
env:
{{- include "envs_all" . | indent 12 }}
{{- include "goworker_resources" . | indent 10 }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}-goworker
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8686"
prometheus.io/path: "/metrics"
spec:
selector:
service: {{ .Chart.Name }}-goworker
ports:
- name: http
port: 8686
targetPort: 8686
protocol: TCP
+63
View File
@@ -0,0 +1,63 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}-kedoca
labels:
app: kedoca
spec:
minReadySeconds: 5
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
replicas: {{ .Values.app.kedoca.replicas }}
selector:
matchLabels:
service: {{ .Chart.Name }}-kedoca
template:
metadata:
labels:
service: {{ .Chart.Name }}-kedoca
spec:
imagePullSecrets:
- name: regsecret
containers:
- name: kedoca
image: {{ .Values.app.kedoca.image }}
imagePullPolicy: Always
env:
{{- include "envs_all" . | indent 12 }}
{{- include "envs_kedoca" . | indent 12 }}
ports:
- containerPort: 8558
{{- include "kedoca_resources" . | indent 10 }}
{{- if .Values.app.kedoca.secretName }}
volumeMounts:
- name: ca-cert
mountPath: /ca-cert
{{- end }}
{{- if .Values.app.kedoca.secretName }}
volumes:
- name: ca-cert
secret:
secretName: {{ .Values.app.kedoca.secretName }}
{{- end }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}-kedoca
labels:
app: kedoca
spec:
selector:
service: {{ .Chart.Name }}-kedoca
ports:
- name: http
port: 8558
targetPort: 8558
protocol: TCP
type: ClusterIP
+49 -7
View File
@@ -190,12 +190,54 @@
- name: YANDEX_CLOUD_AI_API_KEY
value: {{ .Values.app.ai.yandex.apiKey | quote }}
{{- end }}
{{- if .Values.app.ai.openai.apiKey }}
- name: OPENAI_API_KEY
value: {{ .Values.app.ai.openai.apiKey | quote }}
- name: OPENAI_PROXY_KEY
value: {{ .Values.app.ai.openai.proxyKey | quote }}
- name: OPENAI_BASE_URI
value: {{ .Values.app.ai.openai.baseUri | quote }}
# Integration Services
- name: GOWORKER_URL
value: {{ .Values.app.goworker.url | quote }}
{{- if .Values.app.goworker.sentryDsn }}
- name: GOWORKER_SENTRY_DSN
value: {{ .Values.app.goworker.sentryDsn | quote }}
{{- end }}
- name: GOWORKER_PUSH_MIN_INTERVAL
value: {{ .Values.app.goworker.pushMinInterval | quote }}
- name: KEDOCA_URL
value: {{ .Values.app.kedoca.url | quote }}
- name: TSP_URL
value: "http://qs.cryptopro.ru/tsp/tsp.srf"
# Internal Services
- name: SERVICES_INTERNAL_SECRET
value: {{ .Values.secrets.servicesInternalSecret | default "QrrH84K2dG5JfoYxi4ZNPyg5p2LEj6rN69z5tIQYkfY6SJZ8GDXOcRjTNnefbOx5" | quote }}
# Document Converter
- name: PYTHONUNBUFFERED
value: "1"
- name: DOCCONV_MAX_PARALLEL_TASKS
value: "1"
# AI Features
- name: AI_DOCS_INDEX_ENABLED
value: "true"
- name: AI_SEMANTIC_INDEX_ENABLED
value: "true"
- name: AI_SEMANTIC_INDEX_USE_BATCH
value: "true"
# Chatbox
{{- if .Values.app.chatbox.sentryDsn }}
- name: CHATBOX_SENTRY_DSN
value: {{ .Values.app.chatbox.sentryDsn | quote }}
{{- end }}
{{- end }}
{{- define "envs_kedoca" }}
- name: ROOT_CA_PASS
value: {{ .Values.app.kedoca.rootCaPass | quote }}
- name: KEDO_ENGINE
value: {{ .Values.app.kedoca.engine | quote }}
- name: KEDO_ALGORITHM
value: {{ .Values.app.kedoca.algorithm | quote }}
- name: KEDO_PKEYOPT
value: {{ .Values.app.kedoca.pkeyopt | quote }}
{{- end }}
+48
View File
@@ -80,4 +80,52 @@ resources:
memory: {{ .Values.resources.jobs.limits.memory | quote }}
cpu: {{ .Values.resources.jobs.limits.cpu | quote }}
ephemeral-storage: {{ .Values.resources.jobs.limits.ephemeralStorage | quote }}
{{- end }}
{{- define "goworker_resources" }}
resources:
requests:
memory: {{ .Values.resources.goworker.requests.memory | quote }}
cpu: {{ .Values.resources.goworker.requests.cpu | quote }}
ephemeral-storage: {{ .Values.resources.goworker.requests.ephemeralStorage | quote }}
limits:
memory: {{ .Values.resources.goworker.limits.memory | quote }}
cpu: {{ .Values.resources.goworker.limits.cpu | quote }}
ephemeral-storage: {{ .Values.resources.goworker.limits.ephemeralStorage | quote }}
{{- end }}
{{- define "kedoca_resources" }}
resources:
requests:
memory: {{ .Values.resources.kedoca.requests.memory | quote }}
cpu: {{ .Values.resources.kedoca.requests.cpu | quote }}
ephemeral-storage: {{ .Values.resources.kedoca.requests.ephemeralStorage | quote }}
limits:
memory: {{ .Values.resources.kedoca.limits.memory | quote }}
cpu: {{ .Values.resources.kedoca.limits.cpu | quote }}
ephemeral-storage: {{ .Values.resources.kedoca.limits.ephemeralStorage | quote }}
{{- end }}
{{- define "document_converter_resources" }}
resources:
requests:
memory: {{ .Values.resources.document_converter.requests.memory | quote }}
cpu: {{ .Values.resources.document_converter.requests.cpu | quote }}
ephemeral-storage: {{ .Values.resources.document_converter.requests.ephemeralStorage | quote }}
limits:
memory: {{ .Values.resources.document_converter.limits.memory | quote }}
cpu: {{ .Values.resources.document_converter.limits.cpu | quote }}
ephemeral-storage: {{ .Values.resources.document_converter.limits.ephemeralStorage | quote }}
{{- end }}
{{- define "chatbox_resources" }}
resources:
requests:
memory: {{ .Values.resources.chatbox.requests.memory | quote }}
cpu: {{ .Values.resources.chatbox.requests.cpu | quote }}
ephemeral-storage: {{ .Values.resources.chatbox.requests.ephemeralStorage | quote }}
limits:
memory: {{ .Values.resources.chatbox.limits.memory | quote }}
cpu: {{ .Values.resources.chatbox.limits.cpu | quote }}
ephemeral-storage: {{ .Values.resources.chatbox.limits.ephemeralStorage | quote }}
{{- end }}