bbennett-ks opened a new pull request, #1207:
URL: https://github.com/apache/guacamole-client/pull/1207
Unlike SSH and Telnet, Kubernetes sessions do not automatically pass a
terminal type. Kubernetes exposes stdin, stdout, and stderr, but has no
built-in way to propagate the TERM environment variable.
Kubernetes supports two connection modes:
- **Attach**: connect stdin/stdout/stderr to the main process already
running in the container.
- **Exec**: start a new process in the container and connect to that process.
Because Kubernetes does not pass the terminal type itself, this change adds
a server-side substitution mechanism for Exec sessions: Any **$TERM** in the
Exec command line is replaced with the configured terminal type when the
session starts. This lets users decide whether and how to pass the terminal
type, for example:
```
env TERM=$TERM /bin/bash
```
Attach mode has no command line, so the terminal type is not propagated
automatically.
- Adds support for `terminal-type` for Kubernetes sessions.
- Adds `conditionalLabel` for `Field`, so a form field can replace its label
based on another field's value.
- `conditionalLabel` is used for the Kubernetes `terminal-type` label:
- If `exec-command` is empty, the label uses the default `Terminal type
(set manually in session):`.
<img width="433" height="100" alt="image"
src="https://github.com/user-attachments/assets/79177b9b-5741-4e05-b768-53d5c0514c22"
/>
- Else, (a command was specified), the label switches to `Terminal type
(available as $TERM in command):`.
<img width="493" height="101" alt="image"
src="https://github.com/user-attachments/assets/cd19f435-fc36-49d1-bb4a-0cf738ce7746"
/>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]