[PR #372] [MERGED] feat: integrate Terminals subchart into Open WebUI parent chart #387

Closed
opened 2026-10-18 21:08:37 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/open-webui/helm-charts/pull/372
Author: @james-westbrook
Created: 4/2/2026
Status: ✅ Merged
Merged: 4/2/2026
Merged by: @james-westbrook

Base: main ← Head: feat-terminals-support


📝 Commits (1)

  • defd337 feat: integrate Terminals subchart into Open WebUI parent chart

📊 Changes

9 files changed (+105 additions, -7 deletions)

View changed files

📝 charts/open-webui/CHANGELOG.md (+13 -0)
📝 charts/open-webui/Chart.lock (+6 -3)
📝 charts/open-webui/Chart.yaml (+5 -1)
📝 charts/open-webui/templates/_helpers.tpl (+44 -0)
📝 charts/open-webui/templates/ingress.yaml (+3 -1)
📝 charts/open-webui/templates/workload-manager.yaml (+9 -0)
📝 charts/open-webui/values.yaml (+5 -0)
➕ charts/terminals/CHANGELOG.md (+18 -0)
📝 charts/terminals/values.yaml (+2 -2)

📄 Description

Summary

Integrates the Terminals subchart (added in #371) into the Open WebUI parent chart, so users can enable per-user terminal instances with a single terminals.enabled: true flag.

Changes

Open WebUI Chart (charts/open-webui/)

  • Chart.yaml — Add terminals as a conditional dependency (file://../terminals, gated by terminals.enabled)
  • values.yaml — Add terminals.enabled: false under External Tools section
  • _helpers.tpl — Add two helpers:
    • terminals.serviceEndpoint — Resolves the orchestrator service URL (http://<release>-terminals-orchestrator.<ns>.svc.<clusterDomain>:<port>)
    • open-webui.terminals.secretName — Resolves the API key secret name (supports existingSecret override)
  • workload-manager.yaml — When terminals.enabled:
    • Inject TERMINALS_API_KEY env var from the subchart's secret via secretKeyRef
    • Inject TERMINAL_SERVER_CONNECTIONS env var with full JSON config using $(TERMINALS_API_KEY) expansion
  • ingress.yaml — Make host field conditional (enables ALB/NLB usage without a custom domain)
  • Chart.lock — Regenerated with terminals 0.1.0

Terminals Subchart (charts/terminals/)

  • values.yaml — Fix image repository names:
    • ghcr.io/open-webui/open-terminal-operator → ghcr.io/open-webui/terminals-operator
    • ghcr.io/open-webui/terminals-orchestrator → ghcr.io/open-webui/terminals

Usage

# values.yaml
terminals:
  enabled: true
  apiKey: "my-secret-key"  # optional: auto-generated if omitted

When apiKey is omitted, the subchart auto-generates a random 32-char key stored in a Kubernetes Secret. The parent chart references this same secret via secretKeyRef, so the key stays in sync automatically.

Tested

  • helm template renders correctly with terminals enabled/disabled
  • Verified on EKS with both operator and orchestrator backends (18/18 E2E tests passing)
  • ALB Ingress works without host field

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/open-webui/helm-charts/pull/372 **Author:** [@james-westbrook](https://github.com/james-westbrook) **Created:** 4/2/2026 **Status:** ✅ Merged **Merged:** 4/2/2026 **Merged by:** [@james-westbrook](https://github.com/james-westbrook) **Base:** `main` ← **Head:** `feat-terminals-support` --- ### 📝 Commits (1) - [`defd337`](https://github.com/open-webui/helm-charts/commit/defd3376a510aa3649cb92550a26827899889239) feat: integrate Terminals subchart into Open WebUI parent chart ### 📊 Changes **9 files changed** (+105 additions, -7 deletions) <details> <summary>View changed files</summary> 📝 `charts/open-webui/CHANGELOG.md` (+13 -0) 📝 `charts/open-webui/Chart.lock` (+6 -3) 📝 `charts/open-webui/Chart.yaml` (+5 -1) 📝 `charts/open-webui/templates/_helpers.tpl` (+44 -0) 📝 `charts/open-webui/templates/ingress.yaml` (+3 -1) 📝 `charts/open-webui/templates/workload-manager.yaml` (+9 -0) 📝 `charts/open-webui/values.yaml` (+5 -0) ➕ `charts/terminals/CHANGELOG.md` (+18 -0) 📝 `charts/terminals/values.yaml` (+2 -2) </details> ### 📄 Description ## Summary Integrates the Terminals subchart (added in #371) into the Open WebUI parent chart, so users can enable per-user terminal instances with a single `terminals.enabled: true` flag. ## Changes ### Open WebUI Chart (`charts/open-webui/`) - **Chart.yaml** — Add `terminals` as a conditional dependency (`file://../terminals`, gated by `terminals.enabled`) - **values.yaml** — Add `terminals.enabled: false` under External Tools section - **_helpers.tpl** — Add two helpers: - `terminals.serviceEndpoint` — Resolves the orchestrator service URL (`http://<release>-terminals-orchestrator.<ns>.svc.<clusterDomain>:<port>`) - `open-webui.terminals.secretName` — Resolves the API key secret name (supports `existingSecret` override) - **workload-manager.yaml** — When `terminals.enabled`: - Inject `TERMINALS_API_KEY` env var from the subchart's secret via `secretKeyRef` - Inject `TERMINAL_SERVER_CONNECTIONS` env var with full JSON config using `$(TERMINALS_API_KEY)` expansion - **ingress.yaml** — Make `host` field conditional (enables ALB/NLB usage without a custom domain) - **Chart.lock** — Regenerated with terminals 0.1.0 ### Terminals Subchart (`charts/terminals/`) - **values.yaml** — Fix image repository names: - `ghcr.io/open-webui/open-terminal-operator` → `ghcr.io/open-webui/terminals-operator` - `ghcr.io/open-webui/terminals-orchestrator` → `ghcr.io/open-webui/terminals` ## Usage ```yaml # values.yaml terminals: enabled: true apiKey: "my-secret-key" # optional: auto-generated if omitted ``` When `apiKey` is omitted, the subchart auto-generates a random 32-char key stored in a Kubernetes Secret. The parent chart references this same secret via `secretKeyRef`, so the key stays in sync automatically. ## Tested - `helm template` renders correctly with terminals enabled/disabled - Verified on EKS with both operator and orchestrator backends (18/18 E2E tests passing) - ALB Ingress works without host field --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-18 21:08:37 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
open-webui/helm-charts#387
No description provided.