Sign inSign up

sqaisar/langfuse-controller-helm

By sqaisar

•Updated 10 months ago

Helm chart for Langfuse Kubernetes Controller. Deploy and manage Langfuse resources via CRDs.

Artifact
Helm
Image
Integration & delivery
Developer tools
Data science
0

345

sqaisar/langfuse-controller-helm repository overview

⁠langfuse-controller-helm

Artifact Hub

A Helm chart for deploying the Langfuse Kubernetes Controller, which manages Langfuse resources via Custom Resource Definitions (CRDs).

⁠Introduction

This chart deploys the Langfuse Kubernetes Controller, enabling you to manage Langfuse projects, API keys, models, LLM connections, prompts, and score configurations declaratively using Kubernetes manifests.

⁠Features

  • Declarative Management: Manage Langfuse resources using Kubernetes manifests
  • GitOps Ready: Full support for GitOps workflows (ArgoCD, Flux, etc.)
  • Automatic Secret Management: API keys automatically stored in Kubernetes Secrets
  • Production Ready: Includes RBAC, service accounts, and resource limits

⁠Prerequisites

  • Kubernetes 1.28+
  • Helm 3.x
  • Langfuse Admin API key

⁠Installation

⁠Add the Helm repository
helm repo add langfuse-controller https://sqaisar.github.io/langfuse-controller
helm repo update
⁠Install the chart
helm install langfuse-controller langfuse-controller/langfuse-controller-helm \
  --set langfuse.host="https://cloud.langfuse.com" \
  --set langfuse.adminApiKey="your-admin-api-key" \
  --namespace langfuse-controller \
  --create-namespace
⁠Install using existing secret

If you prefer to store the API key in a Kubernetes Secret:

# Create the secret
kubectl create secret generic langfuse-admin-api-key \
  --from-literal=LANGFUSE_ADMIN_API_KEY="your-admin-api-key" \
  --namespace langfuse-controller

# Install with existing secret
helm install langfuse-controller langfuse-controller/langfuse-controller-helm \
  --set langfuse.host="https://cloud.langfuse.com" \
  --set langfuse.existingSecret="langfuse-admin-api-key" \
  --namespace langfuse-controller \
  --create-namespace

⁠Configuration

The following table lists the configurable parameters and their default values:

ParameterDescriptionDefault
image.repositoryContainer image repositorysqaisar/langfuse-controller
image.pullPolicyImage pull policyIfNotPresent
image.tagContainer image taglatest
imagePullSecretsImage pull secrets[]
nameOverrideOverride the name of the chart""
fullnameOverrideOverride the full name of the chartlangfuse-controller
watchNamespacesList of namespaces to watch (empty = all namespaces)[]
serviceAccount.createCreate a service accounttrue
serviceAccount.annotationsService account annotations{}
serviceAccount.nameService account name""
podAnnotationsPod annotations{}
podSecurityContextPod security context{}
securityContextContainer security context{}
resources.limits.cpuCPU limit500m
resources.limits.memoryMemory limit128Mi
resources.requests.cpuCPU request10m
resources.requests.memoryMemory request64Mi
nodeSelectorNode selector{}
tolerationsTolerations[]
affinityAffinity rules{}
langfuse.hostLangfuse API endpointhttps://cloud.langfuse.com
langfuse.adminApiKeyLangfuse Admin API key""
langfuse.existingSecretName of existing secret with LANGFUSE_ADMIN_API_KEY""

⁠Usage Examples

⁠Basic Installation
helm install langfuse-controller langfuse-controller/langfuse-controller-helm \
  --set langfuse.host="https://cloud.langfuse.com" \
  --set langfuse.adminApiKey="sk-..."
⁠Custom Image Tag
helm install langfuse-controller langfuse-controller/langfuse-controller-helm \
  --set image.tag="v0.1.0" \
  --set langfuse.host="https://cloud.langfuse.com" \
  --set langfuse.adminApiKey="sk-..."
⁠Watch Specific Namespaces
helm install langfuse-controller langfuse-controller/langfuse-controller-helm \
  --set watchNamespaces[0]="default" \
  --set watchNamespaces[1]="production" \
  --set langfuse.host="https://cloud.langfuse.com" \
  --set langfuse.adminApiKey="sk-..."
⁠Custom Resource Limits
helm install langfuse-controller langfuse-controller/langfuse-controller-helm \
  --set resources.limits.cpu="1000m" \
  --set resources.limits.memory="256Mi" \
  --set resources.requests.cpu="100m" \
  --set resources.requests.memory="128Mi" \
  --set langfuse.host="https://cloud.langfuse.com" \
  --set langfuse.adminApiKey="sk-..."

⁠Managing Langfuse Resources

After installing the controller, you can create Langfuse resources using Kubernetes manifests:

⁠Create a Langfuse Project
apiVersion: langfuse.io/v1alpha1
kind: LangfuseProject
metadata:
  name: my-project
spec:
  name: "My Project"
⁠Create an API Key
apiVersion: langfuse.io/v1alpha1
kind: LangfuseAPIKey
metadata:
  name: my-api-key
spec:
  projectRef: my-project
  name: "production-key"
  secretName: langfuse-credentials

The controller will automatically:

  1. Create the project in Langfuse
  2. Generate an API key
  3. Store the credentials in a Kubernetes Secret named langfuse-credentials

⁠Supported CRDs

  • LangfuseProject - Langfuse projects
  • LangfuseAPIKey - Project API keys (with Secret creation)
  • LangfuseModel - Model definitions and pricing
  • LangfuseLlmConnection - LLM provider connections
  • LangfusePrompt - Prompt templates
  • LangfuseScoreConfig - Score configurations

⁠Upgrading

helm upgrade langfuse-controller langfuse-controller/langfuse-controller-helm \
  --set langfuse.host="https://cloud.langfuse.com" \
  --set langfuse.adminApiKey="your-admin-api-key"

⁠Uninstallation

helm uninstall langfuse-controller --namespace langfuse-controller

⁠Troubleshooting

⁠Check controller logs
kubectl logs -n langfuse-controller deployment/langfuse-controller
⁠Verify CRDs are installed
kubectl get crds | grep langfuse.io
⁠Check controller status
kubectl get pods -n langfuse-controller

⁠License

Apache License 2.0

⁠Support

Tag summary

Content type

Helm

Digest

sha256:4e31d696c…

Size

8.6 kB

Last updated

10 months ago

helm pull oci://registry-1.docker.io/sqaisar/langfuse-controller-helm --version v1.0.6