Files
homelab/cluster/applications/open-webui/deployment.yaml
Hermes Agent service account 3c6f6dfe2e Fix: Use local astro-orbiter endpoint, not OpenAI API
Set OPENAI_API_BASE_URL (config.py default) to our local vLLM endpoint.
Open WebUI was using hardcoded 'https://api.openai.com/v1' for model discovery.
2026-09-01 13:48:37 -05:00

95 lines
2.7 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_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