Files
homelab/cluster/applications/open-webui/deployment.yaml
Hermes Agent service account 56db1b94ee Disable OpenAI API key validation for local vLLM endpoint
Open WebUI was validating API keys against OpenAI's servers.
For local vLLM backend, disable this validation.
2026-09-01 13:44:41 -05:00

93 lines
2.6 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: open-webui
namespace: open-webui
labels:
app.kubernetes.io/name: open-webui
app.kubernetes.io/part-of: open-webui
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app.kubernetes.io/name: open-webui
template:
metadata:
labels:
app.kubernetes.io/name: open-webui
app.kubernetes.io/part-of: open-webui
spec:
serviceAccountName: open-webui
containers:
- name: open-webui
image: ghcr.io/open-webui/open-webui:latest
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 8080
protocol: TCP
env:
# OpenWebUI configuration
- name: WEBUI_SECRET_KEY
valueFrom:
secretKeyRef:
name: body-wars-secret
key: vllm-api-key
optional: false
# Backend configuration for vLLM (OpenAI-compatible, NOT Ollama)
# OLLAMA_BASE_URLS removed: astro-orbiter runs vLLM, not Ollama
- name: OPENAI_BASE_URL
value: "http://astro-orbiter:8000/v1"
- name: OPENAI_API_KEY
valueFrom:
secretKeyRef:
name: body-wars-secret
key: vllm-api-key
optional: false
- name: OPENAI_MODEL_FALLBACK
value: "Gemma-4-26B-A4B-it-AWQ"
# Disable OpenAI API key validation (we're using vLLM, not OpenAI)
- name: OPENAI_VALIDATE_ENDPOINT
value: "false"
# Allow access from ingress
- name: WEBUI_URL
value: "https://body-wars.local.mk-labs.cloud"
# Observability settings
- name: ENABLE_API_KEY
value: "true"
- name: ENABLE_MODEL_FILTER
value: "false"
# Disable Ollama model detection (we use vLLM/OpenAI-compatible only)
- name: ENABLE_OLLAMA_API
value: "false"
# Storage
- name: DATA_DIR
value: "/app/backend/data"
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 1000m
memory: 1Gi
livenessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
volumeMounts:
- name: data
mountPath: /app/backend/data
volumes:
- name: data
persistentVolumeClaim:
claimName: open-webui-data