From 73dd684c8d6a4a7e1ecdc4125f3f195a12be393e Mon Sep 17 00:00:00 2001 From: leo <260626284+cameledev@users.noreply.github.com> Date: Tue, 7 Apr 2026 12:12:16 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7(build)=20update=20docker,=20helm,?= =?UTF-8?q?=20and=20compose=20for=20MetadataCollectorService?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated Dockerfile, Helm charts, and Docker Compose configuration to integrate the newly introduced MetadataCollectorService. --- compose.yml | 23 +++ src/agents/Dockerfile | 21 ++- .../dev-keycloak/values.meet.yaml.gotmpl | 51 +++++- src/helm/meet/templates/_helpers.tpl | 15 +- ...nt.yaml => agent_metadata_deployment.yaml} | 48 +++--- .../templates/agent_subtitles_deployment.yaml | 141 +++++++++++++++++ src/helm/meet/values.yaml | 147 ++++++++++++++---- 7 files changed, 379 insertions(+), 67 deletions(-) rename src/helm/meet/templates/{agents_deployment.yaml => agent_metadata_deployment.yaml} (68%) create mode 100644 src/helm/meet/templates/agent_subtitles_deployment.yaml diff --git a/compose.yml b/compose.yml index 1d22ae3f..c7c1f9ca 100644 --- a/compose.yml +++ b/compose.yml @@ -246,6 +246,29 @@ services: depends_on: - redis + metadata-collector-dev: + build: + context: ./src/agents + command: ["python", "metadata_collector.py", "dev"] + environment: + - LIVEKIT_URL=ws://livekit:7880 + - LIVEKIT_API_KEY=devkey + - LIVEKIT_API_SECRET=secret + - AWS_S3_ENDPOINT_URL=minio:9000 + - AWS_S3_ACCESS_KEY_ID=meet + - AWS_S3_SECRET_ACCESS_KEY=password + - AWS_STORAGE_BUCKET_NAME=meet-media-storage + - AWS_S3_SECURE_ACCESS=False + volumes: + - ./src/agents:/app + depends_on: + - livekit + - minio + develop: + watch: + - action: rebuild + path: ./src/agents + redis-summary: image: redis ports: diff --git a/src/agents/Dockerfile b/src/agents/Dockerfile index 50c29007..0469e970 100644 --- a/src/agents/Dockerfile +++ b/src/agents/Dockerfile @@ -15,19 +15,30 @@ COPY pyproject.toml . RUN mkdir /install && \ pip install --prefix=/install . +FROM base AS development + +WORKDIR /app + +COPY pyproject.toml . +RUN pip install --no-cache-dir ".[dev]" + +COPY . . + +CMD ["python", "metadata_collector.py", "dev"] + FROM base AS production WORKDIR /app +COPY --from=builder /install /usr/local + # Remove pip to reduce attack surface in production RUN pip uninstall -y pip +# Un-privileged user running the application ARG DOCKER_USER USER ${DOCKER_USER} -# Un-privileged user running the application -COPY --from=builder /install /usr/local +COPY ./*.py /app/ -COPY . . - -CMD ["python", "multi-user-transcriber.py", "start"] +CMD ["python", "multi_user_transcriber.py", "start"] diff --git a/src/helm/env.d/dev-keycloak/values.meet.yaml.gotmpl b/src/helm/env.d/dev-keycloak/values.meet.yaml.gotmpl index 88f2ce95..4e7cdbbc 100644 --- a/src/helm/env.d/dev-keycloak/values.meet.yaml.gotmpl +++ b/src/helm/env.d/dev-keycloak/values.meet.yaml.gotmpl @@ -125,6 +125,7 @@ backend: AWS_S3_DOMAIN_REPLACE: https://minio.127.0.0.1.nip.io CELERY_ENABLED: True CELERY_BROKER_URL: redis://default:pass@redis-master:6379/1 + METADATA_COLLECTOR_ENABLED: True migrate: command: @@ -253,7 +254,50 @@ celerySummaryBackend: - "-Q" - "call-webhook-queue-v2" -agents: +agentMetadata: + replicas: 1 + envVars: + LIVEKIT_URL: https://livekit.127.0.0.1.nip.io/ + {{- with .Values.livekit.keys }} + {{- range $key, $value := . }} + LIVEKIT_API_SECRET: {{ $value }} + LIVEKIT_API_KEY: {{ $key }} + {{- end }} + {{- end }} + ENABLE_SILERO_VAD: "false" + AWS_S3_ENDPOINT_URL: minio.meet.svc.cluster.local:9000 + AWS_S3_ACCESS_KEY_ID: meet + AWS_S3_SECRET_ACCESS_KEY: password + AWS_S3_SECURE_ACCESS: False + AWS_STORAGE_BUCKET_NAME: meet-media-storage + AWS_S3_OUTPUT_FOLDER: metadata + + image: + repository: localhost:5001/meet-agents + pullPolicy: Always + tag: "latest" + + command: + - "python" + - "metadata_collector.py" + - "start" + + # Extra volume mounts to manage our local custom CA and avoid to disable ssl + extraVolumeMounts: + - name: certs + mountPath: /usr/lib/ssl/cert.pem + subPath: cert.pem + + # Extra volumes to manage our local custom CA and avoid to disable ssl + extraVolumes: + - name: certs + configMap: + name: certifi + items: + - key: cacert.pem + path: cert.pem + +agentSubtitles: replicas: 1 envVars: LIVEKIT_URL: https://livekit.127.0.0.1.nip.io/ @@ -270,6 +314,11 @@ agents: pullPolicy: Always tag: "latest" + command: + - "python" + - "multi_user_transcriber.py" + - "start" + # Extra volume mounts to manage our local custom CA and avoid to disable ssl extraVolumeMounts: - name: certs diff --git a/src/helm/meet/templates/_helpers.tpl b/src/helm/meet/templates/_helpers.tpl index dee664e7..695ba5f4 100644 --- a/src/helm/meet/templates/_helpers.tpl +++ b/src/helm/meet/templates/_helpers.tpl @@ -213,12 +213,21 @@ Requires top level scope {{/* -Full name for the agents +Full name for the agent metadata Requires top level scope */}} -{{- define "meet.agents.fullname" -}} -{{ include "meet.fullname" . }}-agents +{{- define "meet.agentMetadata.fullname" -}} +{{ include "meet.fullname" . }}-agent-metadata +{{- end }} + +{{/* +Full name for the agent subtitles + +Requires top level scope +*/}} +{{- define "meet.agentSubtitles.fullname" -}} +{{ include "meet.fullname" . }}-agent-subtitles {{- end }} {{/* diff --git a/src/helm/meet/templates/agents_deployment.yaml b/src/helm/meet/templates/agent_metadata_deployment.yaml similarity index 68% rename from src/helm/meet/templates/agents_deployment.yaml rename to src/helm/meet/templates/agent_metadata_deployment.yaml index 4d62e49b..9879369c 100644 --- a/src/helm/meet/templates/agents_deployment.yaml +++ b/src/helm/meet/templates/agent_metadata_deployment.yaml @@ -1,26 +1,26 @@ -{{- $envVars := include "meet.common.env" (list . .Values.agents) -}} -{{- $fullName := include "meet.agents.fullname" . -}} -{{- $component := "agents" -}} +{{- $envVars := include "meet.common.env" (list . .Values.agentMetadata) -}} +{{- $fullName := include "meet.agentMetadata.fullname" . -}} +{{- $component := "agent-metadata" -}} apiVersion: apps/v1 kind: Deployment metadata: name: {{ $fullName }} annotations: - {{- with .Values.agents.dpAnnotations }} + {{- with .Values.agentMetadata.dpAnnotations }} {{- toYaml . | nindent 4 }} {{- end }} namespace: {{ .Release.Namespace | quote }} labels: {{- include "meet.common.labels" (list . $component) | nindent 4 }} spec: - replicas: {{ .Values.agents.replicas }} + replicas: {{ .Values.agentMetadata.replicas }} selector: matchLabels: {{- include "meet.common.selectorLabels" (list . $component) | nindent 6 }} template: metadata: annotations: - {{- with .Values.agents.podAnnotations }} + {{- with .Values.agentMetadata.podAnnotations }} {{- toYaml . | nindent 8 }} {{- end }} labels: @@ -30,23 +30,23 @@ spec: imagePullSecrets: - name: {{ include "meet.secret.dockerconfigjson.name" (dict "fullname" (include "meet.fullname" .) "imageCredentials" $.Values.image.credentials) }} {{- end }} - shareProcessNamespace: {{ .Values.agents.shareProcessNamespace }} - {{- with .Values.agents.podSecurityContext }} + shareProcessNamespace: {{ .Values.agentMetadata.shareProcessNamespace }} + {{- with .Values.agentMetadata.podSecurityContext }} securityContext: {{- toYaml . | nindent 8 }} {{- end }} containers: - {{- with .Values.agents.sidecars }} + {{- with .Values.agentMetadata.sidecars }} {{- toYaml . | nindent 8 }} {{- end }} - name: {{ .Chart.Name }} - image: "{{ (.Values.agents.image | default dict).repository | default .Values.agents.image.repository }}:{{ (.Values.agents.image | default dict).tag | default .Values.agents.image.tag }}" - imagePullPolicy: {{ (.Values.agents.image | default dict).pullPolicy | default .Values.agents.image.pullPolicy }} - {{- with .Values.agents.command }} + image: "{{ (.Values.agentMetadata.image | default dict).repository | default .Values.agentMetadata.image.repository }}:{{ (.Values.agentMetadata.image | default dict).tag | default .Values.agentMetadata.image.tag }}" + imagePullPolicy: {{ (.Values.agentMetadata.image | default dict).pullPolicy | default .Values.agentMetadata.image.pullPolicy }} + {{- with .Values.agentMetadata.command }} command: {{- toYaml . | nindent 12 }} {{- end }} - {{- with .Values.agents.args }} + {{- with .Values.agentMetadata.args }} args: {{- toYaml . | nindent 12 }} {{- end }} @@ -54,11 +54,11 @@ spec: {{- if $envVars }} {{- $envVars | indent 12 }} {{- end }} - {{- with .Values.agents.securityContext }} + {{- with .Values.agentMetadata.securityContext }} securityContext: {{- toYaml . | nindent 12 }} {{- end }} - {{- with .Values.agents.resources }} + {{- with .Values.agentMetadata.resources }} resources: {{- toYaml . | nindent 12 }} {{- end }} @@ -68,35 +68,35 @@ spec: mountPath: {{ $value.path }} subPath: content {{- end }} - {{- range $name, $volume := .Values.agents.persistence }} + {{- range $name, $volume := .Values.agentMetadata.persistence }} - name: "{{ $name }}" mountPath: "{{ $volume.mountPath }}" {{- end }} - {{- range .Values.agents.extraVolumeMounts }} + {{- range .Values.agentMetadata.extraVolumeMounts }} - name: {{ .name }} mountPath: {{ .mountPath }} subPath: {{ .subPath | default "" }} readOnly: {{ .readOnly }} {{- end }} - {{- with .Values.agents.nodeSelector }} + {{- with .Values.agentMetadata.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} {{- end }} - {{- with .Values.agents.affinity }} + {{- with .Values.agentMetadata.affinity }} affinity: {{- toYaml . | nindent 8 }} {{- end }} - {{- with .Values.agents.tolerations }} + {{- with .Values.agentMetadata.tolerations }} tolerations: {{- toYaml . | nindent 8 }} {{- end }} volumes: - {{- range $index, $value := .Values.agents.mountFiles }} + {{- range $index, $value := .Values.agentMetadata.mountFiles }} - name: "files-{{ $index }}" configMap: name: "{{ include "meet.fullname" $ }}-files-{{ $index }}" {{- end }} - {{- range $name, $volume := .Values.agents.persistence }} + {{- range $name, $volume := .Values.agentMetadata.persistence }} - name: "{{ $name }}" {{- if eq $volume.type "emptyDir" }} emptyDir: {} @@ -105,7 +105,7 @@ spec: claimName: "{{ $fullName }}-{{ $name }}" {{- end }} {{- end }} - {{- range .Values.agents.extraVolumes }} + {{- range .Values.agentMetadata.extraVolumes }} - name: {{ .name }} {{- if .existingClaim }} persistentVolumeClaim: @@ -127,7 +127,7 @@ spec: {{- end }} {{- end }} --- -{{ if .Values.agents.pdb.enabled }} +{{ if .Values.agentMetadata.pdb.enabled }} apiVersion: policy/v1 kind: PodDisruptionBudget metadata: diff --git a/src/helm/meet/templates/agent_subtitles_deployment.yaml b/src/helm/meet/templates/agent_subtitles_deployment.yaml new file mode 100644 index 00000000..f5ce24ea --- /dev/null +++ b/src/helm/meet/templates/agent_subtitles_deployment.yaml @@ -0,0 +1,141 @@ +{{- $envVars := include "meet.common.env" (list . .Values.agentSubtitles) -}} +{{- $fullName := include "meet.agentSubtitles.fullname" . -}} +{{- $component := "agent-subtitles" -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ $fullName }} + annotations: + {{- with .Values.agentSubtitles.dpAnnotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + namespace: {{ .Release.Namespace | quote }} + labels: + {{- include "meet.common.labels" (list . $component) | nindent 4 }} +spec: + replicas: {{ .Values.agentSubtitles.replicas }} + selector: + matchLabels: + {{- include "meet.common.selectorLabels" (list . $component) | nindent 6 }} + template: + metadata: + annotations: + {{- with .Values.agentSubtitles.podAnnotations }} + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "meet.common.selectorLabels" (list . $component) | nindent 8 }} + spec: + {{- if $.Values.image.credentials }} + imagePullSecrets: + - name: {{ include "meet.secret.dockerconfigjson.name" (dict "fullname" (include "meet.fullname" .) "imageCredentials" $.Values.image.credentials) }} + {{- end }} + shareProcessNamespace: {{ .Values.agentSubtitles.shareProcessNamespace }} + {{- with .Values.agentSubtitles.podSecurityContext }} + securityContext: + {{- toYaml . | nindent 8 }} + {{- end }} + containers: + {{- with .Values.agentSubtitles.sidecars }} + {{- toYaml . | nindent 8 }} + {{- end }} + - name: {{ .Chart.Name }} + image: "{{ (.Values.agentSubtitles.image | default dict).repository | default .Values.agentSubtitles.image.repository }}:{{ (.Values.agentSubtitles.image | default dict).tag | default .Values.agentSubtitles.image.tag }}" + imagePullPolicy: {{ (.Values.agentSubtitles.image | default dict).pullPolicy | default .Values.agentSubtitles.image.pullPolicy }} + {{- with .Values.agentSubtitles.command }} + command: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.agentSubtitles.args }} + args: + {{- toYaml . | nindent 12 }} + {{- end }} + env: + {{- if $envVars }} + {{- $envVars | indent 12 }} + {{- end }} + {{- with .Values.agentSubtitles.securityContext }} + securityContext: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.agentSubtitles.resources }} + resources: + {{- toYaml . | nindent 12 }} + {{- end }} + volumeMounts: + {{- range $index, $value := .Values.mountFiles }} + - name: "files-{{ $index }}" + mountPath: {{ $value.path }} + subPath: content + {{- end }} + {{- range $name, $volume := .Values.agentSubtitles.persistence }} + - name: "{{ $name }}" + mountPath: "{{ $volume.mountPath }}" + {{- end }} + {{- range .Values.agentSubtitles.extraVolumeMounts }} + - name: {{ .name }} + mountPath: {{ .mountPath }} + subPath: {{ .subPath | default "" }} + readOnly: {{ .readOnly }} + {{- end }} + {{- with .Values.agentSubtitles.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.agentSubtitles.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.agentSubtitles.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} + volumes: + {{- range $index, $value := .Values.agentSubtitles.mountFiles }} + - name: "files-{{ $index }}" + configMap: + name: "{{ include "meet.fullname" $ }}-files-{{ $index }}" + {{- end }} + {{- range $name, $volume := .Values.agentSubtitles.persistence }} + - name: "{{ $name }}" + {{- if eq $volume.type "emptyDir" }} + emptyDir: {} + {{- else }} + persistentVolumeClaim: + claimName: "{{ $fullName }}-{{ $name }}" + {{- end }} + {{- end }} + {{- range .Values.agentSubtitles.extraVolumes }} + - name: {{ .name }} + {{- if .existingClaim }} + persistentVolumeClaim: + claimName: {{ .existingClaim }} + {{- else if .hostPath }} + hostPath: + {{ toYaml .hostPath | nindent 12 }} + {{- else if .csi }} + csi: + {{- toYaml .csi | nindent 12 }} + {{- else if .configMap }} + configMap: + {{- toYaml .configMap | nindent 12 }} + {{- else if .emptyDir }} + emptyDir: + {{- toYaml .emptyDir | nindent 12 }} + {{- else }} + emptyDir: {} + {{- end }} + {{- end }} +--- +{{ if .Values.agentSubtitles.pdb.enabled }} +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: {{ $fullName }} + namespace: {{ .Release.Namespace | quote }} +spec: + maxUnavailable: 1 + selector: + matchLabels: + {{- include "meet.common.selectorLabels" (list . $component) | nindent 6 }} +{{ end }} diff --git a/src/helm/meet/values.yaml b/src/helm/meet/values.yaml index 0c01ed9f..6b15b904 100644 --- a/src/helm/meet/values.yaml +++ b/src/helm/meet/values.yaml @@ -1061,51 +1061,130 @@ celerySummaryBackend: enabled: false -## @section agents +## @section agentMetadata -agents: +agentMetadata: - ## @param agents.image.repository Repository to use to pull meet's agents container image - ## @param agents.image.tag meet's agents container tag - ## @param agents.image.pullPolicy agents container image pull policy + ## @param agentMetadata.image.repository Repository to use to pull meet's agentMetadata container image + ## @param agentMetadata.image.tag meet's agentMetadata container tag + ## @param agentMetadata.image.pullPolicy agentMetadata container image pull policy image: repository: lasuite/meet-agents pullPolicy: IfNotPresent tag: "latest" - ## @param agents.dpAnnotations Annotations to add to the agents Deployment + ## @param agentMetadata.dpAnnotations Annotations to add to the agentMetadata Deployment dpAnnotations: {} - ## @param agents.command Override the agents container command + ## @param agentMetadata.command Override the agentMetadata container command command: [] - ## @param agents.args Override the agents container args + ## @param agentMetadata.args Override the agentMetadata container args args: [] - ## @param agents.replicas Amount of agents replicas + ## @param agentMetadata.replicas Amount of agentMetadata replicas replicas: 1 - ## @param agents.shareProcessNamespace Enable share process namespace between containers + ## @param agentMetadata.shareProcessNamespace Enable share process namespace between containers shareProcessNamespace: false - ## @param agents.sidecars Add sidecars containers to agents deployment + ## @param agentMetadata.sidecars Add sidecars containers to agentMetadata deployment sidecars: [] - ## @param agents.securityContext Configure agents Container security context + ## @param agentMetadata.securityContext Configure agentMetadata Container security context securityContext: null - ## @param agents.podSecurityContext Configure agents Pod security context + ## @param agentMetadata.podSecurityContext Configure agentMetadata Pod security context podSecurityContext: null - ## @param agents.envVars Configure agents container environment variables - ## @extra agents.envVars.BY_VALUE Example environment variable by setting value directly - ## @extra agents.envVars.FROM_CONFIGMAP.configMapKeyRef.name Name of a ConfigMap when configuring env vars from a ConfigMap - ## @extra agents.envVars.FROM_CONFIGMAP.configMapKeyRef.key Key within a ConfigMap when configuring env vars from a ConfigMap - ## @extra agents.envVars.FROM_SECRET.secretKeyRef.name Name of a Secret when configuring env vars from a Secret - ## @extra agents.envVars.FROM_SECRET.secretKeyRef.key Key within a Secret when configuring env vars from a Secret - ## @extra agents.envVars.DEEPGRAM_STT_MODEL Deepgram model to use for speech-to-text (default: nova-3) - ## @extra agents.envVars.DEEPGRAM_STT_LANGUAGE Language code for transcription or 'multi' for automatic multilingual support with real-time code-switching (default: multi, supports: en, es, fr, de, hi, ru, pt, ja, it, nl) - ## @skip agents.envVars + ## @param agentMetadata.envVars Configure agentMetadata container environment variables + ## @extra agentMetadata.envVars.BY_VALUE Example environment variable by setting value directly + ## @extra agentMetadata.envVars.FROM_CONFIGMAP.configMapKeyRef.name Name of a ConfigMap when configuring env vars from a ConfigMap + ## @extra agentMetadata.envVars.FROM_CONFIGMAP.configMapKeyRef.key Key within a ConfigMap when configuring env vars from a ConfigMap + ## @extra agentMetadata.envVars.FROM_SECRET.secretKeyRef.name Name of a Secret when configuring env vars from a Secret + ## @extra agentMetadata.envVars.FROM_SECRET.secretKeyRef.key Key within a Secret when configuring env vars from a Secret + ## @extra agentMetadata.envVars.DEEPGRAM_STT_MODEL Deepgram model to use for speech-to-text (default: nova-3) + ## @extra agentMetadata.envVars.DEEPGRAM_STT_LANGUAGE Language code for transcription or 'multi' for automatic multilingual support with real-time code-switching (default: multi, supports: en, es, fr, de, hi, ru, pt, ja, it, nl) + ## @skip agentMetadata.envVars + envVars: + <<: *commonEnvVars + + ## @param agentMetadata.podAnnotations Annotations to add to the agentMetadata Pod + podAnnotations: {} + + ## @param agentMetadata.resources Resource requirements for the agentMetadata container + resources: {} + + ## @param agentMetadata.nodeSelector Node selector for the agentMetadata Pod + nodeSelector: {} + + ## @param agentMetadata.tolerations Tolerations for the agentMetadata Pod + tolerations: [] + + ## @param agentMetadata.affinity Affinity for the agentSubtitles Pod + affinity: {} + + ## @param agentMetadata.persistence Additional volumes to create and mount on the agentSubtitles. Used for debugging purposes + ## @extra agentMetadata.persistence.volume-name.size Size of the additional volume + ## @extra agentMetadata.persistence.volume-name.type Type of the additional volume, persistentVolumeClaim or emptyDir + ## @extra agentMetadata.persistence.volume-name.mountPath Path where the volume should be mounted to + persistence: {} + + ## @param agentMetadata.extraVolumeMounts Additional volumes to mount on the agentMetadata. + extraVolumeMounts: [] + + ## @param agentMetadata.extraVolumes Additional volumes to mount on the agentMetadata. + extraVolumes: [] + + ## @param agentMetadata.pdb.enabled Enable pdb on agentMetadata + pdb: + enabled: false + +## @section agentSubtitles + +agentSubtitles: + + ## @param agentSubtitles.image.repository Repository to use to pull meet's agentSubtitles container image + ## @param agentSubtitles.image.tag meet's agentSubtitles container tag + ## @param agentSubtitles.image.pullPolicy agentSubtitles container image pull policy + image: + repository: lasuite/meet-agents + pullPolicy: IfNotPresent + tag: "latest" + + ## @param agentSubtitles.dpAnnotations Annotations to add to the agentSubtitles Deployment + dpAnnotations: {} + + ## @param agentSubtitles.command Override the agentSubtitles container command + command: [] + + ## @param agentSubtitles.args Override the agentSubtitles container args + args: [] + + ## @param agentSubtitles.replicas Amount of agentSubtitles replicas + replicas: 1 + + ## @param agentSubtitles.shareProcessNamespace Enable share process namespace between containers + shareProcessNamespace: false + + ## @param agentSubtitles.sidecars Add sidecars containers to agentSubtitles deployment + sidecars: [] + + ## @param agentSubtitles.securityContext Configure agentSubtitles Container security context + securityContext: null + + ## @param agentSubtitles.podSecurityContext Configure agentSubtitles Pod security context + podSecurityContext: null + + ## @param agentSubtitles.envVars Configure agentSubtitles container environment variables + ## @extra agentSubtitles.envVars.BY_VALUE Example environment variable by setting value directly + ## @extra agentSubtitles.envVars.FROM_CONFIGMAP.configMapKeyRef.name Name of a ConfigMap when configuring env vars from a ConfigMap + ## @extra agentSubtitles.envVars.FROM_CONFIGMAP.configMapKeyRef.key Key within a ConfigMap when configuring env vars from a ConfigMap + ## @extra agentSubtitles.envVars.FROM_SECRET.secretKeyRef.name Name of a Secret when configuring env vars from a Secret + ## @extra agentSubtitles.envVars.FROM_SECRET.secretKeyRef.key Key within a Secret when configuring env vars from a Secret + ## @extra agentSubtitles.envVars.DEEPGRAM_STT_MODEL Deepgram model to use for speech-to-text (default: nova-3) + ## @extra agentSubtitles.envVars.DEEPGRAM_STT_LANGUAGE Language code for transcription or 'multi' for automatic multilingual support with real-time code-switching (default: multi, supports: en, es, fr, de, hi, ru, pt, ja, it, nl) + ## @skip agentSubtitles.envVars envVars: <<: *commonEnvVars # Deepgram Speech-to-Text configuration for real-time streaming @@ -1119,34 +1198,34 @@ agents: # are NOT supported by the LiveKit Deepgram plugin in streaming mode. # Use language="multi" for automatic multilingual support (10 languages). - ## @param agents.podAnnotations Annotations to add to the agents Pod + ## @param agentSubtitles.podAnnotations Annotations to add to the agentSubtitles Pod podAnnotations: {} - ## @param agents.resources Resource requirements for the agents container + ## @param agentSubtitles.resources Resource requirements for the agentSubtitles container resources: {} - ## @param agents.nodeSelector Node selector for the agents Pod + ## @param agentSubtitles.nodeSelector Node selector for the agentSubtitles Pod nodeSelector: {} - ## @param agents.tolerations Tolerations for the agents Pod + ## @param agentSubtitles.tolerations Tolerations for the agentSubtitles Pod tolerations: [] - ## @param agents.affinity Affinity for the agents Pod + ## @param agentSubtitles.affinity Affinity for the agentSubtitles Pod affinity: {} - ## @param agents.persistence Additional volumes to create and mount on the agents. Used for debugging purposes - ## @extra agents.persistence.volume-name.size Size of the additional volume - ## @extra agents.persistence.volume-name.type Type of the additional volume, persistentVolumeClaim or emptyDir - ## @extra agents.persistence.volume-name.mountPath Path where the volume should be mounted to + ## @param agentSubtitles.persistence Additional volumes to create and mount on the agentSubtitles. Used for debugging purposes + ## @extra agentSubtitles.persistence.volume-name.size Size of the additional volume + ## @extra agentSubtitles.persistence.volume-name.type Type of the additional volume, persistentVolumeClaim or emptyDir + ## @extra agentSubtitles.persistence.volume-name.mountPath Path where the volume should be mounted to persistence: {} - ## @param agents.extraVolumeMounts Additional volumes to mount on the agents. + ## @param agentSubtitles.extraVolumeMounts Additional volumes to mount on the agentSubtitles. extraVolumeMounts: [] - ## @param agents.extraVolumes Additional volumes to mount on the agents. + ## @param agentSubtitles.extraVolumes Additional volumes to mount on the agentSubtitles. extraVolumes: [] - ## @param agents.pdb.enabled Enable pdb on agents + ## @param agentSubtitles.pdb.enabled Enable pdb on agentSubtitles pdb: enabled: false