# Langfuse (LLM observability / eval viewer) — reads OTel-style traces and # Ragas eval scores, not part of the RAG chat path itself. # # Multi-source Application: source[0] is the upstream `langfuse/langfuse-k8s` # chart (not vendored into this repo); source[1] is this repo, providing only # the override values file via the `$values` ref. Same disaster-recovery # property as the other two Applications here: applying this file recreates # the Application's structure, no follow-up step needed since this release # carries no inline secrets (see infra/helm/langfuse/values-production.yaml # for why: the app's own SALT/ENCRYPTION_KEY/NEXTAUTH_SECRET are chart- # auto-generated on first install, and the Postgres password is read from # the medical-chatbot-data release's existing Secret by name, never # duplicated here). # # Deliberately targets the `medical-chatbot-data` namespace, not its own — # see the values file's header comment for why (Secrets don't cross # namespaces, and this needs the Postgres one that already lives there). # This Application does NOT own the PersistentVolumeClaims that release # depends on (postgres/qdrant) — it only adds new resources (its own # ClickHouse/Redis/web/worker) into the same namespace. `prune: true` below # only prunes resources Langfuse's own chart previously created, standard # ArgoCD behavior scoped to this Application's own tracked resources. apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: langfuse namespace: argocd spec: project: default sources: - repoURL: https://langfuse.github.io/langfuse-k8s chart: langfuse targetRevision: 2.0.0 helm: valueFiles: - $values/infra/helm/langfuse/values-production.yaml - repoURL: https://github.com/BaoVu2k4/vsf-duocthu.git targetRevision: master ref: values destination: server: https://kubernetes.default.svc namespace: medical-chatbot-data syncPolicy: automated: prune: true selfHeal: true syncOptions: - CreateNamespace=true