[GH-ISSUE #31] Add kubernetes scheduling overrides for terminal pods #12

Open
opened 2026-10-18 21:13:21 +00:00 by bsakaguchi · 1 comment
Owner

Originally created by @phillamb168 on GitHub (Jul 1, 2026).
Original GitHub issue: https://github.com/open-webui/terminals/issues/31

Summary

Kubernetes Operator backend users cannot currently constrain generated terminal pods to specific node pools because the operator does not expose nodeSelector or tolerations for the pods it creates.

Use case

In multi-tenant or mixed-workload clusters, operators may want terminal pods to run only on dedicated nodes, for example nodes with stronger isolation, special hardware, different storage, or taints that keep ordinary workloads away.

Today, the generated terminal pods cannot tolerate those taints or target those labels without an external admission controller.

Proposed behavior

Add optional environment-based scheduling overrides for the Kubernetes Operator backend:

  • TERMINALS_KUBERNETES_NODE_SELECTOR
  • TERMINALS_KUBERNETES_TOLERATIONS

These would be applied to generated terminal pods. The same scheduling settings should also apply to reset pods so cleanup/reset work can run in the same node pool.

Notes

This keeps the CRD unchanged and is backward-compatible: if the env vars are unset, generated pods behave as they do today.

Status

I've created a MR #30

Originally created by @phillamb168 on GitHub (Jul 1, 2026). Original GitHub issue: https://github.com/open-webui/terminals/issues/31 ## Summary Kubernetes Operator backend users cannot currently constrain generated terminal pods to specific node pools because the operator does not expose `nodeSelector` or `tolerations` for the pods it creates. ## Use case In multi-tenant or mixed-workload clusters, operators may want terminal pods to run only on dedicated nodes, for example nodes with stronger isolation, special hardware, different storage, or taints that keep ordinary workloads away. Today, the generated terminal pods cannot tolerate those taints or target those labels without an external admission controller. ## Proposed behavior Add optional environment-based scheduling overrides for the Kubernetes Operator backend: - `TERMINALS_KUBERNETES_NODE_SELECTOR` - `TERMINALS_KUBERNETES_TOLERATIONS` These would be applied to generated terminal pods. The same scheduling settings should also apply to reset pods so cleanup/reset work can run in the same node pool. ## Notes This keeps the CRD unchanged and is backward-compatible: if the env vars are unset, generated pods behave as they do today. ## Status I've created a MR #30
Author
Owner

@phillamb168 commented on GitHub (Jul 2, 2026):

@tjbck apologies about the CLA, that was a copy/paste miss. When I tried to reopen a new one, the bot closed it automatically because it was targeting main:

This pull request targets the main branch. The current repository policy stipulates that all pull requests must target the dev branch.
To proceed with this submission, please retarget this pull request to dev, or open a new pull request with the correct base branch. This >pull request has been closed.

however... it looks like this repo only has a 'main' branch, I don't see any other branches. Should I be targeting something else?

<!-- gh-comment-id:4869025030 --> @phillamb168 commented on GitHub (Jul 2, 2026): @tjbck apologies about the CLA, that was a copy/paste miss. When I tried to reopen a new one, the bot closed it automatically because it was targeting main: > This pull request targets the main branch. The current repository policy stipulates that all pull requests must target the dev branch. >To proceed with this submission, please retarget this pull request to dev, or open a new pull request with the correct base branch. This >pull request has been closed. however... it looks like this repo only has a 'main' branch, I don't see any other branches. Should I be targeting something else?
Sign in to join this conversation.
No labels
pull-request
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/terminals#12
No description provided.