feat(protocol): Introduce 'RemoteRun' target type (Shell, OpenStack, K8s) - #1551#1634
feat(protocol): Introduce 'RemoteRun' target type (Shell, OpenStack, K8s) - #1551#1634senolcolak wants to merge 6 commits intowarp-tech:mainfrom
Conversation
| let url = format!("https://github.com/{}.keys", username); | ||
|
|
||
| let response = client | ||
| .get(&url) |
Check failure
Code scanning / CodeQL
Cleartext transmission of sensitive information High
|
That's actually an amazing feature, we may also want to use this! |
|
@senolcolak I'm curious, how would this work with multiple users on the same target? Would they all log into the same VM/pod, or would each access to a target spin up its own pod/VM? |
Here the goal is to create an ephemeral connection. Each user will trigger a command for a new session. |
|
Ah okay fair, that's unfortunate. We were mainly looking for something where an ephemeral environment is spun up for a group that is destroyed if no one is in it, but when multiple people connect they all connect to the same ephemeral environment, but your usecase makes sense. |
This will be a bit difficult, but still achievable via using openstack integration. This can be implemented as an enhancement to our functionality. |
| let url = format!("https://github.com/{}.keys", username); | ||
|
|
||
| let response = client | ||
| .get(&url) |
Check failure
Code scanning / CodeQL
Cleartext transmission of sensitive information
|
@Eugeny is this a feature you would be interested at merging at some point in the future? Because I'd be very interested in this feature |
|
@LarsSven I will check this once more, create a more narrowed version. The current version supports too much in a single stack. |
|
#1530 solves this |
Description
Closes #1551
This PR introduces a new protocol module
warpgate-protocol-remoterun. The goal is instead of strictly proxying connections to static hosts, Warpgate can now manage ephemeral environments and execute direct remote commands.This feature adds a new
RemoteRuntarget type with three distinct execution strategies:ceph-tools), waits for readiness, attaches the user viakubectl exec, and cleans up the pod afterwards.Technical Changes
Backend (
warpgate-protocol-remoterun&warpgate-common)warpgate-protocol-remoterun.TargetandTargetKindstructs to support theRemoteRunvariant.reqwestclient to interact with Nova/Compute APIs for server creation and key injection.kube-rsto handle Pod lifecycle (Create -> Wait -> Exec -> Delete).Frontend (
warpgate-admin)Configuration Examples
Users can configure these targets via
warpgate.yaml:1. Shell Execution
2. OpenStack Ephemeral VM
3. Kubernetes Ephemeral Pod (e.g., Ceph Tools)