Support running host processes alongside VMs - #482
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ea997e434f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| defer vm.ConditionsSet().RemoveAll(v1.ConditionTypeRunning, v1.ConditionTypeSuspending) | ||
|
|
||
| resource := vm.Resource() | ||
| if err := vm.HostProcessSet().Start(ctx, resource.HostProcesses); err != nil { |
There was a problem hiding this comment.
Launch Tart before waiting for host processes
When a configured host process connects to ORCHARD_VM_CONTROL_SOCKET during initialization before opening ORCHARD_PROCESS_SOCKET, startup deadlocks: this call waits for the host-process socket, while the tart run invocation that creates the VM control socket occurs later in this function. After the readiness retries expire, Orchard kills the host process and marks the VM failed without ever launching it. Start Tart concurrently or wait for its control socket before requiring host-process readiness.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
I don't think this is a P1: a host process must open their listener before waiting for VM readiness.
We should probably address this via documentation at some point; keeping things minimal for now to move forward.
Pitch deck: sidecars, but for VMs.
We also support port-forwarding to these sidecars, provided they listen on the Unix domain socket specified by the
ORCHARD_PROCESS_SOCKET.