- Removes pod runAsNonRoot/runAsUser to allow init runAsUser: 0
- chowns PVC to 1000:1000 + g+rwX (fixes legacy root-owned files)
- webui can now mkdir/write state dir
- whoami log non-fatal; runtime non-root
- Removed initContainer running as root (violates PodSecurity restricted:latest)
- Removed shared emptyDir /etc mount (no longer needed)
- Rely on fsGroup:1000 + runAsUser:1000 for volume ownership and container UID
- Added runAsNonRoot: true to podSecurityContext and both containers for policy compliance
Pod will now start, webui runs as UID 1000 == WANTED_UID, init.bash skips chown/sudo.
Swap the generic Open WebUI frontend for the purpose-built
hermes-webui (nesquena) with full CLI parity:
- 3-panel layout: sessions, chat, workspace file browser
- Native session, cron, skills, memory, profile management
- Themes (dark/light/slate/solarized/monokai/nord/oled)
- Mobile responsive
- Sidecar container sharing the hermes-agent PVC
- Exposed via Tailscale on port 8787 (plain HTTP)
Access: http://hermes-webui.tail14a963.ts.net:8787
tailscale.com/https-only: 'false' still attempts TLS termination,
causing ERR_SSL_PROTOCOL_ERROR when the backend speaks plain HTTP.
Replaced with tailscale.com/ports: 'http:8080' to explicitly tell
the operator to serve unencrypted HTTP on this port.
Tailscale defaults to HTTPS (443) but Open WebUI only serves HTTP (8080).
- Add tailscale.com/https-only: "false" annotation
- Now hermes-webui.tail14a963.ts.net:8080 works without SSL errors
Fixes ERR_SSL_PROTOCOL_ERROR
Open WebUI crashes on startup because it can't write its SQLite database to
/app/backend/data.
- Add emptyDir volume at /app/backend/data
- Pod restarts will lose data (dev-only acceptable)
Fixes pod crash: peewee.OperationalError: unable to open database file
- Enable Hermes API Server (port 8642) in gateway deployment
- Add Open WebUI deployment connected to Hermes API Server
- Expose Open WebUI via Tailscale using Service annotations
- Create ClusterIP Service for Hermes Agent API Server
- All deployments follow PodSecurity restricted policy
Enables /v1/models endpoint query for custom providers (fixes qwen model not showing under qwen-vllm).
Changes:
- Added `type: openai` to `rtx6000-brain` and `qwen-vllm` providers
- Standardized base_url to full FQDN: \*.customer1.svc.cluster.local
- Added context_length to qwen-vllm provider
- Updated models.qwen-vllm base_url and context_length for consistency
- Makes rtx6000-brain selectable in the /model provider picker (preferred name)
- Uses short Kubernetes service names (optimal for same-namespace)
- Keeps existing models: section for CLI compatibility
- Will appear as provider options after ArgoCD/Helm rollout + /restart
- Primary 'vllm' entry for easy /model vllm usage
- Uses model from the rtx6000 deployment
- Kept existing qwen-vllm, rtx6000-vllm, and rtx6000-brain for compatibility
Added rtx6000-brain alongside the existing rtx6000-vllm entry.
Uses the exact model name from rtx6000-vllm Deployment and the correct ClusterIP service endpoint.