We propose upstreaming guest services to core, making them available to any actor (if configured). To achieve this, we need to stabilize the API and update the earlier proto to resolve existing inconsistencies and broaden some RPC definitions. See the document for more.
Here is the complete list of RPCs indicating what has changed in this proposal.
ProcessService (ateenv.v1alpha.ProcessService in guest.proto)
| Proposed Signature |
Status |
Summary of Changes |
StartProcess(StartProcessRequest) returns (Process) |
Changed |
Returns full Process resource immediately instead of just an ID. Request gains stdin pipe flag and execution timeout duration. |
GetProcess(GetProcessRequest) returns (Process) |
Unchanged |
Signature is unchanged, but the returned Process message schema has evolved (added pid, command, 2-state ProcessState, standard shell exit code conventions). |
StreamProcessOutput(StreamProcessOutputRequest) returns (stream ProcessOutput) |
Changed |
Renamed from StreamProcessOutputs. Response stream delivers a oneof (stdout chunk, stderr chunk, or terminal exit message with finished Process). Setting offsets past spool enables waiting for exit without transferring logs. |
WriteProcessInput(stream WriteProcessInputRequest) returns (WriteProcessInputResponse) |
New |
New client-streaming RPC to feed interactive standard input chunks to a process with stdin enabled, including a close (EOF) flag. |
SignalProcess(SignalProcessRequest) returns (Process) |
New |
Delivers any standard POSIX signal (SIGTERM, SIGINT, SIGHUP, SIGSTOP, etc.) to the process group, replacing KillProcess. |
KillProcess(KillProcessRequest) returns (KillProcessResponse) |
Removed |
Removed in favor of SignalProcess using SIGNAL_KILL. |
FileSystemService (ateenv.v1alpha.FileSystemService in guest.proto)
| Proposed Signature |
Status |
Summary of Changes |
ReadFile(ReadFileRequest) returns (stream ReadFileResponse) |
Changed |
Response stream chunk type renamed from FileChunk to ReadFileResponse. Request gains mode field for atomic empty file creation (including parents) if missing instead of failing with NOT_FOUND. |
WriteFile(stream WriteFileRequest) returns (WriteFileResponse) |
Changed |
Signature is unchanged, but WriteFileRequest gains seek_offset for in-place updates and appends without truncation. |
We propose upstreaming guest services to core, making them available to any actor (if configured). To achieve this, we need to stabilize the API and update the earlier proto to resolve existing inconsistencies and broaden some RPC definitions. See the document for more.
Here is the complete list of RPCs indicating what has changed in this proposal.
ProcessService (
ateenv.v1alpha.ProcessServiceinguest.proto)StartProcess(StartProcessRequest) returns (Process)Processresource immediately instead of just an ID. Request gainsstdinpipe flag and executiontimeoutduration.GetProcess(GetProcessRequest) returns (Process)Processmessage schema has evolved (addedpid,command, 2-stateProcessState, standard shell exit code conventions).StreamProcessOutput(StreamProcessOutputRequest) returns (stream ProcessOutput)StreamProcessOutputs. Response stream delivers aoneof(stdout chunk, stderr chunk, or terminalexitmessage with finishedProcess). Setting offsets past spool enables waiting for exit without transferring logs.WriteProcessInput(stream WriteProcessInputRequest) returns (WriteProcessInputResponse)stdinenabled, including aclose(EOF) flag.SignalProcess(SignalProcessRequest) returns (Process)SIGTERM,SIGINT,SIGHUP,SIGSTOP, etc.) to the process group, replacingKillProcess.KillProcess(KillProcessRequest) returns (KillProcessResponse)SignalProcessusingSIGNAL_KILL.FileSystemService (
ateenv.v1alpha.FileSystemServiceinguest.proto)ReadFile(ReadFileRequest) returns (stream ReadFileResponse)FileChunktoReadFileResponse. Request gainsmodefield for atomic empty file creation (including parents) if missing instead of failing withNOT_FOUND.WriteFile(stream WriteFileRequest) returns (WriteFileResponse)WriteFileRequestgainsseek_offsetfor in-place updates and appends without truncation.