Skip to content

Revisit the guest proto #66

Description

@rakyll

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions